Files
opencode-obsidian/openspec/changes/archive/2026-02-14-setup-brat-packaging/tasks.md
2026-02-14 16:19:54 +01:00

3.1 KiB

1. Repository Preparation

  • 1.1 Verify main.js is in .gitignore (already configured)
  • 1.2 Confirm styles.css remains tracked in git (static source file)
  • 1.3 Verify repository builds cleanly (bun run build produces main.js)

2. Version Management Scripts

  • 2.1 Create scripts/sync-manifest-version.ts to read package.json version and update manifest.json
  • 2.2 Add "version" lifecycle script to package.json: "bun run scripts/sync-manifest-version.ts && git add manifest.json"
  • 2.3 Add version:patch script to package.json: "bun pm version patch && git push --follow-tags"
  • 2.4 Add version:minor script to package.json: "bun pm version minor && git push --follow-tags"
  • 2.5 Add version:major script to package.json: "bun pm version major && git push --follow-tags"
  • 2.6 Test version:patch locally in a test branch (then delete test tag and reset) - Script tested, full workflow to be verified after merge

3. GitHub Actions Release Workflow

  • 3.1 Create .github/workflows/release.yml with tag trigger (v*)
  • 3.2 Add workflow step to checkout repository
  • 3.3 Add workflow step to setup Bun environment
  • 3.4 Add workflow step to install dependencies (bun install)
  • 3.5 Add workflow step to verify manifest.json version matches the tag (sanity check)
  • 3.6 Add workflow step to build plugin (bun run build)
  • 3.7 Add workflow step to create GitHub release with prerelease: true
  • 3.8 Add workflow step to upload manifest.json, main.js, styles.css as release assets

4. Documentation Updates

  • 4.1 Add BRAT installation section to README.md
  • 4.2 Update README.md installation instructions to clarify git clone is for developers only
  • 4.3 Add release process documentation to CONTRIBUTING.md
  • 4.4 Document version commands and when to use each (patch/minor/major)

5. Testing and Verification (Post-Implementation)

  • 5.1 Run bun run version:patch locally (on test branch) and verify both package.json and manifest.json are updated (Script tested successfully)
  • 5.2 Verify the version commit includes both package.json and manifest.json changes (Lifecycle script verified)
  • 5.3 Push test tag and verify GitHub Actions workflow triggers and completes successfully
  • 5.4 Verify GitHub release is created with correct name (matching tag without 'v' prefix)
  • 5.5 Verify release is marked as pre-release
  • 5.6 Verify all three assets are attached: manifest.json, main.js, styles.css
  • 5.7 Verify manifest.json in release has correct version matching the tag
  • 5.8 Test installing the plugin via BRAT (if possible in test environment)
  • 5.9 Clean up test release and tag after verification

6. Final Steps (Manual)

  • 6.1 Commit all changes (package.json, scripts, .github/workflows/release.yml, documentation)
  • 6.2 Create PR for review (or merge directly if working solo)
  • 6.3 After merge, create first official beta release using bun run version:minor (bump to 0.2.0)
  • 6.4 Verify the release appears correctly and is installable via BRAT