Skip to content

Releases: bxparks/AceTime

1.1.2 - upgrade to TZDB 2020d

25 Oct 21:31
a5fd76c

Choose a tag to compare

1.1.1 - Upgrade to TZDB version 2020c

18 Oct 21:40
02a56f3

Choose a tag to compare

  • 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 various printTo()
      methods. The string content can be retrieved using the
      PrintStr::getCstr() method which returns a normal const char*
      C-string. The PrintStr<N> class replaces an earlier, unreleased version
      that was called CstrPrint<N>.
    • Add 'Validation Tests' GitHub workflow for running
      tests/validation/*Test.
    • Create blacklist.json file for each compare_xxx tools, to disable
      validation checks for DST or abbreviations due to bugs in the 3rd party
      libraries.
    • Add ValidationScope enum to provide better control over whether the
      DST or abbrev fields are validated.
    • Print better diagnostic messages when tests/validation fails in
      BasicTransitionTest and ExtendedTransitionTest classes.
    • 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.md file containing notes mostly for myself.

upgrade to TZ DB version 2020a

26 Apr 05:25
36b5c61

Choose a tag to compare

  • 1.1 (2020-04-25, TZ DB version 2020a)
    • Fix broken links in README.md.
    • Fix typos in USER_GUIDE.md and update its version number to 1.0 as it
      should have been back in October.
    • Massive refactor of ./tools processing 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 a validation_data.json intermediate file.
      • Funnel processing of TZDB output from transformer.py into a single
        tzdbcollector.py which can produce a tzdb.json output.
      • Separate validator.py processing into a distinct section.
    • Add validation tests against Python dateutil library (similar to
      pytz).
    • Update TZ Database version to 2020a that was released on 2020-04-23.

1.0 - graduate to 1.0 with TZ DB version 2019c

03 Oct 04:13

Choose a tag to compare

  • 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/*Test integration
      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.

0.8.1 - update SystemClockCoroutine for compatibility with AceRoutine v0.3

27 Aug 03:38
1f00841

Choose a tag to compare

  • 0.8.1
    • Update SystemClockCoroutine to be compatible with
      COROUTINE_DELAY_SECONDS() API changed in AceRoutine v0.3.
    • Fix typos and grammar errors in USER_GUIDE.md and README.md.
    • Remove YearMonth abstraction in BasicZoneProcessor, saving 12 bytes
      of flash in WorldClock.

0.8 - support 1-minute resolution for all Extended timezones and most Basic timezones

19 Aug 19:36
5f6d640

Choose a tag to compare

  • 0.8
    • Handle Fri<=1 correctly 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 the deltaCode
        field were given to the offsetCode field to give it the
        1-minute resolution.)
      • Regenerate zonedbx using 1-minute resolution.
    • 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.

0.7.2 - support fixed offset RULES with '/' in FORMAT

15 Aug 02:14
4f86b72

Choose a tag to compare

  • 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 --granularity into --until_at_granularity and
      offset_granularity. Current zonedb files use values of 60 and 900
      respectively.

0.7.1 - replace TimeZone::printAbbrevTo() with getAbbrev()

14 Aug 00:07
352722a

Choose a tag to compare

  • 0.7.1
    • Replace TimeZone::printAbbrevTo() with more
      flexible and useful TimeZone::getAbbrev().

0.7 - support DST transitions at 00:01; validate against Hinnant date library; upgrade to TZ 2019b

13 Aug 18:20
7c2b39b

Choose a tag to compare

  • 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/ and zonedbx/) 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() to forHours() for consistency with
      forMinutes().
    • Make ExtendedZoneProcessor more memory efficient for 32-bit processors
      by packing internal fields to 4-byte boundaries.
    • Integrate C++11/14/17
      Hinnant Date library by
      creating additional tests/validation tests.
    • Upgrade zonedb and zonedbx zoneinfo files to version 2019b,
      after validating against the Hinnant date library.
    • Upgrade to pytz version 2019.2 to pickup TZ Database 2019b.

0.6.1 - add missing classes to doxygen docs

07 Aug 20:33
19fe84a

Choose a tag to compare

  • 0.6.1
    • Create a second Jenkins continuous build pipeline file
      tests/JenskinfileUnitHost to 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.