@@ -36,7 +36,7 @@ library.
3636On 2021-08-25, the scripts under ` ./tools ` were moved into the
3737[ AceTimeTools] ( https://github.com/bxparks/AceTimeTools/ ) project, and the
3838integration tests under ` ./tests/validation ` were moved into the
39- [ AceTimeValidations ] ( https://github.com/bxparks/AceTimeValidation ) project. Then
39+ [ AceTimeValidation ] ( https://github.com/bxparks/AceTimeValidation ) project. Then
4040on 2021-09-08, the Python timezone classes (` zone_processor.py ` , ` acetz.py ` ,
4141etc) were moved into the
4242[ acetimepy] ( https://github.com/bxparks/acetimepy ) project.
@@ -798,60 +798,84 @@ About 2-4 times a year, a new TZDB version is released. Here are some notes
798798(mostly for myself) on how to create a new release after a new TZDB version is
799799available.
800800
801- * Update the TZDB repo (https://github.com/eggert/tz ). This should be a
801+ - Update the TZDB repo (https://github.com/eggert/tz ). This should be a
802802 sibling to the ` AceTime ` repo (since it will cause the least problems
803803 for various internal scripts):
804- * ` $ cd ../tz `
805- * ` $ git pull `
806- * Check that the correct tag is pulled (e.g. ` 2020c ` tag if that's the
804+ - ` $ cd ../tz `
805+ - ` $ git pull `
806+ - Check that the correct tag is pulled (e.g. ` 2020c ` tag if that's the
807807 version that we want to upgrade to).
808- * Update the Hinnant date repo (https://github.com:HowardHinnant/date ). This
808+ - Update the Hinnant date repo (https://github.com:HowardHinnant/date ). This
809809 should be a sibling to the ` AceTime ` repo:
810- * ` $ cd ../date `
811- * ` $ git pull `
812- * Update the zonedb files for acetimepy (needed by AcetzBasicTest and
810+ - ` $ cd ../date `
811+ - ` $ git pull `
812+ - Update the zonedb files for ` acetimepy ` (needed by AcetzBasicTest and
813813 AcetzExtendedTest):
814- * ` $ cd acetimepy/src/acetime/zonedb `
815- * Update the ` TZ_VERSION ` variable in ` Makefile ` .
816- * ` $ make `
817- * Verify that ` AceTimeValidation ` passes (which compares AceTime with
818- acetimepy and the Hinnant ` date ` library):
819- * ` $ cd ../AceTimeValidation `
820- * Update the ` TZ_VERSION ` variable in the following files:
821- * ` tests/AcetzBasicTest/Makefile `
822- * ` tests/AcetExtendedzTest/Makefile `
823- * ` tests/HinnantBasicTest/Makefile `
824- * ` tests/HinnantExtendedTest/Makefile `
825- * ` $ make clean `
826- * ` $ make validations `
827- * ` $ make runvalidations `
828- * Update the various zoneinfo files for AceTime:
829- * ` $ cd AceTime/src `
830- * Update the ` TZ_VERSION ` variable in ` Makefile ` .
831- * ` $ make `
832- * Update CHANGELOGs
833- * AceTime/CHANGELOG.md
834- * acetimepy/CHANGELOG.md
835- * AceTimeValidation/CHANGELOG.md
836- * Commit the changes to git
837- * ` $ git add ... `
838- * ` $ git commit -m "..." `
814+ - ` $ cd acetimepy/src/acetime `
815+ - ` $ vi zonedb*/Makefile `
816+ - Update the ` TZ_VERSION ` variable in the various makefiles.
817+ - ` $ make zonedbs `
818+ - Update the zonedb files for ` acetimec ` (needed by AcetimecBasicTest and
819+ AcetimecExtendedTest)
820+ - ` $ cd acetimec/src `
821+ - ` $ vi zonedb*/Makefile `
822+ - Update the ` TZ_VERSION ` variable in the various makefiles.
823+ - ` $ make zonedbs `
824+ - ` $ make ` to update the ` acetimec.a ` lib file
825+ - Recompile the binaries in ` AceTimeValidation ` tools
826+ - ` $ cd AceTimeValidation/tools `
827+ - ` $ make clean `
828+ - ` $ make `
829+ - Verify that ` AceTimeValidation ` passes. This compares AceTime with 3 other
830+ libraries: acetimec, acetimepy, and the Hinnant ` date ` library:
831+ - ` $ cd AceTimeValidation/tests `
832+ - ` $ make clean `
833+ - ` $ vi {Acetimec,Acetz,Hinnant}{Basic,Extended}*/Makefile `
834+ - Update the ` TZ_VERSION ` variable in the following:
835+ - ` AcetimecBasicTest/Makefile `
836+ - ` AcetimecExtendedTest/Makefile `
837+ - ` AcetzBasicTest/Makefile `
838+ - ` AcetzExtendedTest/Makefile `
839+ - ` HinnantBasicTest/Makefile `
840+ - ` HinnantExtendedTest/Makefile `
841+ - Validate against one library, acetimec:
842+ - ` $ vi AcetimecExtendedTest/Makefile `
843+ - ` $ make -C AcetimecExtendedTest clean `
844+ - ` $ make -C AcetimecExtendedTest all `
845+ - ` $ make -C AcetimecExtendedTest run `
846+ - Validate against the other libraries:
847+ - ` $ make clean `
848+ - ` $ make -j4 tests `
849+ - ` $ make runtests `
850+ - Update the various zoneinfo files for AceTime:
851+ - ` $ cd AceTime/src `
852+ - ` $ vi zonedb*/Makefile `
853+ - Update the ` TZ_VERSION ` variable in the makefiles.
854+ - ` $ make zonedbs `
855+ - Update CHANGELOGs
856+ - AceTime/CHANGELOG.md
857+ - acetimec/CHANGELOG.md
858+ - acetimepy/CHANGELOG.md
859+ - AceTimeValidation/CHANGELOG.md
860+ - Commit the changes to git
861+ - ` $ git add ... `
862+ - ` $ git commit -m "..." `
839863
840864There are 12 other validation tests in the AceTimeValidation project that
841865compare AceTime with various other third party libraries:
842866
843- * ` DateUtilBasicTest `
844- * ` DateUtilExtendedTest `
845- * ` GoBasicTest `
846- * ` GoExtendedTest `
847- * ` JavaBasicTest `
848- * ` JavaExtendedTest `
849- * ` NodaBasicTest `
850- * ` NodaExtendedTest `
851- * ` PytzBasicTest `
852- * ` PytzExtendedTest `
853- * ` ZoneInfoBasicTest `
854- * ` ZoneInfoExtendedTest `
867+ - ` DateUtilBasicTest `
868+ - ` DateUtilExtendedTest `
869+ - ` GoBasicTest `
870+ - ` GoExtendedTest `
871+ - ` JavaBasicTest `
872+ - ` JavaExtendedTest `
873+ - ` NodaBasicTest `
874+ - ` NodaExtendedTest `
875+ - ` PytzBasicTest `
876+ - ` PytzExtendedTest `
877+ - ` ZoneInfoBasicTest `
878+ - ` ZoneInfoExtendedTest `
855879
856880Unfortunately, they all seem to use the underlying TZDB version provided by the
857881Operating System, and I have not been able to figure out how to manually update
@@ -861,78 +885,78 @@ fail until the underlying timezone database of the OS is updated.
861885<a name =" ReleaseProcess " ></a >
862886## Release Process
863887
864- * Update ` examples/MemoryBenchmark ` and ` examples/AutoBenchmark ` .
865- * Update and commit the version numbers in various files:
866- * ` src/AceTime.h `
867- * ` README.md `
868- * ` USER_GUIDE.md `
869- * ` MIGRATING.md `
870- * ` CHANGELOG.md `
871- * ` docs/doxygen.cfg `
872- * ` library.properties `
873- * ` $ git commit -m "..." `
874- * ` $ git push `
875- * Update and commit the Doxygen docs. This is done as a separate git commit
888+ - Update ` examples/MemoryBenchmark ` and ` examples/AutoBenchmark ` .
889+ - Update and commit the version numbers in various files:
890+ - ` src/AceTime.h `
891+ - ` README.md `
892+ - ` USER_GUIDE.md `
893+ - ` MIGRATING.md `
894+ - ` CHANGELOG.md `
895+ - ` docs/doxygen.cfg `
896+ - ` library.properties `
897+ - ` $ git commit -m "..." `
898+ - ` $ git push `
899+ - Update and commit the Doxygen docs. This is done as a separate git commit
876900 because the Doxygen changes are often so large that they obscure all other
877901 important changes to the code base:
878- * ` $ cd docs `
879- * ` $ make clean `
880- * ` $ make `
881- * ` $ git add . `
882- * ` $ git commit -m "..." `
883- * ` $ git push `
884- * (Optional) Create a new Release of acetimepy
885- * (This should be done first, before AceTime)
886- * Go to https://github.com/bxparks/acetimepy
887- * Bump version number on ` develop ` .
888- * Merge ` develop ` into ` master ` .
889- * Click on "Releases"
890- * Click on "Draft a new release"
891- * Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
892- * Enter the release title.
893- * Enter the release notes. I normally just copy and paste the latest changes
902+ - ` $ cd docs `
903+ - ` $ make clean `
904+ - ` $ make `
905+ - ` $ git add . `
906+ - ` $ git commit -m "..." `
907+ - ` $ git push `
908+ - (Optional) Create a new Release of acetimepy
909+ - (This should be done first, before AceTime)
910+ - Go to https://github.com/bxparks/acetimepy
911+ - Bump version number on ` develop ` .
912+ - Merge ` develop ` into ` master ` .
913+ - Click on "Releases"
914+ - Click on "Draft a new release"
915+ - Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
916+ - Enter the release title.
917+ - Enter the release notes. I normally just copy and paste the latest changes
894918 from ` CHANGELOG.md ` .
895- * Click Publish release.
896- * (Optional) Create a new Release of AceTimeTools
897- * (Depends on acetimepy)
898- * Go to https://github.com/bxparks/AceTimeTools
899- * Click on "Releases"
900- * Click on "Draft a new release"
901- * Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
902- * Enter the release title.
903- * Enter the release notes. I normally just copy and paste the latest changes
919+ - Click Publish release.
920+ - (Optional) Create a new Release of AceTimeTools
921+ - (Depends on acetimepy)
922+ - Go to https://github.com/bxparks/AceTimeTools
923+ - Click on "Releases"
924+ - Click on "Draft a new release"
925+ - Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
926+ - Enter the release title.
927+ - Enter the release notes. I normally just copy and paste the latest changes
904928 from ` CHANGELOG.md ` .
905- * Click Publish release.
906- * (Optional) Create a new Release of AceTimeValidation.
907- * (Depends on acetimepy)
908- * Go to https://github.com/bxparks/AceTimeTools
909- * Click on "Releases"
910- * Click on "Draft a new release"
911- * Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
912- * Enter the release title.
913- * Enter the release notes. I normally just copy and paste the latest changes
929+ - Click Publish release.
930+ - (Optional) Create a new Release of AceTimeValidation.
931+ - (Depends on acetimepy)
932+ - Go to https://github.com/bxparks/AceTimeTools
933+ - Click on "Releases"
934+ - Click on "Draft a new release"
935+ - Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
936+ - Enter the release title.
937+ - Enter the release notes. I normally just copy and paste the latest changes
914938 from ` CHANGELOG.md ` .
915- * Click Publish release.
916- * Create a new Release of AceTime (third, depends on AceTimeValidation).
917- * (Depends on acetimepy, AceTimeValidation)
918- * Go to https://github.com/bxparks/AceTime
919- * Merge the ` develop ` branch into ` master ` by creating a Pull Request.
920- * Approve and merge the PR.
921- * Click on "Releases"
922- * Click on "Draft a new release"
923- * Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
924- * Enter the release title.
925- * Enter the release notes. I normally just copy and paste the latest changes
939+ - Click Publish release.
940+ - Create a new Release of AceTime (third, depends on AceTimeValidation).
941+ - (Depends on acetimepy, AceTimeValidation)
942+ - Go to https://github.com/bxparks/AceTime
943+ - Merge the ` develop ` branch into ` master ` by creating a Pull Request.
944+ - Approve and merge the PR.
945+ - Click on "Releases"
946+ - Click on "Draft a new release"
947+ - Enter a tag version (e.g. ` v1.2 ` ), targeting the ` master ` branch.
948+ - Enter the release title.
949+ - Enter the release notes. I normally just copy and paste the latest changes
926950 from ` CHANGELOG.md ` .
927- * Click Publish release.
928- * Add corresponding tags on acetimepy, AceTimeTools and AceTimeValidation
951+ - Click Publish release.
952+ - Add corresponding tags on acetimepy, AceTimeTools and AceTimeValidation
929953 for reference.
930- * acetimepy
931- * ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
932- * ` $ git push --tags `
933- * AceTimeTools
934- * ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
935- * ` $ git push --tags `
936- * AceTimeValidation
937- * ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
938- * ` $ git push --tags `
954+ - acetimepy
955+ - ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
956+ - ` $ git push --tags `
957+ - AceTimeTools
958+ - ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
959+ - ` $ git push --tags `
960+ - AceTimeValidation
961+ - ` $ git tag -a 'atX.Y.Z' -m 'AceTime vX.Y.Z' `
962+ - ` $ git push --tags `
0 commit comments