Skip to content

feat: version lifecycle tooling#145

Open
filvecchiato wants to merge 17 commits into
mainfrom
define-v03
Open

feat: version lifecycle tooling#145
filvecchiato wants to merge 17 commits into
mainfrom
define-v03

Conversation

@filvecchiato
Copy link
Copy Markdown
Collaborator

@filvecchiato filvecchiato commented May 29, 2026

Summary

Adds version-cutting tooling and an explorer version snapshot script for the TrUAPI release process.

Closes #138

What's included

scripts/cut-version.sh

A single command to cut a protocol release. It performs two steps:

  1. Explorer snapshot — delegates to scripts/snapshot-version.sh to archive the current API surface for the explorer's version selector.
  2. Generate CHANGELOG.md — builds the changelog from scratch using conventional commit messages and git tags. Commits are classified into changelog sections (see table below) following the Keep a Changelog format. An RFCs section is also generated by diffing docs/rfcs/ between tags to show which RFCs were accepted or withdrawn in each release.

Version bumping is handled separately by the changeset release process (npm run changeset + npm run version-packages).

Usage:

scripts/cut-version.sh            # cut version (snapshot, changelog)
scripts/cut-version.sh --dry-run  # preview without making changes

docs/design/releases/v0.2.md

Moved docs/design/v02-changes.md into a releases/ directory to establish a convention for per-version release notes.

PR and commit conventions

For the changelog generation to produce meaningful output, commits should follow Conventional Commits:

Prefix Changelog section
feat: Added
fix: Fixed
refactor:, perf: Changed
remove:, revert: Removed
docs:, chore:, ci:, test:, style:, build: Skipped
Non-conventional (no prefix) Changed
type!: (breaking) Changed

Merge commits are always skipped.

Additionally, the changelog includes an RFCs section per release, generated automatically by diffing docs/rfcs/ between git tags:

Change Label
RFC file added between tags Accepted: RFC title
RFC file removed between tags Withdrawn: RFC title

RFC titles are extracted from YAML frontmatter (title:) or the first # heading in each file.

Test plan

  • scripts/cut-version.sh --dry-run completes without errors
  • cargo build -p truapi succeeds

- Add scripts/cut-version.sh for cutting protocol releases
- Add rust/crates/truapi/src/next/ as a staging module for upcoming types
- Move docs/design/v02-changes.md to docs/design/releases/v0.2.md

Closes #138
@filvecchiato filvecchiato requested a review from a team May 29, 2026 07:47
Comment thread rust/crates/truapi/src/lib.rs
Comment thread rust/crates/truapi/src/versioned/mod.rs
# Conflicts:
#	rust/crates/truapi/src/versioned/mod.rs
@filvecchiato filvecchiato requested a review from pgherveou June 1, 2026 13:59
@filvecchiato filvecchiato enabled auto-merge June 1, 2026 13:59
Remove redundant file copy loop in crystallize step, add missing
local declaration for items variable, and clarify final message
to show both the released and bumped versions.
# Conflicts:
#	scripts/cut-version.sh
Comment thread rust/crates/truapi/src/next/mod.rs Outdated
The next/ module is unnecessary — new wire types can be added
directly to v01/ or a future vNN/ module when needed. Removes
the module, its lib.rs declaration, and the crystallize/reset
steps from cut-version.sh.
Comment thread README.md Outdated
@filvecchiato filvecchiato marked this pull request as draft June 5, 2026 19:28
auto-merge was automatically disabled June 5, 2026 19:28

Pull request was converted to draft

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@filvecchiato filvecchiato changed the title feat: version lifecycle tooling and next/ staging module feat: version lifecycle tooling Jun 5, 2026
@filvecchiato filvecchiato marked this pull request as ready for review June 5, 2026 19:32
@filvecchiato filvecchiato enabled auto-merge June 5, 2026 19:32
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.

Define TrUAPI v0.3

2 participants