Skip to content

docs: add RELEASING.md for manual tag-and-notes releases - #146

Merged
wpak-ai merged 7 commits into
masterfrom
docs/releasing-guide
Jul 31, 2026
Merged

docs: add RELEASING.md for manual tag-and-notes releases#146
wpak-ai merged 7 commits into
masterfrom
docs/releasing-guide

Conversation

@clean6378-max-it

@clean6378-max-it clean6378-max-it commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Closes #143

Docs-only. Adds RELEASING.md at the repo root: a numbered checklist for cutting a release when there is no publish workflow. Version lives in app.py line 3, changelog edits follow Keep a Changelog, tags use vMAJOR.MINOR.PATCH, and the GitHub Release notes come from the matching CHANGELOG.md section.

The runbook records the v0.2.0 two-PR pattern (changelog first, then the bump) and points at .github/workflows/ci.yml for the green gate. git diff --stat should show only RELEASING.md.

Summary by CodeRabbit

  • Documentation
    • Added a new manual release guide describing the full Git tag + GitHub Release workflow, including how to extract the correct changelog section and validate release notes before publishing.
    • Updated the “after-release” and versioning conventions used during the next development cycle.
    • Refreshed the security policy’s “latest master” supported-version guidance to 0.2.0.dev0.
    • Adjusted the deprecation policy to reflect that master may carry a .dev0 suffix between releases.

@clean6378-max-it clean6378-max-it self-assigned this Jul 30, 2026
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a manual release runbook covering versioning, changelog preparation, lightweight tags, GitHub Release creation, and post-release updates. SECURITY.md now identifies 0.2.0, and the deprecation policy refers to master for development versions.

Changes

Manual release documentation

Layer / File(s) Summary
Version and release prerequisites
RELEASING.md, SECURITY.md, docs/deprecation-policy.md
Documents version sources, shipped-version conventions, pre-release checks, security-version updates, and deprecation-policy references.
Release execution and follow-up
RELEASING.md
Defines changelog preparation, stale-version validation, lightweight tag creation, GitHub Release note extraction, and next-cycle instructions.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: timon0305

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: adding a manual release runbook.
Linked Issues check ✅ Passed The PR matches the linked issue requirements by adding a short release checklist and documenting versioning, tags, changelog, and release-note steps.
Out of Scope Changes check ✅ Passed The extra docs edits are directly related cross-references and policy updates, not unrelated scope creep.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/releasing-guide

Comment @coderabbitai help to get the list of available commands.

Comment thread RELEASING.md Outdated
@clean6378-max-it
clean6378-max-it requested review from wpak-ai and removed request for wpak-ai July 30, 2026 19:16

