Revision history for TimeZone::TimeZoneDB

0.05	Mon Jun  1 19:55:51 EDT 2026
	[ Bug Fixes ]
	- Clone path now validates ua argument: a defined, non-object ua croaks
	  with a clear message rather than silently storing an unusable value
	- get_time_zone() now explicitly croaks when latitude or longitude is undef,
	  working around Params::Validate::Strict silently skipping type checks for
	  undef values
	[ Documentation ]
	- Added Z-notation formal specifications for new(), get_time_zone(), and ua()
	- Consolidated formal specifications into the POD
	[ Tests ]
	- Upgraded t/30-basics.t from Test::MockModule to Test::Mockingbird
	- Added t/function.t: white-box function-level tests (49 subtests)
	- Added t/unit.t: black-box unit tests against POD specification (41 subtests)
	- Added t/integration.t: end-to-end integration tests (28 subtests)
	- Added t/edge_cases.t: destructive, boundary-condition and security tests (52 subtests)
	- Added t/extended_tests.t: coverage-targeted tests for uncovered paths (24 subtests)
	- Added t/mutant_killers.t: tests that kill surviving mutation-testing mutants

0.04	Wed Sep  3 07:42:27 EDT 2025
	Use Object::Configure
	More use of Params::Get
	Use Return::Set and Params::Validate::Strict
	Normalize cache key to avoid missed cache opportunities
	Fix docs which had a couple of small mistakes
	Don't use global in CHI memory - safer for threading
	Added test dashboard to GitHub Pages

0.03	Wed Feb 12 07:36:10 EST 2025
	Added rate-limiting and caching support
	Use Test::DescribeMe to simplify tests
	Better handling of JSON decode errors

0.02	Fri May 31 09:33:15 EDT 2024
	Fix usage message
	Test error conditions

0.01	Fri Apr  7 11:41:58 EDT 2023
        First draft
