diff --git a/MAINTENANCE.md b/MAINTENANCE.md new file mode 100644 index 0000000..fa5fa36 --- /dev/null +++ b/MAINTENANCE.md @@ -0,0 +1,9 @@ +# Maintenance instructions + +## Releasing a new version + +A new version can be released by running the [Create New Version](https://github.com/bcc-code/directus-schema-sync/actions/workflows/create-version.yml) workflow from GitHub. + +This will update the version in the `package.json`, push a Git commit and tag, and create a new [release](https://github.com/bcc-code/directus-schema-sync/releases) in GitHub. + +Maintainers can publish this release, after which the new version will be pushed to npm with the `latest` tag. diff --git a/package.json b/package.json index 378d2fd..b454d3c 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,8 @@ "link": "directus-extension link", "pre-test": "tsc -p tsconfig.test.json", "test": "npm run pre-test && node --test dist-test/", - "create-version": "node ./scripts/version.cjs" + "create-version": "node ./scripts/version.cjs", + "release-channel": "node ./scripts/release-channel.js" }, "devDependencies": { "@directus/extensions-sdk": "10.1.11", diff --git a/scripts/release-channel.js b/scripts/release-channel.js new file mode 100644 index 0000000..70bbc90 --- /dev/null +++ b/scripts/release-channel.js @@ -0,0 +1,19 @@ +// Given a version, figure out what the release channel is so that we can publish to the correct +// channel on npm. +// Copied from https://github.com/tailwindlabs/heroicons/blob/eee05eb77af6cdedfb97f128d1998773fc984b28/scripts/release-channel.js +// +// E.g.: +// +// 1.2.3 -> latest (default) +// 0.0.0-insiders.ffaa88 -> insiders +// 4.1.0-alpha.4 -> alpha + +let version = + process.argv[2] || process.env.npm_package_version || require("../package.json").version; + +let match = /\d+\.\d+\.\d+-(.*)\.\d+/g.exec(version); +if (match) { + console.log(match[1]); +} else { + console.log("latest"); +} \ No newline at end of file