diff --git a/.claude/commands/release.md b/.claude/commands/release.md index 5120229..daec85f 100644 --- a/.claude/commands/release.md +++ b/.claude/commands/release.md @@ -5,15 +5,21 @@ Review all changes in the repository and create a release with proper commit mes ## Argument: $ARGUMENTS The argument should be one of: -- `patch` - Bump the patch version (e.g., 0.0.4 -> 0.0.5) -- `minor` - Bump the minor version and reset patch to 0 (e.g., 0.0.4 -> 0.1.0) -- `major` - Bump the major version and reset minor/patch to 0 (e.g., 0.0.4 -> 1.0.0) +- `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) @@ -21,10 +27,10 @@ If no argument provided, default to `patch`. - 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 in all three places: - - `version` - - `custom.chrome.version` - - `custom.firefox.version` +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` @@ -37,7 +43,7 @@ If no argument provided, default to `patch`. If any step fails, fix issues before proceeding. 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 - Bullet points describing each significant change - "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 -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: ``` @@ -60,3 +66,5 @@ If no argument provided, default to `patch`. - 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 diff --git a/package.json b/package.json index a17d021..9df26de 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,12 @@ { "name": "plebeian-signer", - "version": "0.0.7", + "version": "v0.0.8", "custom": { "chrome": { - "version": "0.0.7" + "version": "v0.0.8" }, "firefox": { - "version": "0.0.7" + "version": "v0.0.8" } }, "scripts": { diff --git a/projects/chrome/public/manifest.json b/projects/chrome/public/manifest.json index 56f87ff..90c91e4 100644 --- a/projects/chrome/public/manifest.json +++ b/projects/chrome/public/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Plebeian Signer - Nostr Identity Manager & Signer", "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", "options_page": "options.html", "permissions": [ diff --git a/projects/firefox/public/manifest.json b/projects/firefox/public/manifest.json index 7616b99..7463aa2 100644 --- a/projects/firefox/public/manifest.json +++ b/projects/firefox/public/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 3, "name": "Plebeian Signer", "description": "Nostr Identity Manager & Signer", - "version": "0.0.7", + "version": "v0.0.8", "homepage_url": "https://git.mleku.dev/mleku/plebeian-signer", "options_page": "options.html", "permissions": [