tim-hub_obsidian-bible-refe.../docs/How to release.md
tim-hub 21603faa26 refactor: convert to Bun monorepo; move plugin source into packages/
- Switch package manager/runtime/test-runner from pnpm+jest to Bun.
  Remove pnpm-workspace.yaml + pnpm-lock.yaml; root package.json is now a
  bun workspace ("workspaces": ["packages/*"]); add bun.lock.
- Move the Obsidian plugin source into packages/obsidian-bible-reference/
  (src, scripts, tsconfig, eslint, prettier). The repo root remains the
  installable plugin folder: manifest.json, versions.json, styles.css and
  the built main.js stay at root.
- esbuild + version-bump resolve repo-root paths so the build emits main.js
  to root and version-bump edits root manifest/versions from the package.
- Migrate plugin tests from jest to `bun test`. Only the provider test used
  jest mocking; convert to bun:test (mock/spyOn). Mock the types-only
  `obsidian` module via a bun test preload (bunfig.toml) since mock.module
  is not hoisted like jest.mock.
- Root build builds packages in dependency order then the plugin; CI builds
  before test because the plugin/tests import bible-reference-toolkit's dist.
- Update CI + release workflows to oven-sh/setup-bun; husky pre-commit,
  dev-setup/release docs and VS Code tasks to bun.
- Pin plugin prettier to 3.8.3 (3.9.x reformats unrelated union types).
- Add @types/node to bible-reference-toolkit (was hoisted under pnpm).

Claude-Session: https://claude.ai/code/session_013pCNGDmUyfJia4tE4aWoYM
2026-07-14 22:24:49 +12:00

908 B

Releasing new releases

  1. Update your package.json with your new version number, such as 1.0.1, and the minimum Obsidian version required for your latest release.
  2. Run bun run --filter obsidian-bible-reference version
  3. Tag it with 1.0.1 and push the tags git push --tags

Work is done, the 3 steps below will be done by Github Action of Release.

In case the automatic release fails:

Follow the 3 steps below to release manually:

  1. Create new GitHub release using your new version number as the "Tag version". Use the exact version number, don't include a prefix v. See here for an example: https://github.com/obsidianmd/obsidian-sample-plugin/releases
  2. Upload the files manifest.json, main.js, styles.css as binary attachments. Note: The manifest.json file must be in two places, first the root path of your repository and also in the release.
  3. Publish the release.