Files
plebeian-signer/.claude/commands/release.md
mleku b535a7b967 Release v1.0.3 - Add zip file creation to release process
- Update /release command to create zip files in releases/ folder
- Add v1.0.3 zip files for both Chrome and Firefox extensions

Files modified:
- .claude/commands/release.md
- releases/plebeian-signer-chrome-v1.0.3.zip (new)
- releases/plebeian-signer-firefox-v1.0.3.zip (new)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-20 09:08:34 +01:00

79 lines
2.8 KiB
Markdown

# Release Command
Review all changes in the repository and create a release with proper commit message, version tag, and push to origin.
## Argument: $ARGUMENTS
The argument should be one of:
- `patch` - Bump the patch version (e.g., v0.0.4 -> v0.0.5)
- `minor` - Bump the minor version and reset patch to 0 (e.g., v0.0.4 -> v0.1.0)
- `major` - Bump the major version and reset minor/patch to 0 (e.g., v0.0.4 -> v1.0.0)
If no argument provided, default to `patch`.
## Version Format
This project uses **standard semver with `v` prefix** (e.g., `v0.0.8`, `v1.2.3`).
## Steps to perform:
1. **Read the current version** from `package.json` (the `version` field)
- Strip any existing `v` prefix if present (for backward compatibility with old `0.0.x` format)
- The raw version should be in format: MAJOR.MINOR.PATCH
2. **Calculate the new version** based on the argument:
- Parse the current version (format: MAJOR.MINOR.PATCH)
- If `patch`: increment PATCH by 1
- If `minor`: increment MINOR by 1, set PATCH to 0
- If `major`: increment MAJOR by 1, set MINOR and PATCH to 0
3. **Update package.json** with the new version (with `v` prefix) in all three places:
- `version` -> `vX.Y.Z`
- `custom.chrome.version` -> `vX.Y.Z`
- `custom.firefox.version` -> `vX.Y.Z`
4. **Review changes** using `git status` and `git diff --stat HEAD`
5. **Verify the build** before committing:
```
npm run lint
npm run build:chrome
npm run build:firefox
```
If any step fails, fix issues before proceeding.
6. **Create release zip files** in the `releases/` folder:
```
mkdir -p releases
cd dist/chrome && zip -r ../../releases/plebeian-signer-chrome-vX.Y.Z.zip . && cd ../..
cd dist/firefox && zip -r ../../releases/plebeian-signer-firefox-vX.Y.Z.zip . && cd ../..
```
Replace `vX.Y.Z` with the actual version number.
7. **Compose a commit message** following this format:
- First line: 72 chars max, imperative mood summary (e.g., "Release v0.0.8")
- Blank line
- Bullet points describing each significant change
- "Files modified:" section listing affected files
- Footer with Claude Code attribution
8. **Stage all changes** with `git add -A`
9. **Create the commit** with the composed message
10. **Create a git tag** matching the version (e.g., `v0.0.8`)
11. **Push to origin** with tags:
```
git push origin main --tags
```
12. **Report completion** with the new version and commit hash
## Important:
- This is a browser extension with separate Chrome and Firefox builds
- All three version fields in package.json must be updated together
- Always verify both Chrome and Firefox builds compile before committing
- Version format is standard semver with `v` prefix: `vMAJOR.MINOR.PATCH`
- Legacy versions without `v` prefix (e.g., `0.0.7`) are automatically upgraded to the new format