bitsofchris_openaugi-obsidi.../docs/PUBLISHING.md

145 lines
3.5 KiB
Markdown
Raw Normal View History

2026-01-12 14:03:32 +00:00
# Publishing a New Release
This guide walks through the complete process of publishing a new OpenAugi plugin release.
## Pre-Release Checklist
Before starting the release process:
- [ ] All features/fixes are merged to master
- [ ] Code builds without errors (`npm run build`)
- [ ] Type checking passes (`npm run typecheck`)
- [ ] Manual testing completed in test vault (`/Users/chris/zk-for-testing`)
- [ ] CODEBASE_MAP.md is up to date with any architectural changes
## Release Process
### Step 1: Bump the Version
Update the version number in **both** files (they must match):
1. `manifest.json` - Update the `"version"` field
2. `package.json` - Update the `"version"` field
Use semantic versioning:
- **MAJOR** (1.0.0): Breaking changes
- **MINOR** (0.1.0): New features, backwards compatible
- **PATCH** (0.0.1): Bug fixes, backwards compatible
### Step 2: Commit the Version Bump
```bash
git add manifest.json package.json
git commit -m "Bump version to X.Y.Z"
git push origin master
```
### Step 3: Create and Push the Git Tag
The tag **must** match the version in `manifest.json` exactly.
```bash
git tag -a X.Y.Z -m "X.Y.Z"
git push origin X.Y.Z
```
Notes:
- `-a` creates an [annotated tag](https://git-scm.com/book/en/v2/Git-Basics-Tagging#_creating_tags) (required for Obsidian releases)
- `-m` specifies the tag message - must match the version number
### Step 4: Wait for GitHub Actions
The workflow will automatically:
1. Build the plugin
2. Create a draft release with the built artifacts
Monitor progress at: https://github.com/bitsofchris/openaugi-obsidian-plugin/actions
### Step 5: Generate Release Notes
**Claude should generate release notes** by comparing the new tag to the previous release:
1. Look at all commits since the last release tag
2. Identify user-facing changes (features, fixes, improvements)
3. Create release notes in this format:
```markdown
## TL;DR
[One-sentence summary of the most important change(s)]
## What's New
### Features
- [Feature 1]: [Brief description of what it does and why users care]
- [Feature 2]: [Brief description]
### Bug Fixes
- [Fix 1]: [What was broken and how it's fixed]
### Improvements
- [Improvement 1]: [What's better now]
## How to Use
[For any new features, include brief usage instructions]
## Upgrade Notes
[Any breaking changes or things users need to know when upgrading]
```
### Step 6: Publish the Release
1. Go to https://github.com/bitsofchris/openaugi-obsidian-plugin/releases
2. Find the draft release created by the workflow
3. Click **Edit**
4. Paste the generated release notes
5. Click **Publish release**
### Step 7: Update Documentation
Ensure all docs reflect the new release:
- [ ] `docs/CODEBASE_MAP.md` - Architecture changes
- [ ] `CLAUDE.md` - Any new development guidelines
- [ ] `README.md` - User-facing documentation (if applicable)
## Quick Reference
```bash
# Full release flow (example for version 0.4.0)
npm run build
npm run typecheck
# Commit version bump
git add manifest.json package.json
git commit -m "Bump version to 0.4.0"
git push origin master
# Tag and push
git tag -a 0.4.0 -m "0.4.0"
git push origin 0.4.0
# Then: Edit draft release on GitHub and publish
```
## Troubleshooting
### Tag already exists
```bash
# Delete local tag
git tag -d X.Y.Z
# Delete remote tag (if pushed)
git push origin --delete X.Y.Z
```
### Wrong version tagged
1. Delete the incorrect tag (see above)
2. Fix the version in manifest.json/package.json
3. Commit and re-tag
### Workflow failed
1. Check the Actions tab for error details
2. Fix the issue
3. Delete the tag and re-push after fixing