sotashimozono_obsidian-remo.../plugin/scripts
Souta 4757bb18e4 feat(release): formalize next=beta / main=stable two-channel model
Version shape is the single source of truth for the channel:
- X.Y.Z-beta.N → next (BRAT --beta consumers)
- X.Y.Z       → main (Obsidian Community Plugins store)

bump-version.mjs is now branch-aware: a beta bump only updates
plugin/manifest.json + manifest-beta.json (root manifest.json +
versions.json stay pinned to the last stable). A stable bump
advances every file together.

version-check.yml enforces the branch ↔ channel invariant:
- PR into next: head must be > base (semver-aware), root manifest.json
  + versions.json must NOT have moved
- PR into main: head must be plain X.Y.Z (no beta suffix), all
  manifests must agree
- Sync PRs (head=main → base=next) skip the workflow entirely

release.yml triggers on push to main AND next, picks prerelease vs
stable from the version shape, and gates: stable-on-next pushes
(promotion-staging commits) are skipped so only the eventual main
push publishes the stable release.

sync-main-to-next.yml automates the post-promotion sync: after a
push to main, it opens a PR main → next and enables auto-merge so
the histories rejoin without manual `git merge main` on next.
commitlint also skips on sync PRs (the autogenerated merge titles
don't follow Conventional Commits).

New npm scripts (run from plugin/):
- bump:beta:start  →  X.Y.Z → X.Y.(Z+1)-beta.0  (start of cycle)
- bump:beta        →  -beta.N → -beta.N+1       (within cycle)
- bump:stable      →  -beta.N suffix dropped    (promotion)

CONTRIBUTING.md documents the lifecycle + promotion flow.

Self-test: this PR bumps next from 1.0.43 to 1.0.44-beta.0 using
the new bump:beta:start script — only the beta-channel files moved.
2026-05-10 12:11:35 +09:00
..
perf ci(plugin): Phase C.M10 — perf-bench off the PR critical path; nightly + workflow_dispatch (0.4.48) 2026-04-29 08:39:01 +09:00
build-server.mjs feat(plugin): auto-deploy obsidian-remote-server over SSH 2026-04-25 17:40:45 +09:00
bump-stable.mjs feat(release): formalize next=beta / main=stable two-channel model 2026-05-10 12:11:35 +09:00
bump-version.mjs feat(release): formalize next=beta / main=stable two-channel model 2026-05-10 12:11:35 +09:00
cdp-tail.mjs chore: monorepo restructure (plugin/ + server/ + proto/) 2026-04-25 10:52:52 +09:00
dev-install.mjs chore(security): replace personal info with generic placeholders (0.3.2) 2026-04-27 11:30:25 +09:00
replay-prev-tests.mjs ci(replay): replay previous release tag's tests against current source 2026-04-30 17:54:22 +09:00
start-test-sshd.mjs fix(test): integration sshd healthcheck (install iproute2 + dump logs on fail) 2026-04-27 14:23:59 +09:00
stop-test-sshd.mjs feat(test): docker sshd integration test environment (Tier B-1+B-3, 0.4.0) 2026-04-27 14:05:55 +09:00