Release v0.0.8 - Adopt standard semver versioning

- Update release command to use standard semver with v prefix (v0.0.0 format)
- Add seamless migration from legacy non-prefixed versions (0.0.x -> v0.0.x)
- Document version format in release command instructions
- Bump version from 0.0.7 to v0.0.8 in package.json

Files modified:
- .claude/commands/release.md
- package.json

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-12-19 09:39:21 +01:00
parent 1491ac13af
commit 5550d41293
4 changed files with 22 additions and 14 deletions

View File

@@ -5,15 +5,21 @@ Review all changes in the repository and create a release with proper commit mes
## Argument: $ARGUMENTS ## Argument: $ARGUMENTS
The argument should be one of: The argument should be one of:
- `patch` - Bump the patch version (e.g., 0.0.4 -> 0.0.5) - `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., 0.0.4 -> 0.1.0) - `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., 0.0.4 -> 1.0.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`. 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: ## Steps to perform:
1. **Read the current version** from `package.json` (the `version` field) 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: 2. **Calculate the new version** based on the argument:
- Parse the current version (format: MAJOR.MINOR.PATCH) - Parse the current version (format: MAJOR.MINOR.PATCH)
@@ -21,10 +27,10 @@ If no argument provided, default to `patch`.
- If `minor`: increment MINOR by 1, set PATCH to 0 - If `minor`: increment MINOR by 1, set PATCH to 0
- If `major`: increment MAJOR by 1, set MINOR and PATCH to 0 - If `major`: increment MAJOR by 1, set MINOR and PATCH to 0
3. **Update package.json** with the new version in all three places: 3. **Update package.json** with the new version (with `v` prefix) in all three places:
- `version` - `version` -> `vX.Y.Z`
- `custom.chrome.version` - `custom.chrome.version` -> `vX.Y.Z`
- `custom.firefox.version` - `custom.firefox.version` -> `vX.Y.Z`
4. **Review changes** using `git status` and `git diff --stat HEAD` 4. **Review changes** using `git status` and `git diff --stat HEAD`
@@ -37,7 +43,7 @@ If no argument provided, default to `patch`.
If any step fails, fix issues before proceeding. If any step fails, fix issues before proceeding.
6. **Compose a commit message** following this format: 6. **Compose a commit message** following this format:
- First line: 72 chars max, imperative mood summary (e.g., "Release v0.0.5") - First line: 72 chars max, imperative mood summary (e.g., "Release v0.0.8")
- Blank line - Blank line
- Bullet points describing each significant change - Bullet points describing each significant change
- "Files modified:" section listing affected files - "Files modified:" section listing affected files
@@ -47,7 +53,7 @@ If no argument provided, default to `patch`.
8. **Create the commit** with the composed message 8. **Create the commit** with the composed message
9. **Create a git tag** with the new version prefixed with 'v' (e.g., `v0.0.5`) 9. **Create a git tag** matching the version (e.g., `v0.0.8`)
10. **Push to origin** with tags: 10. **Push to origin** with tags:
``` ```
@@ -60,3 +66,5 @@ If no argument provided, default to `patch`.
- This is a browser extension with separate Chrome and Firefox builds - This is a browser extension with separate Chrome and Firefox builds
- All three version fields in package.json must be updated together - All three version fields in package.json must be updated together
- Always verify both Chrome and Firefox builds compile before committing - 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

View File

@@ -1,12 +1,12 @@
{ {
"name": "plebeian-signer", "name": "plebeian-signer",
"version": "0.0.7", "version": "v0.0.8",
"custom": { "custom": {
"chrome": { "chrome": {
"version": "0.0.7" "version": "v0.0.8"
}, },
"firefox": { "firefox": {
"version": "0.0.7" "version": "v0.0.8"
} }
}, },
"scripts": { "scripts": {

View File

@@ -2,7 +2,7 @@
"manifest_version": 3, "manifest_version": 3,
"name": "Plebeian Signer - Nostr Identity Manager & Signer", "name": "Plebeian Signer - Nostr Identity Manager & Signer",
"description": "Manage and switch between multiple identities while interacting with Nostr apps", "description": "Manage and switch between multiple identities while interacting with Nostr apps",
"version": "0.0.7", "version": "v0.0.8",
"homepage_url": "https://git.mleku.dev/mleku/plebeian-signer", "homepage_url": "https://git.mleku.dev/mleku/plebeian-signer",
"options_page": "options.html", "options_page": "options.html",
"permissions": [ "permissions": [

View File

@@ -2,7 +2,7 @@
"manifest_version": 3, "manifest_version": 3,
"name": "Plebeian Signer", "name": "Plebeian Signer",
"description": "Nostr Identity Manager & Signer", "description": "Nostr Identity Manager & Signer",
"version": "0.0.7", "version": "v0.0.8",
"homepage_url": "https://git.mleku.dev/mleku/plebeian-signer", "homepage_url": "https://git.mleku.dev/mleku/plebeian-signer",
"options_page": "options.html", "options_page": "options.html",
"permissions": [ "permissions": [