@wpak-ai wpak-ai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. RELEASING.md:9, RELEASING.md:53, SECURITY.md:5: say that app.py:3 is authoritative and that SECURITY.md:5 carries a version, rewrite step 7 from an optional future conditional into a required step naming that line, and bump SECURITY.md:5 from 0.1.0.dev0 to the version being cut (the "only version string" claim, step 3's "previous dev version" scoping, and step 7's false "if the project later adds a supported-version table" all steer the reader away from the single stale version in the repo, the table has existed at SECURITY.md:7-10 all along, and README.md:30 advertises that page as the project's supported-versions reference)

  2. RELEASING.md:49-50: guard the publish on a non-empty extraction, e.g. [ -s "$NOTES" ] || { echo "error: no CHANGELOG.md section for $VERSION" >&2; exit 1; }, and take the whole tested replacement block rather than hand-patching (four executed inputs, the unedited literal X.Y.Z, a leading-v slip, an ordinary typo, and running from a subdirectory where awk exits 2, all reach gh release create with a zero-byte notes file, and passing --notes-file is what suppresses gh's interactive prompt even in a TTY, so the release publishes with a blank body and no diagnostic; the same replacement also fixes the footer-link swallow at :47, the body's duplicated ## [X.Y.Z] heading, and the unreadable concatenated regexes at :45-47)

  3. RELEASING.md:24: add ### Deprecated to the changelog heading list, and ### Security alongside it (docs/deprecation-policy.md:16 mandates ### Deprecated as the announcement channel, :16 of this runbook tells the maintainer to bump minor for deprecations, and the repo has used the heading before, added in 7944ddb and converted to ### Removed in 6952d6d, so the one release type the document anticipates is the one whose required heading it omits)

  4. RELEASING.md:50: add --verify-tag to gh release create (gh auto-creates a missing tag from the default branch head, so a step 6 run where the tag was never pushed publishes a release against a tag pointing at whatever master happened to be; gh already blocks the case where the tag exists locally but unpushed, so this closes only the narrower gap of skipping step 5 or losing $VERSION in a fresh shell)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@RELEASING.md`:
- Line 11: Update the supported-versions sentence in RELEASING.md to remove the
nested code span around the version placeholder, using plain text surrounding
the placeholder while preserving the existing meaning and synchronization
guidance.
- Around line 31-35: Update the release-check instructions around the grep
command so the documented scope matches its behavior: either narrow the wording
to the patterns currently searched or extend the command with an explicit search
for the previous stable version, ensuring stale references such as 0.1.0 are
detected.
- Around line 55-63: Update the changelog extraction awk logic in the release
instructions to compare the version heading literally, escaping or otherwise
avoiding regex interpretation of dots and other version characters. Replace the
NOTES size check with validation that requires at least one non-whitespace
character, rejecting blank-line-only sections before release creation.
- Around line 50-52: Update the VERSION validation in the shell case statement
to require exactly three non-empty numeric components separated by dots:
MAJOR.MINOR.PATCH. Reject values such as 0.2, .2.0, and 0..0 while preserving
the existing error message and exit behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 29784ce4-6f91-4896-ae3e-31706e0637fc

📥 Commits

Reviewing files that changed from the base of the PR and between cdcc21e and cb5ccbd.

📒 Files selected for processing (1)
  • RELEASING.md

Comment thread RELEASING.md Outdated
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@RELEASING.md`:
- Around line 5-13: Synchronize the version references in
docs/deprecation-policy.md with the release context documented in the runbook:
identify v0.2.0 as shipped and 0.3.0.dev0 as the current development version, or
remove the stale current-version claims while preserving the policy guidance.
- Around line 11-13: Update the release instructions around the app.py version
bump and SECURITY.md synchronization so SECURITY.md is updated only for shipped
release versions, not intermediate .dev0 development bumps. Preserve the
guidance that the supported-version entry tracks the latest released security
target and is updated when a new tag ships.
- Around line 31-37: Update the stale-version grep command in the release
checklist to match SECURITY.md’s actual “(currently VERSION)” parenthetical
format without requiring a backtick, while preserving detection of .dev0
suffixes and the previous release value.
- Around line 73-75: Update the release-notes generation flow in RELEASING.md to
append the promised “Full changelog” footer to NOTES after extraction and before
gh release create runs, using the release version in the URL and preserving the
documented manual fallback.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 32e8a276-deaa-4c50-ae4b-941620a5fc68

📥 Commits

Reviewing files that changed from the base of the PR and between cb5ccbd and 86ccc2a.

📒 Files selected for processing (2)
  • RELEASING.md
  • SECURITY.md

Comment thread RELEASING.md
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md
Comment thread RELEASING.md Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@RELEASING.md`:
- Line 90: Update the “CI gates” row in the RELEASING.md references table to
include the actual .github/workflows/ci.yml workflow, optionally retaining the
existing CONTRIBUTING.md reference.
- Around line 61-70: Update the changelog extraction and validation around the
awk command in the release flow so NOTES is considered valid only when the
selected ## [VERSION] section contains at least one non-whitespace content line
after its heading. Exclude the heading itself from the validation or track
content separately, and retain the existing failure before creating the GitHub
Release when no release content is present.
- Around line 52-58: Update the VERSION validation case in the release
instructions to reject leading-zero components while continuing to accept valid
three-part versions. Require each component to match 0 or a nonzero digit
followed by digits, so values such as 01.2.3 and 0.02.003 are rejected.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: be2e24b3-8847-47b1-915e-3c48c3613906

📥 Commits

Reviewing files that changed from the base of the PR and between 86ccc2a and 7c24073.

📒 Files selected for processing (3)
  • RELEASING.md
  • SECURITY.md
  • docs/deprecation-policy.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • SECURITY.md

Comment thread RELEASING.md Outdated
Comment thread RELEASING.md Outdated
Comment thread RELEASING.md Outdated
@clean6378-max-it
clean6378-max-it requested a review from wpak-ai July 31, 2026 13:35
@wpak-ai
wpak-ai merged commit 78f3e2a into master Jul 31, 2026
16 checks passed
@wpak-ai
wpak-ai deleted the docs/releasing-guide branch July 31, 2026 14:27
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.

claude-code-chat-browser: add RELEASING.md documenting the manual release flow

3 participants