All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.3.0 - 2026-07-03
- enhance date validation and normalization functions
- Refactor error taxonomy (#27)
- clarify lunar date ordering behavior in comments
- add self-standing invariant tests for lunar-lite functionality
- update comments and clarify behavior
1.2.1 - 2026-06-29
- remove tests from crate inclusion (#23)
1.2.0 - 2026-06-29
- expose exact LiChun datetime (#21)
1.1.0 - 2026-06-28
- add broad tyme4rs oracle compatibility suite (#20)
- Replaced the generated lunar-year and solar-term conversion tables with a
tyme-compatible astronomical backend. Conversion results may differ from the
previous
lunar-typescripttable-derived backend. - Solar date validation now follows tyme-compatible Julian/Gregorian reform
semantics: solar years
1..=9999, Julian-calendar semantics before1582-10-15, and the invalid Gregorian reform gap1582-10-05..=1582-10-14. - Full lunar-to-solar conversion now requires the resulting solar date to fall
within solar years
1..=9999. Lunar-month fact APIs still accept lunar years-1..=9999.
- Replaced generated lunar-year and solar-term conversion tables with a small
internal astronomical backend for new-moon and solar-term calculation, with
tyme4rs-compatible calendar behaviour. Portions of the kernel are adapted from
MIT-licensed
6tail/tyme4rs; seeTHIRD_PARTY_LICENSES.md. - Conversion support now follows tyme-compatible policy: solar years
1..=9999, Julian-calendar semantics before1582-10-15, and the invalid Gregorian reform gap1582-10-05..=1582-10-14. - The astronomical kernel's raw data now lives as reviewable source files under
data/astronomical/and is compiled into typed constants bybuild.rsat build time. No runtime file I/O or parsing is added, public API and numerical behaviour are unchanged, and the data files are shipped in the crate package so the build works from crates.io.
- Four-pillar exact-mode instants are built on the Julian Day so user dates and
Jie solar-term boundaries share one Julian/Gregorian calendar policy; pre-reform
Julian leap days (e.g.
1500-02-29) no longer collapse onto the next day. - Lunar-month facts (
leap_month,lunar_month_days) now resolve for the lowest supported lunar year-1instead of failing on an out-of-range previous-year lookup. Full lunar-to-solar conversion still requires the resulting solar date to fall in1..=9999.
THIRD_PARTY_LICENSES.mdreproducing the upstream MIT notice for the adapted astronomical kernel, included in crate packaging.
1.0.0 - 2026-06-12
- expand design overview
0.3.2 - 2026-06-12
- add missing badges for Crates.io version and downloads in README.md (#10)
0.3.1 - 2026-06-12
- correct crates.io badge URL for downloads (#9)