Skip to content

Release 2.2.0 - #143

Merged
jp1337 merged 5 commits into
mainfrom
release/v2.2.0
Oct 9, 2026
Merged

jp1337 merged 5 commits into
mainfrom
release/v2.2.0

Conversation

@jp1337

@jp1337 jp1337 commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Warning

AI-generated

What and why

Release 2.2.0 (docs-tech/release.md §1 and §4): the Spanish locale, translated by @edumicro (#126, merged via #133),
and everything under [Unreleased], including #142.

  • CHANGELOG.md: [Unreleased] → [2.2.0] — 2026-10-09, compare link, [Unreleased] repointed.
  • Version 2.2.0 in app/config.py, pyproject.toml, uv.lock, charts/openwhistle/Chart.yaml (version, appVersion),
    .env.example, docker-compose.prod.yml.
  • Mutation audit: every spec added since v2.1.1 is all RED. Two releases' worth of guards had no spec:
Spec Guards Result
v2.1.2-ai-disclosure 5 RED
v2.1.2-ci-hardening 6 RED
v2.1.2-site-p3 5 RED
v2.2.0-website-split 13 RED
v2.2.0-spanish (new) 6 RED after 3 new tests (3 were GREEN)
v2.2.0-percent-locale (new, #142) 11 RED
v2.1.1-site-p2a / -p2b (trimmed since v2.1.1) 30 / 29 RED

The three GREEN ones: dropping es from the /set-language allowlist, the base.html picker or submit.html's
live-counter separators broke no test. The cookie test now runs for every supported language; two static tests tie
the picker and the browser separators to app.i18n.

Documentation: openwhistle/website#1

How it was tested

  • pytest against PostgreSQL 18 and Redis 8: 2124 passed, coverage 97.70 %. Without tests/test_ldap.py and
    one failure, test_a_directory_entry_without_the_username_attribute_is_refused: both need python-ldap, which
    does not build locally (no lber.h). CI installs it.
  • test_every_published_version_string_matches green; ruff, ruff format, mypy --strict app/, codespell,
    markdownlint, zizmor clean.
  • A user-facing change has its pull request in openwhistle/website, linked here (CONTRIBUTING.md, "Documentation")

🤖 Generated with Claude Code

https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz

jp1337 and others added 5 commits October 9, 2026 18:16
… and the live counter

The Spanish locale had no mutation spec. Of its six guards three were GREEN:
dropping "es" from the /set-language allowlist, from the base.html picker or
from submit.html's live-counter separators broke nothing. The cookie test now
runs for every supported language, and two static tests tie the picker and the
browser separators to app.i18n. v2.2.0-spanish.json: all six RED.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz
Brings #142 (stats percentages and the 422 page in the user's language) into
the 2.2.0 section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz
Eleven guards from #142 (per-locale decimal mark and percent sign, the
three stats-page placements, the translated 422 page): all RED.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz
Spanish locale (translated by @edumicro, #126) and everything that was under
[Unreleased].

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013NwHs21bPEE5cpr4rDSeZz
@github-actions github-actions Bot added the ai-generated Says it was written by an AI agent (AGENTS.md) label Oct 9, 2026
@codecov

codecov Bot commented Oct 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@jp1337
jp1337 merged commit f3a77f3 into main Oct 9, 2026
16 checks passed
@jp1337
jp1337 deleted the release/v2.2.0 branch October 9, 2026 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated Says it was written by an AI agent (AGENTS.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant