Skip to content

Releases: bxparks/AceTime

0.5 - ZoneManager allows dynamic creation of TimeZone

22 Jul 04:10
9b570ac
Compare
Choose a tag to compare
  • 0.5 (2019-07-21, TB DB version 2019a, beta)
    • Remove over-engineered SystemClockHeartbeatLoop and
      SystemClockHeartbeatLoop and replace with just a call to
      SystemClock::keepAlive().
    • Remove overly complex ManualZoneProcessor and merge most of its
      functionality directly into the TimeZone using kTypeManual. We lose
      the manual abbreviations provided by ManualZoneProcessor but the
      simplification of using just the TimeZone object without an extra object
      seems worth it.
    • Add a stable zoneId to ZoneInfo that identifies a zone. It is
      formed using a hash of the fully qualified zone name. The
      tzcompiler.py generator script will detect hash collisions and create an
      alternate hash.
    • Rename old ZoneManager as the ZoneRegistrar, and
      repurpose ZoneManager as the TimeZone factory, which keeps an internal
      cache of ZoneProcessor. TimeZone objects can be dynamically bound to
      ZoneProcessor objects using createForZoneInfo(),
      createForZoneName(), `createForZoneId().
    • Add TimeZoneData data struct to allow serialization of a TimeZone object
      as a zoneId so that it can be reconstructed using
      ZoneManger::createForTimeZoneData().
    • Rename ZoneSpecifier to ZoneProcessor to describe its functionality
      better. ZoneInfo is now passed directly into the TimeZone object using
      the TimeZone::forZoneInfo() factory method, with the ZoneProcessor
      acting as a helper object.

0.4 - store zoneinfo files in PROGMEM

10 Jul 07:01
ca87f43
Compare
Choose a tag to compare
  • 0.4 (2019-07-09, TZ DB version 2019a, beta)
    • Support the less-than-or-equal syntax {dayOfWeek}<={dayOfMonth}
      appearing in version 2019b of the TZ Database which contains Rule Zion, 2005 to 20012, IN Apr, ON Fri<=1.
    • Add BasicZoneManager and ExtendedZoneManager to retrieve ZoneInfo
      from TZ Database string identifier (e.g. "America/Los_Angeles").
    • Add configuration options (ACE_TIME_USE_BASIC_PROGMEM and
      ACE_TIME_USE_EXTENDED_PROGMEM) to place zoneinfo
      files into PROGMEM to save static RAM.

0.3.1 - add copyright notices to source files

30 Jun 21:12
7710fa3
Compare
Choose a tag to compare
  • 0.3.1 (2019-06-30, beta)
    • Add copyright notices on source files.
    • Fix typos and formatting of README.md and USER_GUIDE.md.
    • No functional change from 0.3.

0.3 - support Link entries from TZ Database

28 Jun 21:40
df3c1d1
Compare
Choose a tag to compare
  • 0.3 (2019-06-28, beta)
    • Support Link entries from TZ Database files as C++ references to
      corresponding Zone entries.
    • Add backward and etctera files from TZ Database to the tzcompiler.py
      processing. ExtendedZoneSpecifier now supports every Zone and Link
      entry in the TZ Database (except those in backzone and systemv).
    • Add better zone and link name normalization. Convert + into _PLUS_,
      all other non-alphanumeric (0-9a-zA-Z_) converted to underscore _.
    • Move validation unit tests into separate tests/validation directory.
      Use Makefiles to generate validation_data.* files dynamically at compile
      time.

0.2 - better handling of gaps and overlaps in wall time with some date normalization

26 Jun 19:21
24baee7
Compare
Choose a tag to compare
  • 0.2 (2019-06-26, alpha)
    • Reduce flash memory size of WorldClock by removing extra font.
    • Split USER_GUIDE.md from README.md.
    • Rename ace_time::provider to ace_time::clock and rename
      SystemTimeProvider to SystemClock.
    • Add HelloSystemClock example code.
    • Add isValidYear() into various forComponents() methods to check
      int8_t range of year component.
    • Rename DateStrings::weekDay*() methods to dayOfWeek*() for
      consistency.
    • Change ZonedDateTime::printTo() format to match Java Time format.
    • Remove friend declarations not related to unit tests.
    • Remove redundant definitions of kInvalidEpochSeconds, standardize on
      LocalDate::kInvalidEpochSeconds.
    • Make timeOffset a required parameter for constructors and factory
      methods OffsetDateTime instead of defaulting to TimeOffset().
    • Make timeZone a required parameter in constructors and factory methods
      of ZonedDateTime.
    • Fix BasicZoneSpecifier::getOffsetDateTime() to handle gaps and overlaps
      in a reasonable way, and perform some amount of normalization.

0.1 - initial release

16 Jun 01:16
c4ee1c5
Compare
Choose a tag to compare
  • 0.1 (2019-06-15)
    • Initial release on GitHub to establish a reference point.