Release
Automate the full release pipeline for this Obsidian plugin project.
Version Files
Three files track the plugin version:
| File | Field | Example |
|---|---|---|
packages/obsidian-plugin/manifest.json |
"version" |
"0.3.0" |
packages/obsidian-plugin/package.json |
"version" |
"0.3.0" |
packages/obsidian-plugin/versions.json |
"0.3.0": "minAppVersion" |
"0.3.0": "1.11.4" |
minAppVersion is read from the current manifest.json.
Process
1. Pre-flight Checks
Verify before proceeding:
- Working tree is clean (
git status --porcelainreturns empty) - On
mainbranch - CHANGELOG.md
[Unreleased]section has content (not empty)
If any check fails, report and stop.
2. Determine Version
Read current version from packages/obsidian-plugin/manifest.json.
If user provided a version argument: use it directly.
If no argument: infer from CHANGELOG.md [Unreleased] categories:
### Addedor### Changedpresent → minor bump- Only
### Fixedpresent → patch bump - Present the inferred version and ask user to confirm or override
3. Update CHANGELOG.md
- Replace
## [Unreleased]with## [x.y.z] - YYYY-MM-DD(today's date) - Add new empty
## [Unreleased]section above it - Update bottom reference links:
- Change
[Unreleased]link to compare from new version tag - Add
[x.y.z]compare link between previous version and new version
- Change
4. Update Version Files
packages/obsidian-plugin/manifest.json→ set"version": "x.y.z"packages/obsidian-plugin/package.json→ set"version": "x.y.z"packages/obsidian-plugin/versions.json→ add"x.y.z": "<minAppVersion>"
5. Verify
Run: pnpm check && pnpm typecheck && pnpm test && pnpm build
If any step fails, stop and report.
6. Commit, Tag, Push
git add CHANGELOG.md packages/obsidian-plugin/manifest.json packages/obsidian-plugin/package.json packages/obsidian-plugin/versions.json
git commit -m "chore: release x.y.z"
git tag x.y.z
git push && git push origin x.y.z
The tag push triggers .github/workflows/release.yml which automatically builds and publishes the GitHub Release.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.