Skip to content

Commit

Permalink
Merge pull request #103 from bxparks/develop
Browse files Browse the repository at this point in the history
merge 2.0.1 into master
  • Loading branch information
bxparks authored Dec 4, 2022
2 parents 09175d4 + 6c6da3c commit cdf3adf
Show file tree
Hide file tree
Showing 389 changed files with 28,170 additions and 27,640 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/aunit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ on: [push]
jobs:
build:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Setup
run: |
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on: [push]
jobs:
build:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

# Tried to use
# https://github.com/actions/checkout#Checkout-multiple-repos-side-by-side,
Expand All @@ -21,7 +21,7 @@ jobs:
# manually.
steps:
- name: Checkout AceTime
uses: actions/checkout@v2
uses: actions/checkout@v3

- name: Checkout Additional Repos
run: |
Expand Down
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,23 @@
# Changelog

* Unreleased
* 2.0.1 (2022-12-04, TZDB 2022g)
* Prevent `ExtendedZoneProcssor::generateStartUntilTimes()` from
dereferencing uninitialized memory if there are no matching transitions.
* This may happen if `zonedbx` is accidentally corrupted (e.g. by using
one with `int8` year fields instead of `int16` year fields).
* Incorporate notable `zone_policies.h` comments into notable
`zone_infos.h`.
* Upgrade TZDB from 2022f to 2022g
* https://mm.icann.org/pipermail/tz-announce/2022-November/000076.html
* The northern edge of Chihuahua changes to US timekeeping.
* Much of Greenland stops changing clocks after March 2023.
* Fix some pre-1996 timestamps in northern Canada.
* C89 is now deprecated; please use C99 or later.
* Portability fixes for AIX, libintl, MS-Windows, musl, z/OS
* In C code, use more C23 features if available.
* C23 timegm now supported by default
* Fixes for unlikely integer overflows
* 2.0 (2022-11-04, TZDB 2022f) **Breaking Change** See
[Migrating to 2.0.0](MIGRATING.md#MigratingToVersion200)
* Change internal storage type of `year` component from `int8_t` to
Expand Down
42 changes: 24 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,26 @@
[![Validation Tests](https://github.com/bxparks/AceTime/actions/workflows/validation.yml/badge.svg)](https://github.com/bxparks/AceTime/actions/workflows/validation.yml)

The AceTime library provides Date, Time, and TimeZone classes which can convert
"epoch seconds" (seconds from the AceTime Epoch of 2050-01-01 UTC) to
"epoch seconds" from the AceTime Epoch (default 2050-01-01 UTC) to
human-readable local date and time fields. Those classes can also convert local
date and time between different time zones, properly accounting for all DST
transitions from the year 2000 until 2100. The AceTime epoch is adjustable by
the client application and can be shifted forward to allow the library to work
over any 100-year interval in the future, until the year 10000.
transitions from the year 2000 until 2100.

The pre-generated ZoneInfo Database is extracted from the [IANA TZ
database](https://www.iana.org/time-zones). Different subsets of the ZoneInfo
Database can be compiled into the application to reduce flash memory size.
Standard C-library `time_t` types, 32-bit and 64-bit, are supported through
conversion methods.
The default AceTime epoch is 2050-01-01, but it can be adjusted by the client
application. The timezone functions are valid over any 100-year interval
straddling +/- 50 years of the `Epoch::currentEpochYear()`, subject to the
limits of the ZoneInfo Databases.

The two pre-generated ZoneInfo Databases (`zonedb` and `zonedbx`) are
programmatically extracted from the [IANA TZ
database](https://www.iana.org/time-zones). They are valid from the year 2000
until the year 10000. Client applications can choose to use reduced subsets of
the ZoneInfo Database to save flash memory size.

Support for [Unix time](https://en.wikipedia.org/wiki/Unix_time) using the Unix
epoch of 1970-01-01 is provided through conversion functions of the `time_t`
type. Only the 64-bit version of the `time_t` type is supported to avoid the
[Year 2038 Problem](https://en.wikipedia.org/wiki/Year_2038_problem)).

The companion library [AceTimeClock](https://github.com/bxparks/AceTimeClock)
provides Clock classes to retrieve the time from more accurate sources, such as
Expand Down Expand Up @@ -44,17 +52,15 @@ This library can be an alternative to the Arduino Time
(https://github.com/PaulStoffregen/Time) and Arduino Timezone
(https://github.com/JChristensen/Timezone) libraries.

**Breaking Changes in v2.0**: 1) The AceTime epoch is shifted forward 50 years
from 2000-01-01 UTC to 2050-01-01 This extends the validity of most timezone
related functions from `[2000,2050)` to `[2000,2100)`. 2) The epoch year is now
an adjustable parameter using the function `Epoch::currentEpochYear(year)`. 3)
The zoneinfo database (`zonedb` and `zonedbx`) are now valid from `[2000,
10000)` independent of the current epoch year. The timezone functions are now
valid over any 100-year interval straddling +/- 50 years of the
`Epoch::currentEpochYear()`. See the [Migrating to
**Breaking Changes in v2.0**: 1) The default AceTime epoch is shifted forward
from 2000-01-01 (v1) to 2050-01-01 (v2). This extends the validity of most
timezone related functions from `[2000,2050)` to `[2000,2100)`. 2) The epoch
year is now an adjustable parameter using the `Epoch::currentEpochYear(year)`
function. 3) The zoneinfo databases (`zonedb` and `zonedbx`) are now valid from
`[2000, 10000)`, independent of the current epoch year. See the [Migrating to
v2.0.0](MIGRATING.md#MigratingToVersion200) section for more details.

**Version**: 2.0 (2022-11-04, TZDB version 2022f)
**Version**: 2.0.1 (2022-12-04, TZDB version 2022g)

**Changelog**: [CHANGELOG.md](CHANGELOG.md)

Expand Down
2 changes: 1 addition & 1 deletion USER_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ valid from the years `[2000,10000)`. By adjusting the `currentEpochYear()`, the
library will work across any 100 year interval across the 8000 year range of the
TZ database.

**Version**: 2.0 (2022-11-04, TZDB 2022f)
**Version**: 2.0.1 (2022-12-04, TZDB 2022g)

**Related Documents**:

Expand Down
2 changes: 1 addition & 1 deletion docs/doxygen.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ PROJECT_NAME = AceTime
# could be handy for archiving the generated documentation or if some version
# control system is used.

PROJECT_NUMBER = 2.0.0
PROJECT_NUMBER = 2.0.1

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
6 changes: 3 additions & 3 deletions docs/html/AceTime_8h_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">AceTime
&#160;<span id="projectnumber">2.0.0</span>
&#160;<span id="projectnumber">2.0.1</span>
</div>
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
</td>
Expand Down Expand Up @@ -130,8 +130,8 @@
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#include &quot;ace_time/ace_time_utils.h&quot;</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">// Version format: xxyyzz == &quot;xx.yy.zz&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 20000</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;2.0.0&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 20001</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;2.0.1&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="ttc" id="acompat_8h_html"><div class="ttname"><a href="compat_8h.html">compat.h</a></div><div class="ttdoc">Macros and definitions that provide a consistency layer among the various Arduino boards for compatib...</div></div>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/BasicBrokers_8cpp_source.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">AceTime
&#160;<span id="projectnumber">2.0.0</span>
&#160;<span id="projectnumber">2.0.1</span>
</div>
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
</td>
Expand Down
2 changes: 1 addition & 1 deletion docs/html/BasicBrokers_8h.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">AceTime
&#160;<span id="projectnumber">2.0.0</span>
&#160;<span id="projectnumber">2.0.1</span>
</div>
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
</td>
Expand Down
Loading

0 comments on commit cdf3adf

Please sign in to comment.