mirror of
https://github.com/bitsofchris/openaugi-obsidian-plugin.git
synced 2026-07-22 12:40:27 +00:00
146 lines
3.6 KiB
Markdown
146 lines
3.6 KiB
Markdown
# 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]
|
|
```
|
|
|
|
Write this out to a markdown file.
|
|
|
|
### 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
|