Skip to content

Commit 3720cc5

Browse files
authored
Merge pull request #69 from bxparks/develop
merge v1.7.4 into master
2 parents 0fab5b8 + 1535c76 commit 3720cc5

File tree

455 files changed

+443
-51870
lines changed

Some content is hidden

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

455 files changed

+443
-51870
lines changed

.github/workflows/python_tools.yml

Lines changed: 0 additions & 44 deletions
This file was deleted.

.github/workflows/validation.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,17 @@ jobs:
2323
- name: Checkout AceTime
2424
uses: actions/checkout@v2
2525

26-
- name: Checkout 3rd Party Repos
26+
- name: Checkout Additional Repos
2727
run: |
2828
cd ..
2929
git clone https://github.com/bxparks/EpoxyDuino
3030
git clone https://github.com/bxparks/AUnit
3131
git clone https://github.com/bxparks/AceCommon
32+
git clone https://github.com/bxparks/AceTimeTools
33+
git clone https://github.com/bxparks/AceTimeValidation
3234
git clone https://github.com/eggert/tz
3335
git clone https://github.com/HowardHinnant/date
3436
35-
- name: Install libcurl4-openssl-dev
36-
run: |
37-
sudo apt update
38-
sudo apt install -y libcurl4-openssl-dev
39-
4037
- name: Set up Python 3.7
4138
uses: actions/setup-python@v1
4239
with:
@@ -48,12 +45,16 @@ jobs:
4845
- name: Install Python Dependencies
4946
run: |
5047
python -m pip install --upgrade pip
51-
pip install -r tools/requirements.txt
48+
pip install -r ../AceTimeTools/requirements.txt
49+
50+
- name: Install libcurl4-openssl-dev
51+
run: |
52+
sudo apt update
53+
sudo apt install -y libcurl4-openssl-dev
5254
5355
- name: Build compare_cpp
5456
run: |
55-
cd tools/compare_cpp
56-
make
57+
make -C ../AceTimeTools/compare_cpp
5758
5859
# Run just BasicHinnantDateTest and ExtendedHinnantDateTest. When a new
5960
# TZDB version comes out, the Python pytz, dateutil, and Java validation
@@ -62,10 +63,12 @@ jobs:
6263

6364
- name: BasicHinnantDateTest
6465
run: |
65-
make -C tests/validation/BasicHinnantDateTest
66-
make -C tests/validation/BasicHinnantDateTest runtests
66+
cd ../AceTimeValidation
67+
make -C BasicHinnantDateTest
68+
make -C BasicHinnantDateTest runtests
6769
6870
- name: ExtendedHinnantDateTest
6971
run: |
70-
make -C tests/validation/ExtendedHinnantDateTest
71-
make -C tests/validation/ExtendedHinnantDateTest runtests
72+
cd ../AceTimeValidation
73+
make -C ExtendedHinnantDateTest
74+
make -C ExtendedHinnantDateTest runtests

CHANGELOG.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
# Changelog
22

