Releases: faustbrian/go-money
Releases · faustbrian/go-money
Release list
github.com/faustbrian/go-money v1.0.0
1.0.0 - 2026-08-25
Changed
-
Exclude intentional nested modules from root local-proxy archives so local,
bootstrap, CI, and public module checksums describe the same source
boundary. -
Track the pinned documentation-tool lockfile so clean CI checkouts install
the exact validated cspell dependency. -
Reconcile standalone dependency checksums against deterministic current
module archives so CI, local verification, and release consumers resolve
identical content. -
Harden standalone documentation validation with deterministic spelling and
link checks, package-specific documentation gates, and repository-local
contributor guidance.
Documentation
- Link the package README to the repository-wide Golib documentation portal.
Fixed
- Fixed-context parsing now returns a bounded arithmetic error instead of
panicking when scale alignment would exceed the maximum amount digits.
Changed
- Publish the module from its standalone
github.com/faustbrian/go-moneyidentity while preserving its documented API and behavior. - Refresh local
v0.0.0owned-module checksums after dependency manifests and
release notes were normalized; runtime behavior and public APIs are
unchanged. - Require exact 100% mutant coverage in the package mutation command while
retaining the package's explicit behavioral mutants. - Reuse the repository-provided API compatibility tool during isolated checks
so mutable local dependency archives never conflict with source checksums. - Pin unpublished owned modules to exact resolvable revisions so clean
consumers no longer depend on nonexistentv0.1.0tags. - Refresh owned-module checksums against the final consolidated archives.
- Normalized standalone module metadata against the canonical owned dependency
graph, including complete checksums for clean consumer resolution. - Replaced coverage-only defensive exclusions with tested internal invariant
assertions, while retaining returned errors for every caller-reachable
invalid input and arithmetic failure. - Validate the complete pinned currency dataset against the supported money
scale instead of carrying an unreachable per-call scale branch. - Make encoding invariants and CLDR fallback parsing directly testable while
preserving strict duplicate-key, delimiter, and formatted-output bounds. - Removed the annotation-based defensive-statement coverage exclusion and
require exact deduplicated coverage for every production package.
Added
- Caller-defined exact maximum magnitudes for rates while preserving the
generic one-million default. - Immutable exact
Money,Amount,RationalMoney,MoneyBag, rate, ratio,
context, allocation, tax, discount, conversion, and result values. - ISO default, custom, cash, and safe automatic precision contexts.
- Deterministic equal and weighted allocation with signed conservation.
- Explicit tax, discount, cash-rounding, and attributed FX boundaries.
- Locale formatting, versioned JSON/text/SQL persistence, PostgreSQL numeric
support, and reusablemoneytestlaws. - Property, exhaustive currency, fuzz, race, mutation, coverage, benchmark, and
compatibility gates.
Release integrity
- Source commit:
944bf67b572e5ba27ae5afda03b3533a21865e26 - Exact-head CI: https://github.com/faustbrian/go-money/actions/runs/32916458948
- Release dry-run: urn:sha256:217ac2092f4c85c80d330185648699fc61e1d206145dc5067b4711f39ba65492
- Assets include a CycloneDX SBOM, SLSA v1 in-toto provenance, and SSH-signed checksums.
Verify the checksum attestation with:
ssh-keygen -Y verify -f ALLOWED_SIGNERS -I brian@cline.sh -n golib-release -s SHA256SUMS.sig < SHA256SUMS