Releases: nyx-space/hifitime
4.0.0-alpha: Hifitime rewrite
Version 4.0.0-alpha
The main change in this refactoring is that Epoch
s now keep the time in their own time scales. This greatly simplifies conversion between time scales, and ensures that all computations happen in the same time scale as the initialization time scale, then no sub-nanosecond rounding error could be introduced.
What's Changed
- 4.0.0 dev gh 237 by @gwbres in #289
- Refactor epoch to keep time in its own time scale by @gwbres and @ChristopherRabotin in #280
- Removed der dependency by @ChristopherRabotin in #297
- Refactor epochrs as a module by @ChristopherRabotin in #298
- Duration serde now human readable + Display of Epoch is now Gregorian in its initialization time scale by @ChristopherRabotin in #299
- Improve error handling by @ChristopherRabotin in #300
- Support exceptions in Python by @ChristopherRabotin in #301
- Fix conversion to Gregorian by @ChristopherRabotin in #303
- Add Python regression test for #249 by @ChristopherRabotin in #305
- Breaking change: renamed Julian date constants and removed other Julian date constants by @ChristopherRabotin in #307
- Fix bug in
to_gregorian_str
by @ChristopherRabotin in #308 - Update pyo3 requirement from 0.21.1 to 0.22.0 by @dependabot in #309
- Revert "Update pyo3 requirement from 0.21.1 to 0.22.0" by @ChristopherRabotin in #310
Full Changelog: 3.10.0...4.0.0-alpha
4.0.0-dev0: Add QZSS time scale -- possibly a breaking change (essentially 3.10.0)
What's next?
This is probably the last release of version 3.x. There's a fair amount of small bugs here and there in 3.x, and these aren't trivial to fix. The architecture changes introduced by @gwbres and I for the development of 4.x should fix all of those in one go.
Also, version 4.0 will likely switch to the Mozilla Public License from Apache 2: if you have concerns about this, please head over to #274 to voice them. From the user point of view, there should be absolutely no change, even if you're selling code that uses an unmodified version of Hifitime.
Naming error
This release is published as 4.0.0-dev
on crates.io and 4.0.0.dev0
on PyPi. This was a mistake. It should have been 3.10.0
. That's probably for the better though since it introduces one breaking change. Version 4.0.0 will introduce several breaking changes and a new architecture.
What's Changed
- support qzss time scale by @gwbres in #228
- Update 4.0.0-dev to latest master by @ChristopherRabotin in #243
- Integrate 3.8.6 into 4.0.0-dev by @ChristopherRabotin in #264
- BREAKING CHANGE: 4.0.0-dev branch become 3.10.0 by @ChristopherRabotin in #277
- Draft: replace std::time:SystemTime with web_time::SystemTime by @karpfediem in #279
- Update reqwest requirement from 0.11 to 0.12 by @dependabot in #286
- Fix panic caused by arithmetic overflow by @cardigan1008 in #283
- Fix panic caused by array out of bounds by @cardigan1008 in #284
- Fix panic caused by unwrap by @cardigan1008 in #285
New Contributors
- @karpfediem made their first contribution in #279
- @cardigan1008 made their first contribution in #283
Full Changelog: 3.9.0...3.10.0
Version 3.9.0: Add short year formatter and fix year of day computation
What's Changed
- Relax UNIX test + release 3.8.6 by @ChristopherRabotin in #266
- Introduce %y formatter by @gwbres in #268
- Update tabled requirement from 0.14.0 to 0.15.0 by @dependabot in #269
- Update der requirement from 0.6.1 to 0.7.8 by @dependabot in #252
- [Maybe breaking change] Fix day of year computation by @ChristopherRabotin in #273
- docs(fix): fixed reversed description of duration magnitude by @ethanmsl in #271
New Contributors
Full Changelog: 3.8.6...3.9.0
Version 3.8.6: Add support for WASM targets
What's Changed
- Adds support for using hifitime in WASM targets by @thomasantony in #262
New Contributors
- @thomasantony made their first contribution in #262
Full Changelog: 3.8.5...3.8.6
Version 3.8.5: Update pyo3 and bump MSRV to 1.70
What's Changed
- Update pyo3 requirement from 0.19.0 to 0.20.0 by @dependabot in #259
Full Changelog: 3.8.4...3.8.5
Version 3.8.3: Fix incorrect hour/minute/second when initializing from days in year
What's Changed
- Day of year formatting now parses elapsed time by @ChristopherRabotin in #253
Full Changelog: 3.8.3...3.8.4
Notice for 3.x
With a bit of luck, this will be the last release of 3.x as version 4 makes its way to production. Version 4 will bring more consistency in time scale handling by not converting everything to TAI, but using the initialization time scale whenever possible. Follow the progress on https://github.com/nyx-space/hifitime/milestone/14 and don't hesitate to propose features or contribute. Thanks
Version 3.8.3: Update pyo3 and tabled
What's Changed
- Update pyo3 requirement from 0.18.1 to 0.19.0 by @dependabot in #242
- Update tabled requirement from 0.12.0 to 0.14.0 by @dependabot in #251
Full Changelog: 3.8.2...3.8.3
Version 3.8.2: Various enhancements and readme
What's Changed
- Add example for #202 by @ChristopherRabotin in #207
- Update tabled requirement from 0.10.0 to 0.11.1 by @dependabot in #219
- Export epoch formatters to Python by @ChristopherRabotin in #220
- Switch from staticmethod to classmethod by @ChristopherRabotin in #222
- Add action summary for benchmark by @ChristopherRabotin in #223
- Update tabled requirement from 0.11.1 to 0.12.0 by @dependabot in #225
- Cleanup README and fix Gregorian print bug < 1900 by @ChristopherRabotin in #233
- Update criterion requirement from 0.4.0 to 0.5.1 by @dependabot in #236
- fix december for MonthName from u8 by @Massou31 in #235
New Contributors
Full Changelog: 3.8.1...3.8.2
Version 3.8.0: Const formatting options, human time support, UT1 support, thorough formal verification
Thanks again to @gwbres for his work in this release!
- Fix CI of the formal verification and upload artifacts, cf. #179
- Introduce time of week construction and conversion by @gwbres, cf.#180 and #188
- Fix minor typo in
src/timeunits.rs
by @gwbres, cf. #189 - Significantly extend formal verification of
Duration
andEpoch
, and introducekani::Arbitrary
toDuration
andEpoch
for users to formally verify their use of time, cf. #192 - It is now possible to specify a Leap Seconds file (in IERS format) using the
LeapSecondsFile::from_path
(requires thestd
feature to read the file), cf. #43. - UT1 time scale is now supported! You must build a
Ut1Provider
structure with data from the JPL Earth Orientation Parameters, or just useUt1Provider::download_short_from_jpl()
to automatically download the data from NASA JPL. strptime
andstrftime
equivalents from C89 are now supported, cf. #181. Please refer to the documentation for important limitations and how to build a custom formatter.- ISO Day of Year and Day In Year are now supported for initialization of an Epoch (provided a time scale and a year), and formatting, cf. #182.
- Python: the representation of an epoch is now in the time scale it was initialized in
What's Changed
- Fix formal verification by @ChristopherRabotin in #179
- timeofweek: introduce time of week construction and conversion by @gwbres in #180
- src/timeunits.rs: fix minor typo by @gwbres in #189
- src/epoch.rs: fix gh 187 by @gwbres in #188
- Extend formal verification by @ChristopherRabotin in #192
- Support strftime and strptime equivalent for formatting and parsing by @ChristopherRabotin in #190
- Add support for LeapSecondsFile and UT1 by @ChristopherRabotin in #194
Full Changelog: 3.7.0...3.8.0
Version 3.7.0: Numerous usability enhancements
What's Changed
- timescale.rs: derive serdes traits when feasible by @gwbres in #167
- timecale.rs: introduce format/display by @gwbres in #168
- readme: fix BeiDou typo by @gwbres in #169
- epoch: derive Hash by @gwbres in #170
- timescale: identify GNSS timescales from standard 3 letter codes by @gwbres in #171
- timescale: standard formatting is now available by @gwbres in #174
- epoch, duration: improve and fix serdes feature by @gwbres in #175
- epoch, timescale: implement default trait by @gwbres in #176
Full Changelog: 3.6.0...3.7.0