Bug Fixes
-
reject ambiguous bare numeric dates
parse("20080214", None)silently returned epoch seconds in 1970 because
any signed integer was accepted before the flexible date parser. Apply
Git's100000000floor to bare timestamps so compact-date lookalikes,
zero, and negative numbers do not silently become epoch seconds. Explicit
@timestamps and raw commit-header dates retain their existing behavior.
Update the documented examples and their existing acceptance tests.Extend the existing Git baseline with six rejected bare numbers and three
explicit raw timestamps. Generate fixed-date samples through
GIT_AUTHOR_DATEandgit var GIT_AUTHOR_IDENT: the previous expiry-date
parser could fall back to approximate dates and conceal these errors.
The regenerated archive preserves all 128 existing baseline samples.
The regression failed on20080214before the parser change.Git reference:
date.c::match_digit()reserves numbers below100000000
for date components;t/t0006-date.shcovers the threshold and explicit
@0 +0000. Baselines were generated with Git 2.50.1 (Apple Git-155). -
reject a timezone offset git would not read
parse()took its offset fromjiff, which reads up to±25:59:59. Git's
match_tz()indate.creads the four digits as a clock time, so hours must
be under 24 and minutes under 60, and+2400is not a timezone to it at all —
it falls back to the local one. Recorded from git 2.50.1:input git parse()before2022-01-01 12:00:00 +2359+2359+23592022-01-01 12:00:00 +2400local offset +24002022-01-01 12:00:00 +2559local offset +2559The accepted value could not be written back and read again, either:
parse("2022-01-01 12:00:00 +2400")serializes to1640952000 +2400, which
parse()then rejects, sinceparse_raw()allows no offset past±14:00.parse_header()is untouched, so commits carrying a wild offset — like
1516956202 -3407in edk2, the reproduction in #2091 — still read as before.
Changed (BREAKING)
-
raise MSRV to Rust 1.88
The newly published
dua-core3.3 release used by linked-worktree removal
requires Rust 1.88, so raise every workspace crate and the advertised badge
together.Keep the MSRV checks buildable by selecting the latest
sysinfoandrusqlite
release lines that support Rust 1.88.
Commit Statistics
- 12 commits contributed to the release over the course of 33 calendar days.
- 34 days passed between releases.
- 3 commits were understood as conventional.
- 1 unique issue was worked on: #3001
Commit Details
view details
- #3001
- Reject ambiguous bare numeric dates (7c90c2b)
- Uncategorized
- Merge pull request #2847 from GitoxideLabs/gix-error-completion (6356013)
- Merge pull request #3002 from GitoxideLabs/fix-8bit-date (2abc090)
- Merge pull request #2994 from rawsun007/fix-date-offset-range (37149b8)
- Review (ba936dc)
- Reject a timezone offset git would not read (2f63256)
- Merge pull request #2985 from youdie006/fix-short-time-offset-split (4ec7c08)
- Review (a118bb4)
- Accept a timezone offset after a short compact ISO8601 time (81d23b5)
- Merge pull request #2949 from GitoxideLabs/error-conversion-review (a095334)
- Raise MSRV to Rust 1.88 (4b42e0c)
- Merge pull request #2933 from GitoxideLabs/report-august (b8914ff)