From 9297786b8eebad793e08e3153a1907324885cdea Mon Sep 17 00:00:00 2001 From: Renn F Date: Thu, 1 Oct 2026 23:12:11 +0200 Subject: [PATCH] release(3.2.0): buildable dev resolution, Slack-free CI, and an enforced 100% coverage gate --- .mike.yml | 3 ++- CHANGELOG.md | 18 ++++++++++++++++++ docs/release-notes.md | 18 ++++++++++++++++++ docs/versions/versions.json | 3 ++- guard_agent/_version.py | 2 +- pyproject.toml | 2 +- 6 files changed, 42 insertions(+), 4 deletions(-) diff --git a/.mike.yml b/.mike.yml index dc95d28..e016a2f 100644 --- a/.mike.yml +++ b/.mike.yml @@ -2,6 +2,7 @@ version_selector: true title_switch: true versions_file: docs/versions/versions.json versions: + - 3.2.0 - 3.1.0 - 3.0.2 - 3.0.0 @@ -29,4 +30,4 @@ versions: - 0.0.1 - latest aliases: - latest: 3.1.0 + latest: 3.2.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 7581044..116a85d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,24 @@ The parity release: agent feature surface locked across all four language ports ___ +v3.2.0 (2026-10-01) +------------------- + +Buildable dev resolution, Slack-free CI, and an enforced 100% coverage gate (v3.2.0) +------------------------------------------------------------------------------------ + +### Fixed + +- **`guard-agent[dev]` installs resolve again (#65).** The repo commits no uv.lock, so every `uv sync --extra dev` re-resolves fresh; with fastapi in the dev extra, that fresh resolution backtracked semgrep all the way to 0.86.3, whose sdist `setup.py` aborts without a system semgrep-core binary. That broke `guard-agent[dev]` installs in guard-agent's own CI and in the guard-core ecosystem-gate consumer jobs, and shipped in the 3.1.0 metadata. semgrep is now floored at `>=1.100,<2`, so resolution lands on a wheel release (1.178.0) and the dev extra installs cleanly again. + +### Changed + +- **CI no longer posts Slack notifications (#64).** The Slack notification steps were removed from ci.yml, code-ql.yml, docs.yml, release-shim.yml, release.yml and scheduled-lint.yml. +- **The 100% coverage gate is now enforced in CI (#64).** The test job runs pytest with `--cov-fail-under=100`, so a coverage regression fails the build instead of only being reported; this matches the project's 100%-coverage target. +- **github/codeql-action bumped from 4.38.1 to 4.38.2 (#63).** + +___ + v3.0.2 (2026-09-23) ------------------- diff --git a/docs/release-notes.md b/docs/release-notes.md index a76c3bf..fa1935f 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -21,6 +21,24 @@ The parity release: agent feature surface locked across all four language ports ___ +v3.2.0 (2026-10-01) +------------------- + +Buildable dev resolution, Slack-free CI, and an enforced 100% coverage gate (v3.2.0) +------------------------------------------------------------------------------------ + +### Fixed + +- **`guard-agent[dev]` installs resolve again (#65).** The repo commits no uv.lock, so every `uv sync --extra dev` re-resolves fresh; with fastapi in the dev extra, that fresh resolution backtracked semgrep all the way to 0.86.3, whose sdist `setup.py` aborts without a system semgrep-core binary. That broke `guard-agent[dev]` installs in guard-agent's own CI and in the guard-core ecosystem-gate consumer jobs, and shipped in the 3.1.0 metadata. semgrep is now floored at `>=1.100,<2`, so resolution lands on a wheel release (1.178.0) and the dev extra installs cleanly again. + +### Changed + +- **CI no longer posts Slack notifications (#64).** The Slack notification steps were removed from ci.yml, code-ql.yml, docs.yml, release-shim.yml, release.yml and scheduled-lint.yml. +- **The 100% coverage gate is now enforced in CI (#64).** The test job runs pytest with `--cov-fail-under=100`, so a coverage regression fails the build instead of only being reported; this matches the project's 100%-coverage target. +- **github/codeql-action bumped from 4.38.1 to 4.38.2 (#63).** + +___ + v3.0.2 (2026-09-23) ------------------- diff --git a/docs/versions/versions.json b/docs/versions/versions.json index 8eed291..a819fbf 100644 --- a/docs/versions/versions.json +++ b/docs/versions/versions.json @@ -1,4 +1,5 @@ { + "3.2.0": "3.2.0", "3.1.0": "3.1.0", "3.0.2": "3.0.2", "3.0.0": "3.0.0", @@ -24,5 +25,5 @@ "0.1.1": "0.1.1", "0.1.0": "0.1.0", "0.0.1": "0.0.1", - "latest": "3.1.0" + "latest": "3.2.0" } diff --git a/guard_agent/_version.py b/guard_agent/_version.py index d121b81..4b4de22 100644 --- a/guard_agent/_version.py +++ b/guard_agent/_version.py @@ -1,3 +1,3 @@ """Single source of truth for the package version, importable without side-effects.""" -__version__ = "3.1.0" +__version__ = "3.2.0" diff --git a/pyproject.toml b/pyproject.toml index 9a94c1f..b010c02 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "guard-agent" -version = "3.1.0" +version = "3.2.0" description = "Framework-agnostic telemetry and monitoring agent for the Guard security ecosystem (fastapi-guard, flaskapi-guard, djangoapi-guard, tornadoapi-guard)" authors = [ {name = "Renzo Franceschini", email = "rennf93@users.noreply.github.com"}