Skip to content

Commit cdf3adf

Browse files
authored
Merge pull request #103 from bxparks/develop
merge 2.0.1 into master
2 parents 09175d4 + 6c6da3c commit cdf3adf

File tree

389 files changed

+28170
-27640
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+28170
-27640
lines changed

.github/workflows/aunit_tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ on: [push]
99
jobs:
1010
build:
1111

12-
runs-on: ubuntu-20.04
12+
runs-on: ubuntu-latest
1313

1414
steps:
15-
- uses: actions/checkout@v2
15+
- uses: actions/checkout@v3
1616

1717
- name: Setup
1818
run: |

.github/workflows/validation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on: [push]
99
jobs:
1010
build:
1111

12-
runs-on: ubuntu-20.04
12+
runs-on: ubuntu-latest
1313

1414
# Tried to use
1515
# https://github.com/actions/checkout#Checkout-multiple-repos-side-by-side,
@@ -21,7 +21,7 @@ jobs:
2121
# manually.
2222
steps:
2323
- name: Checkout AceTime
24-
uses: actions/checkout@v2
24+
uses: actions/checkout@v3
2525

2626
- name: Checkout Additional Repos
2727
run: |

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
# Changelog
22

33
* Unreleased
4+
* 2.0.1 (2022-12-04, TZDB 2022g)
5+
* Prevent `ExtendedZoneProcssor::generateStartUntilTimes()` from
6+
dereferencing uninitialized memory if there are no matching transitions.
7+
* This may happen if `zonedbx` is accidentally corrupted (e.g. by using
8+
one with `int8` year fields instead of `int16` year fields).
9+
* Incorporate notable `zone_policies.h` comments into notable
10+
`zone_infos.h`.
11+
* Upgrade TZDB from 2022f to 2022g
12+
* https://mm.icann.org/pipermail/tz-announce/2022-November/000076.html
13+
* The northern edge of Chihuahua changes to US timekeeping.
14+
* Much of Greenland stops changing clocks after March 2023.
15+
* Fix some pre-1996 timestamps in northern Canada.
16+
* C89 is now deprecated; please use C99 or later.
17+
* Portability fixes for AIX, libintl, MS-Windows, musl, z/OS
18+
* In C code, use more C23 features if available.
19+
* C23 timegm now supported by default
20+
* Fixes for unlikely integer overflows
421
* 2.0 (2022-11-04, TZDB 2022f) **Breaking Change** See
522
[Migrating to 2.0.0](MIGRATING.md#MigratingToVersion200)
623
* Change internal storage type of `year` component from `int8_t` to

README.md

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,26 @@
44
[![Validation Tests](https://github.com/bxparks/AceTime/actions/workflows/validation.yml/badge.svg)](https://github.com/bxparks/AceTime/actions/workflows/validation.yml)
55

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

14-
The pre-generated ZoneInfo Database is extracted from the [IANA TZ
15-
database](https://www.iana.org/time-zones). Different subsets of the ZoneInfo
16-
Database can be compiled into the application to reduce flash memory size.
17-
Standard C-library `time_t` types, 32-bit and 64-bit, are supported through
18-
conversion methods.
12+
The default AceTime epoch is 2050-01-01, but it can be adjusted by the client
13+
application. The timezone functions are valid over any 100-year interval
14+
straddling +/- 50 years of the `Epoch::currentEpochYear()`, subject to the
15+
limits of the ZoneInfo Databases.
16+
17+
The two pre-generated ZoneInfo Databases (`zonedb` and `zonedbx`) are
18+
programmatically extracted from the [IANA TZ
19+
database](https://www.iana.org/time-zones). They are valid from the year 2000
20+
until the year 10000. Client applications can choose to use reduced subsets of
21+
the ZoneInfo Database to save flash memory size.
22+
23+
Support for [Unix time](https://en.wikipedia.org/wiki/Unix_time) using the Unix
24+
epoch of 1970-01-01 is provided through conversion functions of the `time_t`
25+
type. Only the 64-bit version of the `time_t` type is supported to avoid the
26+
[Year 2038 Problem](https://en.wikipedia.org/wiki/Year_2038_problem)).
1927

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

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

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

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

USER_GUIDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ valid from the years `[2000,10000)`. By adjusting the `currentEpochYear()`, the
1818
library will work across any 100 year interval across the 8000 year range of the
1919
TZ database.
2020

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

2323
**Related Documents**:
2424

docs/doxygen.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = AceTime
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 2.0.0
41+
PROJECT_NUMBER = 2.0.1
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

docs/html/AceTime_8h_source.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">2.0.0</span>
25+
&#160;<span id="projectnumber">2.0.1</span>
2626
</div>
2727
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
2828
</td>
@@ -130,8 +130,8 @@
130130
<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>
131131
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
132132
<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>
133-
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 20000</span></div>
134-
<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>
133+
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 20001</span></div>
134+
<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>
135135
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
136136
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div>
137137
<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>

docs/html/BasicBrokers_8cpp_source.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">2.0.0</span>
25+
&#160;<span id="projectnumber">2.0.1</span>
2626
</div>
2727
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
2828
</td>

docs/html/BasicBrokers_8h.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<tr style="height: 56px;">
2323
<td id="projectalign" style="padding-left: 0.5em;">
2424
<div id="projectname">AceTime
25-
&#160;<span id="projectnumber">2.0.0</span>
25+
&#160;<span id="projectnumber">2.0.1</span>
2626
</div>
2727
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database.</div>
2828
</td>

0 commit comments

Comments
 (0)