Files
opencode-obsidian/openspec/changes/setup-brat-packaging/proposal.md
2026-02-02 18:57:16 +01:00

34 lines
2.3 KiB
Markdown

# Proposal: Setup BRAT-compatible packaging and releases
## Why
The plugin needs a reliable distribution mechanism for beta testing before official Obsidian marketplace submission. Currently, users must manually clone and build the plugin, creating friction for early adopters. BRAT (Beta Reviewer's Auto-update Tool) is the standard in the Obsidian community for beta plugin distribution. By setting up BRAT-compatible GitHub releases with automated version management, we enable users to install and auto-update the plugin with one click, accelerating feedback cycles during early development.
## What Changes
- **Version management scripts**: Add npm scripts (`version:patch`, `version:minor`, `version:major`) using `bun pm version` to automate version bumping and git tagging
- **Manifest synchronization**: Script or workflow step to ensure `manifest.json` version matches `package.json` before release
- **GitHub Actions release workflow**: Automated workflow triggered on `v*` tags that builds the plugin and creates GitHub releases with required assets (`manifest.json`, `main.js`, `styles.css`)
- **Repository cleanup**: `main.js` is already in `.gitignore` (build artifact); `styles.css` remains in git as it's a static source file
- **Documentation updates**: Add BRAT installation instructions to README and release process documentation to CONTRIBUTING.md
## Capabilities
### New Capabilities
- `brat-release-automation`: Automated GitHub release creation with BRAT-compatible asset packaging on version tag push
- `version-management`: Developer tooling for semantic version bumping with automated git tagging
- `manifest-sync`: Ensures `manifest.json` version field stays synchronized with `package.json` version during release process
### Modified Capabilities
_None - this change introduces infrastructure/tooling without modifying existing plugin functionality._
## Impact
- **CI/CD**: New GitHub Actions workflow for releases; existing CI workflow unaffected
- **Developer workflow**: New npm scripts for version management; standard `bun pm version` behavior
- **Repository structure**: Build artifacts removed from git tracking; releases become sole distribution mechanism
- **User experience**: BRAT users can install via `TfTHacker/obsidian42-brat` plugin with auto-update support
- **Dependencies**: No new runtime dependencies; uses existing `bun` toolchain