Releases: bxparks/AceTime
Releases · bxparks/AceTime
1.1.2 - upgrade to TZDB 2020d
- 1.1.2 (2020-10-25, TZ DB version 2020d)
- Move examples/WorldClock, examples/OledClock and examples/CommandLineClock
to a new repo (https://github.com/bxparks/clocks). - Update
src/ace_time/zonedbandsrc/ace_time/zonedbxto TZDB 2020d
(https://mm.icann.org/pipermail/tz-announce/2020-October/000062.html).- "Palestine ends DST earlier than predicted, on 2020-10-24."
- Move examples/WorldClock, examples/OledClock and examples/CommandLineClock
1.1.1 - Upgrade to TZDB version 2020c
- 1.1.1 (2020-10-18, TZ DB version 2020c)
- Add documentation for using the
PrintStr<N>class from the AceUtils
library (https://github.com:bxparks/AceUtils) on the variousprintTo()
methods. The string content can be retrieved using the
PrintStr::getCstr()method which returns a normalconst char*
C-string. ThePrintStr<N>class replaces an earlier, unreleased version
that was calledCstrPrint<N>. - Add 'Validation Tests' GitHub workflow for running
tests/validation/*Test. - Create
blacklist.jsonfile for eachcompare_xxxtools, to disable
validation checks for DST or abbreviations due to bugs in the 3rd party
libraries. - Add
ValidationScopeenum to provide better control over whether the
DST or abbrev fields are validated. - Print better diagnostic messages when
tests/validationfails in
BasicTransitionTestandExtendedTransitionTestclasses. - Upgrade target version numbers of 3rd party libraries used for
tests/validation: pytz from 2019.3 to 2020.1, JDK 11.0.6 to 11.0.8. - Upgrade to TZDB 2020c.
- Restrict GitHub Actions workflow to run just BasicHinnantDateTest and
ExtendedHinnantDateTest, because the other Python and Java tests break
every time a new TZDB version comes out. - Add
DEVELOPER.mdfile containing notes mostly for myself.
- Add documentation for using the
upgrade to TZ DB version 2020a
- 1.1 (2020-04-25, TZ DB version 2020a)
- Fix broken links in
README.md. - Fix typos in
USER_GUIDE.mdand update its version number to 1.0 as it
should have been back in October. - Massive refactor of
./toolsprocessing pipeline and update
validation/tests.- Add mypy strict type checking for Python scripts under
tools. - Funnel
validation*.{h,cpp}code generation through a single program
using avalidation_data.jsonintermediate file. - Funnel processing of TZDB output from
transformer.pyinto a single
tzdbcollector.pywhich can produce atzdb.jsonoutput. - Separate
validator.pyprocessing into a distinct section.
- Add mypy strict type checking for Python scripts under
- Add validation tests against Python
dateutillibrary (similar to
pytz). - Update TZ Database version to 2020a that was released on 2020-04-23.
- Fix broken links in
1.0 - graduate to 1.0 with TZ DB version 2019c
- 1.0 (2019-10-02, TZ DB version 2019c)
- Add initial support for GitHub actions to implement continuous integration
using the unit tests that run under UnitHostDuino. - Allow NtpClock to use an existing WiFi connection. Add
examples/HelloNtpClock/to demonstrate this. (#24, thanks
@denis-stepanov). - Fix compiler warning about duplicate
FPSTR()macro for ESP32 Core
version >=1.0.3. - Generate the zonedb files for the various
validation/*Testintegration
tests on-demand, instead of using the zonedb files checked into
src/ace_time/zonedb[x]. This allows us to match the version of the TZ
Database used by AceTime to the version used by Java 11, pytz, and Hinnant
Date, independently of the version that is generated into
src/ace_time/zonedb[x]. - Update
src/ace_time/zonedb[x]files to TZ version 2019c. - Graduate to version 1.0.
- Add initial support for GitHub actions to implement continuous integration
0.8.1 - update SystemClockCoroutine for compatibility with AceRoutine v0.3
- 0.8.1
- Update
SystemClockCoroutineto be compatible with
COROUTINE_DELAY_SECONDS()API changed in AceRoutine v0.3. - Fix typos and grammar errors in
USER_GUIDE.mdandREADME.md. - Remove
YearMonthabstraction inBasicZoneProcessor, saving 12 bytes
of flash in WorldClock.
- Update
0.8 - support 1-minute resolution for all Extended timezones and most Basic timezones
- 0.8
- Handle
Fri<=1correctly in various python scripts. (#17) - Improve resolution of zonedb files and ZoneProcessor classes. (#18)
- Both BasicZoneProcessor and ExtendedZoneProcessor support 1-minute
resolutions for the AT and UNTIL fields. - BasicZoneProcessor (and zonedb files) support a 15-minute resolution
for both STDOFF and DST offset fields. - ExtendedZoneProcessor (and zonedbx files) support one-minute
resolution for STDOFF field and 15-minute resolution for DST offset
(with a range of -01:00 to 02:45). (4 bits of thedeltaCode
field were given to theoffsetCodefield to give it the
1-minute resolution.) - Regenerate zonedbx using 1-minute resolution.
- Both BasicZoneProcessor and ExtendedZoneProcessor support 1-minute
- Fix broken BasicZoneProcessor on some timezones between 1975 and
2000. Did not handle transitions from fixed ZoneEra (RULES='-') to named
ZoneEra (RULES=reference) or vise versa. Verified against pytz and
Hinnant date from 1975 to 2050.
- Handle
0.7.2 - support fixed offset RULES with '/' in FORMAT
- 0.7.2
- Support timezones whose FORMAT contains a '/' with a fixed RULES column.
Seems to make BasicZoneProcessor slightly smaller (20-80 bytes) and
ExtendedZoneProcessor slightly bigger (50-100 bytes). - Split
--granularityinto--until_at_granularityand
offset_granularity. Current zonedb files use values of 60 and 900
respectively.
- Support timezones whose FORMAT contains a '/' with a fixed RULES column.
0.7.1 - replace TimeZone::printAbbrevTo() with getAbbrev()
- 0.7.1
- Replace
TimeZone::printAbbrevTo()with more
flexible and usefulTimeZone::getAbbrev().
- Replace
0.7 - support DST transitions at 00:01; validate against Hinnant date library; upgrade to TZ 2019b
- 0.7
- Change TimeZoneData to store mStdOffset and mDstOffset in units of
one minute (instead of 15-minute increments, "code") in the off chance
that the library supports timezones with one-minute shifts in the future. - Implement TimeOffset using 2 bytes (
int16_t) instead of one byte
(int8_t) to give it a resolution of one minute instead of 15 minutes. - Generate zoneinfo files containing AT and UNTIL timestamps with
one-minute resolution (instead of 15-minute resolution). ZoneInfo files
(zonedb/andzonedbx/) remain identical in size. Flash memory
consumption usually increases by 130 to 500 bytes, but sometimes decreases
by 50-100 bytes. Timezones whose DST transitions occur at 00:01
(America/Goose_Bay, America/Moncton, America/St_Johns, Asia/Gaza,
Asia/Hebron) no longer truncate to 00:00. - Rename
TimeOffset::forHour()toforHours()for consistency with
forMinutes(). - Make
ExtendedZoneProcessormore memory efficient for 32-bit processors
by packing internal fields to 4-byte boundaries. - Integrate C++11/14/17
Hinnant Date library by
creating additionaltests/validationtests. - Upgrade
zonedbandzonedbxzoneinfo files to version 2019b,
after validating against the Hinnant date library. - Upgrade to
pytzversion 2019.2 to pickup TZ Database 2019b.
- Change TimeZoneData to store mStdOffset and mDstOffset in units of
0.6.1 - add missing classes to doxygen docs
- 0.6.1
- Create a second Jenkins continuous build pipeline file
tests/JenskinfileUnitHostto use UnitHostDuino to run the unit tests
natively on Linux. The entire set of unit tests builds and runs in 20
seconds under UnixHostduino, compared to about 8 minutes for the single
Nano environemnt, and 32 minutes against 4 boards (Nano, ESP8266, ESP32,
SAMD21). - Fix Doxygen PREPROCESSOR so that it picks up classes which are enabled
only on some environments (e.g. ESP8266, ESP32). - Add circuit schematics to OledClock and WorldClock examples.
- Simplify logging::printf() used internally for debugging.
- No functional change from 0.6.
- Create a second Jenkins continuous build pipeline file