Revision history for Perl extension Business::UPS
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
2.03 2026-03-22
Bug Fixes:
- Fix UPStrack() to use UPS JSON tracking API. The old HTML-scraping
approach stopped working when UPS redesigned their website. GH #2, PR #3
- Fix Error() to die instead of exit(1), which is critical for library
code — callers can now catch errors with eval. PR #3
Improvements:
- Add comprehensive mocked tests for getUPS() covering success, error,
HTTP failure, optional parameters, country defaults, and flag handling. PR #5
- Add comprehensive tests for UPStrack(). PR #3
Maintenance:
- Modernize CI workflow: actions/checkout v4, dynamic perl-versions matrix,
perldocker/perl-tester images, disttest job, fail-fast: false. PR #4
- Fix GitHub URLs in Makefile.PL META_MERGE to point to cpan-authors org. PR #4
- Remove stale code: AutoLoader from @ISA, empty END block. PR #5
- Bump minimum Perl version to 5.014 and set MIN_PERL_VERSION in
Makefile.PL. PR #5
- Fix clean target: Net-Business-UPS-* → Business-UPS-*. PR #5
- Add JSON::PP dependency (core since Perl 5.14). PR #3
- Update MANIFEST to include cpanfile, upstrack.t, getups.t,
MANIFEST.SKIP. PR #5
2.02 Thu Jan 21 2020
- Github Issues (RT is shutting down)
- Use https:// URLs
- Github CI
- Automate manifest and ignores.
- Kill use vars.
- Tidy.
2.01 Fri Jun 20 2003 jwheeler <upsmodule@datademons.com>
* Changed namespace to the original Business::UPS to make room for
Dan Browning's Business::Shipping modules.
Tue Jun 10 13:28:37 2003 jwheeler <upsmodule@datademons.com>
* Came across this module, was horribly outdated, rewrote it to work again.
* Renamed to Business::Shipping::UPS so as not to interfere with solomon's namespace.
Mon Feb 22 16:03:01 1999 msolomon <msolomon@fido.seva.net>
* UPS.pm: Thanks to pudge@pobox.com, changed a {} to ()
Tue Feb 9 20:16:07 1999 msolomon <msolomon@fido.seva.net>
* UPS.pm: Added rate chart
Defaults to Destination in the US is none specified
Fri Jan 22 17:11:40 1999 msolomon <msolomon@fido.seva.net>
* Attic/Changes: Not in cvs
* examples/test.pl, test.pl, qwk-cost.zip, product-codes.txt, country-codes.txt, README, Makefile.PL, LICENSE.ups, MANIFEST, Attic/Changes:
Added files
Mon Mar 9 21:17:01 1998 msolomon <msolomon@fido.seva.net>
* UPS.pm: added copyright
* UPS.pm: *** empty log message ***
* UPS.pm: worked on docs
* UPS.pm: Cleaned up a great deal of code in UPStrack()
Sat Feb 28 06:25:38 1998 msolomon <msolomon@fido.seva.net>
* UPS.pm: Added UPStrack sub
this allows tracking using UPS tracking number
Mon Feb 23 17:10:52 1998 msolomon <msolomon@fido.seva.net>
* UPS.pm:
added international capability and added dimensions, oversized, and COD
Mon Jan 19 14:51:31 1998 msolomon <msolomon@fido.seva.net>
* UPS.pm: Change
Sun Jan 18 05:43:07 1998 msolomon <msolomon@fido.seva.net>
* UPS.pm: Change