johannes-kaindl_json-editor/scripts/version-bump.mjs
Johannes Kaindl 0adac68574
chore(release): unified Release-Toolkit adoptieren (PROF-OBS-09)
Zieht das byte-identische Release-Toolkit ein (release.mjs + version-bump.mjs +
lib/codeberg-release.mjs + Helper-Test) und stellt die CI auf die kanonische
release.yml um (strikterer Gate: +typecheck +lint; idempotentes release --clobber;
Attestation v4).

- package.json: npm-Scripts release + version-bump
- vitest.config: include um scripts/**/*.test.ts erweitert (Helper-Test laeuft mit)
- biome.json: scripts/ aus dem Lint-Scope (vendored Toolkit, byte-identisch — wie
  image-to-markdown/vault-rag nur src/ linten)
- AGENTS.md: Commands-Block auf 'npm run release X.Y.Z' umgestellt

Gate gruen: typecheck && test (604) && lint && build. 'npm run release --dry-run'
verifiziert. Kein Push/Tag/Release.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-27 14:26:57 +02:00

27 lines
1.5 KiB
JavaScript

// Synct die Version über package.json → manifest.json → versions.json (Obsidian-Release-Hygiene).
// npm run version-bump 0.2.0
// Aktualisiert nur die Versions-Felder (package.json per gezieltem Replace → Formatierung bleibt erhalten;
// manifest.json/versions.json per JSON-Sync). versions.json bekommt {version: manifest.minAppVersion}.
import { readFileSync, writeFileSync } from "node:fs";
const target = process.argv[2] ?? process.env.npm_package_version;
if (!target || !/^\d+\.\d+\.\d+(-[0-9A-Za-z.-]+)?$/.test(target)) {
console.error("version-bump: gültige Ziel-Version (SemVer) erwartet — z.B. `npm run version-bump 0.2.0`.");
process.exit(1);
}
// package.json: nur die Top-Level-version-Zeile ersetzen (Formatierung/Reihenfolge bleibt).
const pkgRaw = readFileSync("package.json", "utf8");
writeFileSync("package.json", pkgRaw.replace(/("version":\s*")[^"]+(")/, `$1${target}$2`));
// manifest.json: version setzen.
const manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
manifest.version = target;
writeFileSync("manifest.json", JSON.stringify(manifest, null, 2) + "\n");
// versions.json: Mapping version → minAppVersion ergänzen.
const versions = JSON.parse(readFileSync("versions.json", "utf8"));
versions[target] = manifest.minAppVersion;
writeFileSync("versions.json", JSON.stringify(versions, null, 2) + "\n");
console.log(`version-bump: ${target} (minAppVersion ${manifest.minAppVersion}) → package.json · manifest.json · versions.json`);