# Release

> This skill should be used when the user asks to "release", "publish", "bump version", "create a release", "prepare release", or wants to publish a new version to PyPI. Use when this capability is needed.

- Skill: `tomevault-io/release-18` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/release-18`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/release-18/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/release-18

---


# Release Skill

This skill guides the release process for rtest, ensuring all version files are updated consistently.

## When This Skill Applies

Use this skill when the user wants to:
- Publish a new version to PyPI
- Bump the version number
- Create a release
- Prepare a release commit and tag

## Release Process

### Step 1: Determine Version Number

Ask the user for the new version number if not provided. The current version can be found in `pyproject.toml`.

For semantic versioning:
- **patch** (0.0.X): Bug fixes, minor changes
- **minor** (0.X.0): New features, backwards compatible
- **major** (X.0.0): Breaking changes

### Step 2: Update Version Files

Update the version in **both** files (they must stay in sync):

1. **pyproject.toml** - Update `version = "X.X.X"` under `[project]`
2. **Cargo.toml** - Update `version = "X.X.X"` under `[package]`

### Step 3: Update CHANGELOG.md

Add a new section after `## [Unreleased]`:

```markdown
## [X.X.X] - YYYY-MM-DD

### Added/Changed/Fixed
- Description of changes
```

Ask the user for a summary of changes if not provided.

### Step 4: Create Release Commit

Stage and commit all changes:
```bash
git add pyproject.toml Cargo.toml CHANGELOG.md
git commit -m "chore: release vX.X.X"
```

### Step 5: Create and Push Tag

```bash
git tag vX.X.X
git push origin main --tags
```

## Important Notes

- Always update BOTH pyproject.toml AND Cargo.toml - missing one will cause the PyPI release to fail with "file already exists" error
- The tag push triggers the GitHub Actions release workflow which builds and publishes to PyPI
- Use conventional commit format: `chore: release vX.X.X`

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/hughhan1) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

