repo: helper for bumping versions
This commit is contained in:
parent
a17a08ae28
commit
bfb4e8c982
80
contrib/bump-taler-version.mjs
Executable file
80
contrib/bump-taler-version.mjs
Executable file
@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
|
||||||
|
// Bump the package.json versions in Taler-related packagesin
|
||||||
|
// this repository.
|
||||||
|
// The version must be in one of the following formats:
|
||||||
|
// - x.y.z
|
||||||
|
// - x.y.z-dev.n
|
||||||
|
|
||||||
|
import * as fs from "fs";
|
||||||
|
|
||||||
|
let requestedVersion = process.argv[2];
|
||||||
|
|
||||||
|
let dry = false;
|
||||||
|
if (process.argv.includes("--dry")) {
|
||||||
|
dry = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let verMatched = false;
|
||||||
|
let verMajor = 0;
|
||||||
|
let verMinor = 0;
|
||||||
|
let verPatch = 0;
|
||||||
|
let verDev = undefined;
|
||||||
|
|
||||||
|
// Parse the requested version
|
||||||
|
const releaseVerRegex = /^(\d+)[.](\d+)[.](\d+)$/;
|
||||||
|
const devVerRegex = /^(\d+)[.](\d+)[.](\d+)-dev[.](\d+)$/;
|
||||||
|
|
||||||
|
const releaseMatch = requestedVersion.match(releaseVerRegex);
|
||||||
|
if (releaseMatch) {
|
||||||
|
verMatched = true;
|
||||||
|
verMajor = releaseMatch[1];
|
||||||
|
verMinor = releaseMatch[2];
|
||||||
|
verPatch = releaseMatch[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!verMatched) {
|
||||||
|
const devMatch = requestedVersion.match(devVerRegex);
|
||||||
|
if (devMatch) {
|
||||||
|
verMatched = true;
|
||||||
|
verMajor = devMatch[1];
|
||||||
|
verMinor = devMatch[2];
|
||||||
|
verPatch = devMatch[3];
|
||||||
|
verDev = devMatch[4];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let packages = ["taler-util", "taler-wallet-core", "taler-harness", "taler-wallet-cli"];
|
||||||
|
|
||||||
|
for (const pkg of packages) {
|
||||||
|
const p = `packages/${pkg}/package.json`;
|
||||||
|
const data = JSON.parse(fs.readFileSync(p));
|
||||||
|
console.log(p, data.version);
|
||||||
|
if (!dry) {
|
||||||
|
data.version = requestedVersion;
|
||||||
|
fs.writeFileSync(p, JSON.stringify(data));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
const p = "packages/taler-wallet-webextension/manifest-common.json"
|
||||||
|
const data = JSON.parse(fs.readFileSync(p));
|
||||||
|
console.log("manifest version", data.version);
|
||||||
|
console.log("manifest version_name", data.version_name);
|
||||||
|
// In manifest.json, we transform x.y.z-dev.n info x.y.z.n.
|
||||||
|
// It's necessary because browsers only allow decimals and dots
|
||||||
|
// in that field.
|
||||||
|
let dottedVer = undefined;
|
||||||
|
if (verDev != null) {
|
||||||
|
dottedVer = `${verMajor}.${verMinor}.${verPatch}.${verDev}`;
|
||||||
|
} else {
|
||||||
|
dottedVer = `${verMajor}.${verMinor}.${verPatch}`;
|
||||||
|
}
|
||||||
|
console.log("new manifest version", dottedVer);
|
||||||
|
if (!dry) {
|
||||||
|
data.version = dottedVer;
|
||||||
|
data.version_name = requestedVersion;
|
||||||
|
fs.writeFileSync(p, JSON.stringify(data));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user