From 65b751950c571b6d03229fc15f04ee6932b2a564 Mon Sep 17 00:00:00 2001 From: wshallwshall Date: Mon, 27 Jul 2026 11:57:36 -0500 Subject: [PATCH] release: 0.3.1 Bumps the single-sourced version and cuts the CHANGELOG's Unreleased section into a dated 0.3.1 release. `messagefoundry/__init__.py` is the only version to edit -- packaging/messagefoundry-harness reads it via `[tool.hatch.version] path = "../../messagefoundry/__init__.py"`, so both wheels ship matched, which the release workflow then asserts against the tag. Also repairs the CHANGELOG's compare links, which the 0.3.0 release never updated: `[Unreleased]` still pointed at v0.2.10 and there was no `[0.3.0]` definition at all, so five versions of "what changed in this release" rendered as dead links. Added 0.3.1 down to 0.2.11. Other files matching "0.3.0" were checked and deliberately left alone -- they are synthetic fixtures and comment examples (tests/test_sbom_finalize.py's inline __version__ string, test_update_check.py's comparator cases, a docstring in pipeline/update_check.py), not the shipped version. NOTE for the tag: v0.3.1 must be cut from a commit that already contains the release.yml fix (#12). Before it, every tag push dies at the README slug-rewrite step -- which is exactly what happened to v0.3.0 on 2026-07-13. --- CHANGELOG.md | 11 ++++++++++- messagefoundry/__init__.py | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c58ebea..910332c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ All notable changes to MessageFoundry are documented here. The format follows ## [Unreleased] +## [0.3.1] — 2026-07-27 — Early Access + ### Security - **BREAKING — multi-factor authentication is now an ACCESS gate, not only a step-up gate** (ASVS 6.3.3). An MFA-pending session is refused on **every** authorized route with `403` + @@ -954,7 +956,14 @@ tests, but the external code review + penetration test (the bar for a security-c - Releases are built, SBOM'd (CycloneDX), and signed with [Sigstore](https://www.sigstore.dev/) — see the `release` workflow. -[Unreleased]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.10...HEAD +[Unreleased]: https://github.com/MEFORORG/MessageFoundry/compare/v0.3.1...HEAD +[0.3.1]: https://github.com/MEFORORG/MessageFoundry/compare/v0.3.0...v0.3.1 +[0.3.0]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.15...v0.3.0 +[0.2.15]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.14...v0.2.15 +[0.2.14]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.13...v0.2.14 +[0.2.13]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.12...v0.2.13 +[0.2.12]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.11...v0.2.12 +[0.2.11]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.10...v0.2.11 [0.2.10]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.9...v0.2.10 [0.2.9]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.8...v0.2.9 [0.2.8]: https://github.com/MEFORORG/MessageFoundry/compare/v0.2.7...v0.2.8 diff --git a/messagefoundry/__init__.py b/messagefoundry/__init__.py index c9a5d42..2be321c 100644 --- a/messagefoundry/__init__.py +++ b/messagefoundry/__init__.py @@ -107,7 +107,7 @@ to_zone, ) -__version__ = "0.3.0" +__version__ = "0.3.1" __all__ = [ "Message",