Changes for version 2.04 - 2026-04-03
- Bug Fixes:
- Fix UPStrack() to only set 'Delivery Date' when a date actually exists in the API response — callers can now rely on exists to check availability. GH #10
- Fix uninitialized value warning in UPStrack() when the API returns a weight hash without a unitOfMeasurement field. PR #26
- Fix MANIFEST.SKIP regex issues: remove cpanfile exclusion conflict, anchor patterns properly, add exclusions for generated files. PR #26
- Fix duplicate 'provides' key in META_MERGE that caused the second entry to silently overwrite the first. PR #28
- Improvements:
- Deprecate getUPS() with a warnings::warnif('deprecated', ...) message. The UPS rate quoting endpoint (qcostcgi.cgi) has been retired. GH #7, PR #8
- Replace custom Error() subroutine with Carp::croak for proper caller-side error reporting with file/line context. PR #23
- Set a 30-second timeout and Business-UPS/$VERSION user-agent string on all LWP::UserAgent requests to prevent indefinite hangs. PR #30
- Update examples/test.pl to demonstrate UPStrack() instead of the non-functional getUPS(). PR #9
- Add author tests (AUTHOR_TESTING) for POD validity and POD coverage. PR #24
- Add edge case tests for UPStrack: weight without unit, empty address, empty trackDetails, partial activities, undef tracking number. PR #26
- Maintenance:
- Update all documentation and POD to match v2.03 JSON API changes. PR #6
- Modernize Exporter usage: use Exporter 'import' instead of @ISA manipulation. PR #28
- Upgrade META_MERGE to CPAN META spec 2.0 with proper bugtracker, repository, and provides metadata. PR #21, PR #25
- Move Test::More from PREREQ_PM to TEST_REQUIRES. PR #6
- Add LICENSE file, LICENSE section to POD. PR #11, PR #12
- Add SECURITY.md and CONTRIBUTING.md. PR #14, PR #15
- Add CLAUDE.md and AI_POLICY.md project documentation. PR #19
Modules
A UPS Interface Module