pre-release-branch
Prepare release notes and open a pre-release PR for ignition-config-rs
Source facts
- Repository
- coreos/ignition-config-rs
- Last source activity
- April 8, 2026 at 18:26
- Detected SKILL.md language
- English
- Stars
- 5
- Forks
- 7
Install options
The review-first prompt is selected by default. You can switch to a direct command or download a local copy.
Review the source files
Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.
Showing SKILL.md
SKILL.md
Source instructions · Read-only preview- name
- pre-release-branch
- description
- Prepare release notes and open a pre-release PR for ignition-config-rs
# Pre-Release Branch
## What it does
Prepares `docs/release-notes.md` for a new release and opens a PR:
1. Creates a `pre-release-X.Y.Z` branch
2. Converts the "Upcoming" header to a dated release header
3. Adds a new "Upcoming" header for the next development cycle
4. Commits with the standard message format
5. Pushes the branch and opens a PR
## Prerequisites
- `git` and `gh` CLI installed
- Push access to the repository
- Clean git working tree on `main`
## Usage
```bash
# Prepare release 0.7.0
/pre-release-branch 0.7.0
# Specify the next upcoming version explicitly
/pre-release-branch 0.7.0 --next 0.8.0
```
## Workflow
### Step 1: Parse input and determine versions
The release version argument is required (e.g., `0.7.0`).
```
RELEASE_VER = argument (e.g., "0.7.0")
RELEASE_MAJOR = 0
RELEASE_MINOR = 7
RELEASE_PATCH = 0
```
Determine the next upcoming version. If `--next` was provided, use that. Otherwise:
- If patch is 0: next minor version (e.g., `0.7.0` -> `0.8.0`)
- If patch > 0: next minor version (e.g., `0.6.1` -> `0.7.0`)
```
NEXT_VER = next version (e.g., "0.8.0")
TODAY = today's date in YYYY-MM-DD format
```
### Step 2: Pre-flight checks
Verify:
- Working tree is clean: `git status --porcelain` produces no output
- On `main` branch: `git branch --show-current` returns `main`
- `docs/release-notes.md` exists
- The file contains an "Upcoming" header matching the release version. Read `docs/release-notes.md` and look for a heading like:
```
## Upcoming ignition-config {RELEASE_VER} (unreleased)
```
If this heading does not exist, warn the user -- they may need to add it first, or the version may be wrong.
If any check fails, stop and report the issue.
### Step 3: Create branch
```bash
git checkout -b pre-release-{RELEASE_VER}
```
### Step 4: Update `docs/release-notes.md`
The file follows this structure. Find the "Upcoming" heading and make two changes:
**4a. Replace the "Upcoming" heading with a dated release heading:**
Find:
```markdown
## Upcoming ignition-config {RELEASE_VER} (unreleased)
```
Replace with:
```markdown
## Upcoming ignition-config {NEXT_VER} (unreleased)
## ignition-config {RELEASE_VER} ({TODAY})
```
This inserts the new "Upcoming" header above, with two blank lines separating it from the now-dated release header.
**4b. Keep all existing bullet points under the release header.** Do not move or modify them -- they stay under the now-dated heading where they were.
### Step 5: Commit
```bash
git add docs/release-notes.md
git commit -m "docs/release-notes: update for release {RELEASE_VER}"
```
### Step 6: Push and open PR
```bash
git push {UPSTREAM_REMOTE} pre-release-{RELEASE_VER}
```
Where `{UPSTREAM_REMOTE}` is typically `origin`. Verify with `git remote -v` if unsure.
Open a PR:
```bash
gh pr create \
--title "docs/release-notes: update for release {RELEASE_VER}" \
--body "$(cat <<'EOF'
## Summary
- Update release notes for {RELEASE_VER} release
- Add new "Upcoming {NEXT_VER}" section for next development cycle
Part of the release process for {RELEASE_VER}. See the [release checklist](https://github.com/coreos/ignition-config-rs/issues/new?labels=release&template=release-checklist.md).
EOF
)"
```
### Step 7: Report results
Summarize what was done:
- The commit created
- The PR URL
- Remind the user of the next release checklist steps:
- Get the PR reviewed and merged
- Then proceed with `cargo release` on a `release-{RELEASE_VER}` branch
## Checklist Coverage
From the [release checklist](.github/ISSUE_TEMPLATE/release-checklist.md), this skill covers:
- [x] `git checkout -b pre-release-${RELEASE_VER}`
- [x] Write release notes in `docs/release-notes.md`
- [x] `git add docs/release-notes.md && git commit -m "docs/release-notes: update for release ${RELEASE_VER}"`
- [x] PR the changes
## What's NOT covered
- Writing the actual release note bullet points (those should already exist under the "Upcoming" heading)
- Checking `Cargo.toml` for unintended dependency bound changes
- The `cargo release` step (separate branch, requires GPG)
- Publishing to crates.io
- GitHub release creation
- Fedora packaging
## References
- Release checklist: `.github/ISSUE_TEMPLATE/release-checklist.md`
- CI enforcement: `.github/workflows/require-release-note.yml` (PRs must modify `docs/release-notes.md`)
- Example commits: `f1244a5` (0.6.1), `40aea00` (0.6.0), `f7ec268` (0.5.0), `fdfff99` (0.4.1), `0693d30` (0.4.0)
View on GitHub