airvzxf / airvzxf/voxora

Adopt release-plz for version coordination + changelog automation

Đang mở
#58 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
enhancement infrastructure
Ngôn ngữ chính
Rust
Star
0
Fork
1
Merge trung bình
11 phút
Pull request đã merge (30 ngày)
47

Mô tả

Replace the manual version-coordination workflow (see related
version-coordination policy issue) with \`release-plz\`, which
automates:

- Detecting which crates changed since the last release (via
\`cargo metadata\` + git diff).
- Bumping versions per the workspace's package manifest.
- Generating per-crate CHANGELOG entries from Conventional
Commits subjects.
- Opening a release PR that, when merged, tags and triggers the
existing \`release.yml\` workflow.

## What

1. Add the \`release-plz\` GitHub Action to
\`.github/workflows/release-plz.yml\`. Schedule: weekly
(Mondays) + on workflow_dispatch.
2. Configure \`release-plz\` in \`release-plz.toml\`:
- tag name: \`voxora-X.Y.Z\` (single per release, no
per-crate tags for new releases — the existing per-crate
tags are the migration artifact; we keep them for
backwards compat but stop creating new ones).
- changelog path: per-crate \`CHANGELOG.md\`.
- conventional commits parsing enabled.
3. Add a CI job that runs \`cargo release-plz check\` to verify
the configuration parses.
4. Update \`AGENTS.md\` to point at release-plz for the release
flow.

## Why

Currently:

- Bumping 11 crates' versions is a hand-edited step that
touches 22+ lines of \`Cargo.toml\` files per release. Easy to
miss a crate.
- CHANGELOG entries are written by hand and historically have
had attribution errors (the F2 fix-PR had to rewrite
CHANGELOGs that misattributed 0.1.x work to 0.2.0).
- \`release-plz\` is the standard tool for this in the Rust
ecosystem; projects like \`ratatui\`, \`bevy\` (some subcrates),
and \`tokio\`-adjacent projects use it.

## Acceptance

- \`cargo release-plz release\` (dry-run) generates the expected
per-crate CHANGELOG entries and version bumps for the next
release.
- A test release-plz run on a fake \`chore(release): ...\` commit
produces a release PR with the right contents.
- The existing manual \`CONTRIBUTING.md\` \"Release process\"
section is updated to point at release-plz.

## Out of scope

- Replacing the existing \`release.yml\` with a release-plz
template. The two can coexist: release-plz creates the release
PR; the merged PR triggers the existing tag-validation +
cold-build + GitHub Release job.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.