33
* Unreleased
4+
* 1.7.4 (2021-08-26)
5+
* Move `./tools` directory into new
6+
[AceTimeTool](https://github.com/bxparks/AceTimeTools) repo.
7+
* Move `./tests/validation` directory into new
8+
[AceTimeValidation](https://github.com/bxparks/AceTimeValidation) repo.
9+
* Update `.github/workflows/validation.yml` to use AceTimeValidation
10+
instead of `./tests/validation`.
11+
* This is a maintenance release. No changes to the core library code.
412
* 1.7.3 (2021-08-25)
513
* Fix numerous broken links in documents moved to `docs/*.md` in an earlier
614
refactoring.
@@ -34,7 +42,7 @@
3442
* Use that for general questions and discussions.
3543
* Reserve [GitHub Issues](https://github.com/bxparks/AceTime/issues)
3644
for bugs and feature requests.
37-
* Add `tools/compare_noda` to compare Noda Time against AceTime.
45+
* Add `AceTimeTools/compare_noda` to compare Noda Time against AceTime.
3846
* Add `--nzd_file` flag to `compare_noda` to allow custom NodaZoneData
3947
files.
4048
* Run the Noda Time `TzdbCompiler` manually to generate custom

DEVELOPER.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -238,10 +238,11 @@ available.
238238
should be a sibling to the `AceTime` repo:
239239
* `$ cd ../date`
240240
* `$ git pull`
241-
* Verify that `AceTime` and Hinnant `date` agree with each other using the
242-
same TZDB version.
241+
* Verify that the `AceTime` library and the Hinnant `date` library agree with
242+
each other using the same TZDB version. This requires going into the
243+
[AceTimeValidation](https://github.com/bxparks/AceTimeValidation) project.
243244
* BasicHinnantDateTest
244-
* `$ cd tests/validation/BasicHinnantDateTest`
245+
* `$ cd .../AceTimeValidation/BasicHinnantDateTest`
245246
* Update the `TZ_VERSION` variable in the `Makefile` with the commit tag
246247
of the new TZDB version. (e.g. `TZ_VERSION = 2020c`).
247248
* `$ make clean`
@@ -250,7 +251,7 @@ available.
250251
* There should be no failures: `TestRunner summary: 268 passed, 0
251252
failed, 0 skipped, 0 timed out, out of 268 test(s).`
252253
* ExtendedHinnantDateTest
253-
* `$ cd tests/validation/ExtendedHinnantDateTest`
254+
* `$ cd .../AceTimeValidation/ExtendedHinnantDateTest`
254255
* Update the `TZ_VERSION` variable in the `Makefile` with the commit tag
255256
of the new TZDB version. (e.g. `TZ_VERSION = 2020c`).
256257
* `$ make clean`
@@ -267,21 +268,21 @@ available.
267268
* `$ cd src/ace_time/zonedbx`
268269
* Edit the `Makefile` and update the `TZ_VERSION`.
269270
* `$ make`
270-
* `tools/zonedbpy`
271-
* `$ cd tools/zonedbpy`
271+
* `AceTimeTools/zonedbpy`
272+
* `$ cd AceTimeTools/zonedbpy`
272273
* Edit the `Makefile` and update the `TZ_VERSION`.
273274
* `$ make`
274275
* Update the CHANGELOG.md.
275276
* Commit the changes to git
276277
* `$ git add ...`
277278
* `$ git commit -m "..."`
278279

279-
There are 6 other validation tests in `tests/validation` that compare AceTime
280-
with other 3rd party librarties (Python pytz, Python dateutil, and Java date).
281-
Unfortunately, they all seem to use the underlying TZDB version provided by the
282-
Operating System, and I have not been able to figure out how to manually update
283-
this dependency manually. When a new TZDB is released, all of these other tests
284-
will fail until the underying timezone database of the OS is updated.
280+
There are 6 other validation tests in the AceTimeValidation project that compare
281+
AceTime with other third party libraries (Python pytz, Python dateutil, and Java
282+
date). Unfortunately, they all seem to use the underlying TZDB version provided
283+
by the Operating System, and I have not been able to figure out how to manually
284+
update this dependency manually. When a new TZDB is released, all of these other
285+
tests will fail until the underlying timezone database of the OS is updated.
285286

286287
## Release Process
287288

@@ -291,7 +292,6 @@ will fail until the underying timezone database of the OS is updated.
291292
* `docs/date_time_timezone.md`
292293
* `docs/clock_system_clock.md`
293294
* `docs/installation.md`
294-
* `docs/validation.md`
295295
* ...
296296
* `docs/doxygen.cfg`
297297
* `library.properties`

README.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# AceTime
22

33
[![AUnit Tests](https://github.com/bxparks/AceTime/actions/workflows/aunit_tests.yml/badge.svg)](https://github.com/bxparks/AceTime/actions/workflows/aunit_tests.yml)
4-
[![Python Tools](https://github.com/bxparks/AceTime/actions/workflows/python_tools.yml/badge.svg)](https://github.com/bxparks/AceTime/actions/workflows/python_tools.yml)
54
[![Validation Tests](https://github.com/bxparks/AceTime/actions/workflows/validation.yml/badge.svg)](https://github.com/bxparks/AceTime/actions/workflows/validation.yml)
65

76
The AceTime library provides Date, Time, and TimeZone classes which can convert
@@ -35,15 +34,10 @@ This library can be an alternative to the Arduino Time
3534
(https://github.com/PaulStoffregen/Time) and Arduino Timezone
3635
(https://github.com/JChristensen/Timezone) libraries.
3736

38-
**Version**: 1.7.3 (2021-08-25, TZ DB version 2021a)
37+
**Version**: 1.7.4 (2021-08-26, TZ DB version 2021a)
3938

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

42-
**IMPORTANT CHANGE for v1.2**: This library now depends on the the "AceCommon"
43-
library for some of its low-level routines. See the
44-
[docs/installation.md](docs/installation.md) for
45-
installation instructions.
46-
4741
## Table of Contents
4842

4943
* [Overview](#Overview)
@@ -279,7 +273,7 @@ The creation of a TimeZone from its zoneName or its zoneId using a
279273
### Validation
280274

281275
The details of how the Date, Time and TimeZone classes are validated are given
282-
in [docs/validation.md](docs/validation.md).
276+
in [AceTimeValidation](https://github.com/bxparks/AceTimeValidation).
283277

284278
The ZoneInfo Database and the algorithms in this library have been validated to
285279
match the UTC offsets calculated using 5 other date/time libraries written in
@@ -607,15 +601,15 @@ The following boards are *not* supported:
607601
* megaAVR (e.g. Nano Every)
608602
* SAMD21 boards w/ `arduino:samd` version >= 1.8.10 (e.g. MKRZero)
609603
* MKRZero
610-
* Raspberry Pi Pic RP2040
604+
* Raspberry Pi Pico RP2040
611605

612606
<a name="ToolChain"></a>
613607
### Tool Chain
614608

615609
This library was developed and tested using:
616610

617611
* [Arduino IDE 1.8.13](https://www.arduino.cc/en/Main/Software)
618-
* [Arduino CLI 0.14.0](https://arduino.github.io/arduino-cli)
612+
* [Arduino CLI 0.15.2](https://arduino.github.io/arduino-cli)
619613
* [SpenceKonde ATTinyCore 1.5.2](https://github.com/SpenceKonde/ATTinyCore)
620614
* [Arduino AVR Boards 1.8.3](https://github.com/arduino/ArduinoCore-avr)
621615
* [Arduino SAMD Boards 1.8.9](https://github.com/arduino/ArduinoCore-samd)
@@ -627,9 +621,12 @@ This library was developed and tested using:
627621
* [Teensydino 1.53](https://www.pjrc.com/teensy/td_download.html)
628622

629623
This library is *not* compatible with:
630-
* [Arduino megaAVR](https://github.com/arduino/ArduinoCore-megaavr/)
631-
* [MegaCoreX](https://github.com/MCUdude/MegaCoreX)
632-
* [Arduino SAMD Boards >=1.8.10](https://github.com/arduino/ArduinoCore-samd)
624+
625+
* Any platform using the
626+
[ArduinoCore-API](https://github.com/arduino/ArduinoCore-api), for example:
627+
* [Arduino megaAVR](https://github.com/arduino/ArduinoCore-megaavr/)
628+
* [MegaCoreX](https://github.com/MCUdude/MegaCoreX)
629+
* [Arduino SAMD Boards >=1.8.10](https://github.com/arduino/ArduinoCore-samd)
633630

634631
It should work with [PlatformIO](https://platformio.org/) but I have
635632
not tested it.

docs/clock_system_clock.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sense for these classes to be in a separate library because the other parts of
1212
AceTime library are not dependent of the Clock classes. But for now, these
1313
classes live within the AceTime library.
1414

15-
**Version**: 1.7.3 (2021-08-25, TZ DB version 2021a)
15+
**Version**: 1.7.4 (2021-08-26, TZ DB version 2021a)
1616

1717
## Table of Contents
1818

docs/comparisons.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ based upon the `<chrono>` standard library and consists of several libraries of
122122
which `date.h` and `tz.h` are comparable to AceTime. Modified versions of these
123123
libraries were voted into the C++20 standard.
124124

125-
Unfortunately these libaries are not suitable for an Arduino microcontroller
125+
Unfortunately these libraries are not suitable for an Arduino microcontroller
126126
environment because:
127127

128128
* The libraries depend extensively on 64-bit integers which are
@@ -141,14 +141,14 @@ environment because:
141141
library.
142142

143143
The Hinnant date libraries were invaluable for writing the
144-
[BasicHinnantDateTest](../tests/validation/BasicHinnantDateTest/)
144+
[BasicHinnantDateTest](https://github.com/bxparks/AceTimeValidation/tree/master/BasicHinnantDateTest)
145145
and
146-
[ExtendedHinnantDateTest](../tests/validation/ExtendedHinnantDateTest/)
146+
[ExtendedHinnantDateTest](https://github.com/bxparks/AceTimeValidation/tree/master/ExtendedHinnantDateTest)
147147
validation tests which compare the AceTime algorithms to the Hinnant Date
148148
algorithms. For all times zones between the years 2000 until 2050, the AceTime
149149
UTC offsets (`TimeZone::getUtcOffset()`), timezone abbreviations
150150
(`TimeZone::getAbbrev()`), and epochSecond conversion to date components
151-
(`ZonedDateTime::fromEpochSeconds()`) match the results from the Hinannt Date
151+
(`ZonedDateTime::fromEpochSeconds()`) match the results from the Hinnant Date
152152
libraries.
153153

154154
<a name="Cctz"></a>

docs/date_time_timezone.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ following namespaces:
1212
`ExtendedZoneManager`
1313
* `ace_time::internal`: not normally needed by app developers
1414

15-
**Version**: 1.7.3 (2021-08-25, TZ DB version 2021a)
15+
**Version**: 1.7.4 (2021-08-26, TZ DB version 2021a)
1616

1717
## Table of Contents
1818

@@ -2053,7 +2053,7 @@ C++ code representing these custom zone registries from a list of zones.)
20532053
(**TBD**: It might also be useful for app developers to create custom datasets
20542054
with different range of years. The tools are all here, but not explicitly
20552055
documented currently. Examples of how to this do exist inside the various
2056-
`Makefile` files in the `tests/validation/` directory.)
2056+
`Makefile` files in the AceTimeValidation project.)
20572057
20582058
<a name="PrintToString"></a>
20592059
## Print To String

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 = 1.7.3
41+
PROJECT_NUMBER = 1.7.4
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">1.7.3</span>
25+
&#160;<span id="projectnumber">1.7.4</span>
2626
</div>
2727
<div id="projectbrief">Date and time classes for Arduino that support timezones from the TZ Database, and a system clock that can synchronize from an NTP server or an RTC chip.</div>
2828
</td>
@@ -141,8 +141,8 @@
141141
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
142142
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
143143
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// Version format: xxyyzz == &quot;xx.yy.zz&quot;</span></div>
144-
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 10703</span></div>
145-
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;1.7.3&quot;</span></div>
144+
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION 10704</span></div>
145+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor">#define ACE_TIME_VERSION_STRING &quot;1.7.4&quot;</span></div>
146146
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
147147
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#endif</span></div>
148148
</div><!-- fragment --></div><!-- contents -->

0 commit comments

Comments
 (0)