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