Skip to content

Release v0.4.0 - #25

Merged
8beeeaaat merged 3 commits into
mainfrom
release/v0.4.0
Jul 7, 2026
Merged

Release v0.4.0#25
8beeeaaat merged 3 commits into
mainfrom
release/v0.4.0

Conversation

@8beeeaaat

@8beeeaaat 8beeeaaat commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Summary

Prepare the v0.4.0 release: add the CHANGELOG entry covering all changes since v0.3.1, rebased on the latest origin/main.

Changes since v0.3.1

  • PR fix: treat Z/-00:00 as unknown local offset per RFC 9557 (#22) #23 — treat Z/-00:00 as unknown local offset per RFC 9557 Section 2.2 (Misinterpretation of Z in RFC9557 #22)
  • PR fix: accept critical "!" flag on time-zone annotations per RFC 9557 #24 — accept the critical ! flag on time-zone annotations, reject duplicate time-zone annotations, accept offset-derived zones in consistency/strict checks, stop skipping the Etc/GMT consistency check, and reject CriticalLocation without an attachable zone
  • PR fix: resolve RFC 9557 compliance findings from expert review #26 — resolve RFC 9557 compliance findings from the pre-release expert review:
    • Format emits offset annotations as [+09:00] (RFC grammar) instead of [+0900], making Parse -> Format -> Parse round trips lossless
    • Duplicate suffix keys are rejected with ErrCriticalExtension when either occurrence is critical (Section 3.3)
    • Strict mode rejects unknown critical suffix keys other than u-ca
    • A second time-zone annotation is rejected even after an ignored unknown zone; a time-zone annotation after a suffix tag violates the grammar ordering and returns ErrInvalidSuffix
    • Format/FormatNano apply CriticalLocation to the timestamp's own zone when Location is unset
    • ParseError implements Unwrap, so sentinel errors match with errors.Is
  • PR refactor IXDTF implementation by concern #27 / main-3 — refactor the IXDTF implementation from a monolithic file into focused modules for parsing, formatting, suffix handling, timezone resolution, validation, calendar tags, extensions, and errors, with expanded targeted tests
  • Dependabot CI bumps: actions/checkout v7, actions/cache v6, codecov-action v7

Version rationale

Minor bump (0.3.1 -> 0.4.0): the fixes change accept/reject behavior for several inputs, and the public API gains IXDTFExtensions.CriticalLocation and ParseError.Unwrap. The PR #27 refactor preserves the public API while reorganizing implementation internals.

Release steps after merge

git checkout main && git pull
git tag v0.4.0
git push origin v0.4.0

The Release workflow then runs tests and publishes the GitHub Release automatically.

Verification

  • go test ./... passes on the rebased release/v0.4.0 branch

@codecov

codecov Bot commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.56%. Comparing base (617dfda) to head (73a7e43).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #25   +/-   ##
=======================================
  Coverage   97.56%   97.56%           
=======================================
  Files           8        8           
  Lines         329      329           
=======================================
  Hits          321      321           
  Misses          4        4           
  Partials        4        4           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

8beeeaaat and others added 2 commits July 7, 2026 21:41
Summarize the RFC 9557 compliance fixes since v0.3.1: critical
time-zone flag support (PR #24), Z/-00:00 unknown local offset
handling (PR #23), and the dependabot CI bumps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@8beeeaaat 8beeeaaat self-assigned this Jul 7, 2026
@8beeeaaat
8beeeaaat merged commit 21d26c9 into main Jul 7, 2026
8 checks passed
@8beeeaaat
8beeeaaat deleted the release/v0.4.0 branch July 7, 2026 12:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant