Skip to content

Release/v1.0.0 rc1 - #118

Merged
acgetchell merged 3 commits into
mainfrom
release/v1.0.0-rc1
Jul 22, 2026
Merged

Release/v1.0.0 rc1#118
acgetchell merged 3 commits into
mainfrom
release/v1.0.0-rc1

Conversation

@acgetchell

@acgetchell acgetchell commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added release automation utilities to generate deterministic, versioned changelogs and create validated annotated Git release tags, including dry-run previews.
    • Added CLI support for tag creation and expanded release workflow recipes.
  • Documentation

    • Added a full release and archival runbook.
    • Updated contributor and developer workflow guidance for the new release commands.
  • Maintenance

    • Updated 1.0.0-rc1 changelog and refreshed the released date for citation metadata.
    • Improved release metadata/changelog validation and extended coverage test timeouts.

@acgetchell acgetchell self-assigned this Jul 22, 2026
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1d71e538-8488-4552-9380-507845925dac

📥 Commits

Reviewing files that changed from the base of the PR and between ba22e12 and 26196da.

📒 Files selected for processing (1)
  • docs/RELEASING.md
💤 Files with no reviewable changes (1)
  • docs/RELEASING.md

Walkthrough

This PR adds deterministic release automation for CDT++, including metadata validation, offline changelog generation, annotated Git tag creation, release recipes, synchronized release documentation, and coverage-specific CTest timeout handling.

Changes

Release automation

Layer / File(s) Summary
Release metadata and changelog contracts
CHANGELOG.md, CITATION.cff, cliff.toml, scripts/release_check.py, scripts/tests/test_release_check.py
Defines changelog formatting and validates version and release-date consistency across project metadata and changelog headings.
Deterministic changelog generation
scripts/subprocess_utils.py, scripts/generate_changelog.py, scripts/tests/test_generate_changelog.py
Runs git-cliff offline, selects the newest stable prior tag, applies the metadata release date, and atomically writes validated changelog output.
Annotated release tag creation
scripts/tag_release.py, scripts/tests/test_tag_release.py
Validates SemVer tags, extracts release sections, checks repository state, supports dry runs, and creates bounded annotated Git tags.
Release workflow wiring and guidance
Justfile, pyproject.toml, README.md, docs/RELEASING.md, .github/CONTRIBUTING.md, tests/CMakeLists.txt
Adds release recipes and CLI wiring, documents release and archival procedures, and sets a coverage-specific CTest timeout.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant Justfile
  participant generate_changelog
  participant git_cliff
  participant cdt_tag_release
  participant Git
  Developer->>Justfile: run changelog-unreleased
  Justfile->>generate_changelog: pass release version
  generate_changelog->>git_cliff: render changelog offline
  git_cliff-->>generate_changelog: return release entries
  generate_changelog-->>Developer: write dated CHANGELOG.md
  Developer->>Justfile: run tag-check or tag
  Justfile->>cdt_tag_release: pass release tag
  cdt_tag_release->>Git: validate worktree and tag state
  Git-->>cdt_tag_release: return preflight status
  cdt_tag_release->>Git: create annotated tag
Loading

Possibly related PRs

Poem

Tags bloom neatly, dates align,
Changelogs flow in ordered rhyme.
Git-cliff hums, then files are spun,
Dry runs check before they’re done.
Release notes sail on—done!

🚥 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 clearly about the v1.0.0 release candidate work and matches the main release-focused changeset.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/v1.0.0-rc1

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

@acgetchell
acgetchell enabled auto-merge July 22, 2026 05:03
@acgetchell
acgetchell disabled auto-merge July 22, 2026 05:04

@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: 2

🤖 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 `@docs/RELEASING.md`:
- Line 24: Remove the unused RELEASE_DATE assignment from the release
instructions, or update the documented workflow to actually consume it. Keep
CITATION.cff as the authoritative source for the release date and avoid implying
this variable affects release metadata.

In `@scripts/tests/test_generate_changelog.py`:
- Around line 29-30: Make the unittest exception assertions Ruff-compatible by
excluding PT027 for scripts/tests or adding targeted, justified suppressions at
scripts/tests/test_generate_changelog.py lines 29-30, 56-57, and 98-99, and
scripts/tests/test_tag_release.py lines 60-61, 102-103, and 112-113. Preserve
the existing unittest.TestCase assertions and ensure just python-lint passes.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3449a280-c70e-4200-b385-9ea8a3bdab1d

📥 Commits

Reviewing files that changed from the base of the PR and between b7ffce4 and ba22e12.

📒 Files selected for processing (16)
  • .github/CONTRIBUTING.md
  • CHANGELOG.md
  • CITATION.cff
  • Justfile
  • README.md
  • cliff.toml
  • docs/RELEASING.md
  • pyproject.toml
  • scripts/generate_changelog.py
  • scripts/release_check.py
  • scripts/subprocess_utils.py
  • scripts/tag_release.py
  • scripts/tests/test_generate_changelog.py
  • scripts/tests/test_release_check.py
  • scripts/tests/test_tag_release.py
  • tests/CMakeLists.txt

Comment thread docs/RELEASING.md Outdated
Comment thread scripts/tests/test_generate_changelog.py
@acgetchell
acgetchell enabled auto-merge July 22, 2026 05:28
@acgetchell
acgetchell merged commit 7c4e1fc into main Jul 22, 2026
13 checks passed
@acgetchell
acgetchell deleted the release/v1.0.0-rc1 branch July 22, 2026 05:59
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.

1 participant