Releases: nyx-space/hifitime
Releases · nyx-space/hifitime
4.3.0: Relativistic time scales (TCG/TCB), Lunar Time (TL+TCL), thorough formal verification
New Features
- Timeseries: expose first and last Epochs without consuming iterator by @gwbres in #465
- Implement TCG and TCB Support by @ChristopherRabotin in #480
- Implement Lunar Time and Lunar Coordinated Time (experimental scales) by @ChristopherRabotin in #482
Bug fixes
- Enable strptime parsing for compact strings without separators by @ChristopherRabotin in #464
- Fix
Duration::PartialEq/Ordinconsistency by removing zero-crossing special case by @feliperodri in #473 -- Importantly: in hifitime < 4.3.0, negative durations were reported as equal; 4.3.0 changes that behavior for formality reasons - fix: rewrite try_truncated_nanoseconds using total_nanoseconds() for correct boundary handling by @vmagueta in #476
Improvements / Formal verification
- Add Function Contracts to 19 Hifitime Functions by @feliperodri in #467
- Fix 4 bugs found by Kani function contract proofs by @feliperodri in #466
- Add contracts to 49 Epoch initializers and 3 Duration accessors by @feliperodri in #468
- Clean up Kani verification — resolve all warnings, failures, and compilation errors by @feliperodri in #474
- Resolve 20 timeout harnesses using
stub_verified, cvc5, and TAI Epoch construction by @feliperodri in #477 - Resolve timeout harnesses with contracts, loop invariants, and compositional verification by @feliperodri in #479
- 153 proofs passing, delete redundant harnesses, add Duration::approx proof by @feliperodri in #481
New Contributors
- @feliperodri made their first contribution in #467
- @vmagueta made their first contribution in #476
Full Changelog: 4.2.6...4.3.0
4.2.6: Fix Gregorian date calculations
What's Changed
- Update snafu requirement from 0.8.5 to 0.9.0 by @dependabot[bot] in #461
- Fix for days_in_year calculation in compute gregorian by @ephraim71 in #462
Thanks @ephraim71 for the fix!
Full Changelog: 4.2.5...4.2.6
4.2.5: Fix python type hints and export constants to Python
What's Changed
- Update pyo3 requirement from 0.27.0 to 0.28.0 by @dependabot[bot] in #457
- Updates to python type hints by @ChristopherRabotin in #458
- Export constants in Python bindings by @ChristopherRabotin in #460
Full Changelog: 4.2.4...4.2.5
4.2.4: Ephemeris Time convergence improvement; use core::Duration instead of std::Duration; fix polynomial constructors in Python
What's Changed
- feat: replace
std::time::Durationwithcore::time::Durationby @amodam-user in #440 - fix: bump snafu version for proper error semantics in no_std by @amodam-user in #442
- fix conflicting polynomial constructors by @ChristopherRabotin in #447
- Update CI pipeline by @Jazzinghen in #455
- Tighten tolerance for ET time scale reciprocity test by @ChristopherRabotin in #456
New Contributors
- @amodam-user made their first contribution in #440
Full Changelog: 4.2.3...4.2.4
4.2.3: Python usability improvements
New features
- Add Duration constructors in Python -- Jules PR by @google-labs-jules[bot] in #433
- Allow Epoch subtraction with Epoch and Duration by @google-labs-jules[bot] in #437
Dependencies
- Update pyo3 requirement from 0.26.0 to 0.27.0 by @dependabot[bot] in #431
Full Changelog: 4.2.2...4.2.3
4.2.2: Python support enhancements
What's Changed
- Fix conversion from Ephemeris Time to
datetimeby @J-Westin in #424 - Expose Ut1Provider to Python by @translunar in #429
- feat: Allow UTC-aware datetimes in
Epoch.fromdatetimeby @ChristopherRabotin in #430
New Contributors
- @translunar made their first contribution in #429
Full Changelog: 4.2.1...4.2.2
4.2.1: Duration constructor is now const-compatible
What's Changed
- Update pyo3 requirement from 0.25.0 to 0.26.0 by @dependabot[bot] in #420
- Make unit constructors for
Durationconst-compatible by @J-Westin in #423
New Contributors
Full Changelog: 4.2.0...4.2.1
4.2.0: Major Ut1Provider performance improvement
4.1.3: Improve datetime validity checks on initialization + no_std compile error fix
Improvements
- Re-enable pytest for aarch64, ppc64, armv7 and build wheels for aarch64, by @ephraim71 in #407
- to_gregorian: nanoseconds field is not documented by @gwbres in #412
Fixes
- Fix compile error for no std by @ephraim71 in #408
- Check max days in feb month during a leap year by @ephraim71 in #410
- Non-leap time scales error on init with leap second by @ChristopherRabotin in #411
- Version bump by @ChristopherRabotin in #413
Dependencies
This only affects testing, hence no news minor version number
- Update criterion requirement from 0.6.0 to 0.7.0 by @dependabot[bot] in #406
New Contributors
- @ephraim71 made their first contribution in #408
Full Changelog: 4.1.2...4.1.3
4.1.2: Add long term support of leap seconds; export `with_hms` and other time setters to Python
What's Changed
- Pull request for issue #397 by @google-labs-jules in #398
- Add int conversion methods for MonthName in Python by @ChristopherRabotin in #401
- Add day_of_month and to_gregorian in Python and py type fixes by @ChristopherRabotin in #402
- Fix Python type hints in Rustdoc comments by @ChristopherRabotin in #403
- Add lts crate feature to download IANA leap second list by @ChristopherRabotin in #404
New Contributors
- @google-labs-jules made their first contribution in #398
Full Changelog: 4.1.1...4.1.2