diff --git a/.ci/prepare-version.js b/.ci/prepare-version.js new file mode 100755 index 0000000..b11c6b9 --- /dev/null +++ b/.ci/prepare-version.js @@ -0,0 +1,62 @@ +#!/usr/bin/env node + +const fs = require("fs"); +const cp = require("child_process"); +const ARGUMENTS = process.argv.slice(2); + +const versions = { + patch: "patch", + minor: "minor", + major: "major" +}; + +if (!ARGUMENTS[0]) { + console.log( + [ + "esy version:prepare, prepare a new fnm version", + "", + "Usage:", + "------", + "", + " esy version:prepare patch - to prepare a patch version (X.X.X+1)", + " esy version:prepare minor - to prepare a minor version (X.X+1.0)", + " esy version:prepare major - to prepare a major version (X+1.0.0)" + ].join("\n") + ); + process.exit(1); +} +const versionType = versions[ARGUMENTS[0].toLowerCase()]; +if (!versionType) { + throw new Error("Version (argument 0) must be one of major/minor/patch."); +} + +const pkgJson = JSON.parse(fs.readFileSync("./package.json", "utf8")); +pkgJson.version = changeVersion(versionType, pkgJson.version); +fs.writeFileSync("./package.json", JSON.stringify(pkgJson, null, 2)); + +exec("git fetch origin"); +exec("esy update-fnm-package"); +exec("esy verify-fnm-package"); +exec("esy build"); +exec("./docs/record_screen.sh"); +exec(`esy changelog`, { NEXT_VERSION: `v${pkgJson.version}` }); + +function exec(command, env) { + console.log(`$ ${command}`); + return cp.execSync(command, { + stdio: "inherit", + env: { ...process.env, ...env } + }); +} + +function changeVersion(type, version) { + const [major, minor, patch] = version.split(".").map(x => parseFloat(x, 10)); + switch (type) { + case "patch": + return [major, minor, patch + 1].join("."); + case "minor": + return [major, minor + 1, 0].join("."); + case "major": + return [major + 1, 0, 0].join("."); + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 82952c5..7dd1c89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +## v1.6.2 (2019-03-04) + +#### Bugfix 🐛 + +- [#72](https://github.com/Schniz/fnm/pull/72) Fix alias paths ([@Schniz](https://github.com/Schniz)) + +#### Documentation 📝 + +- [#70](https://github.com/Schniz/fnm/pull/70) Fix installation script parameters docs ([@Schniz](https://github.com/Schniz)) + +#### Committers: 1 + +- Gal Schlezinger ([@Schniz](https://github.com/Schniz)) + ## v1.6.1 (2019-02-26) #### Bugfix 🐛 diff --git a/docs/fnm.svg b/docs/fnm.svg index 79cb951..40f8a59 100644 --- a/docs/fnm.svg +++ b/docs/fnm.svg @@ -1 +1 @@ -evaleval`fnmeval`fnmenv`ffnfnmfnm--version1.6.1catcat.nvmrc10.9.0fnminstallLookingfornodev10.9.0fordarwinx64Downloadinghttps://nodejs.org/dist/v10.9.0/node-v10.9.0-darwin-x64.tar.xzto~/.fnm/downloads/v10.9.0.tar.xzExtracting~/.fnm/downloads/v10.9.0.tar.xzto~/.fnm/node-versions/v10.9.0fnmuseLinking~/.fnm/currentto~/.fnm/node-versions/v10.9.0/installationUsingv10.9.0nodenode-vv10.9.0eevevaeval`eval`feval`fneval`fnmeeval`fnmeneval`fnmenvfnm-fnm--fnm--vfnm--vefnm--verfnm--versfnm--versifnm--versioccacat.cat.ncat.nvcat.nvmcat.nvmrfnmifnminfnminsfnminstfnminstafnmufnmusnnonodnode- \ No newline at end of file +evaleval`fnmeval`fnmenv`ffnfnmfnm--version1.6.2catcat.nvmrc10.9.0fnminstallLookingfornodev10.9.0fordarwinx64Downloadinghttps://nodejs.org/dist/v10.9.0/node-v10.9.0-darwin-x64.tar.xzto~/.fnm/downloads/v10.9.0.tar.xzExtracting~/.fnm/downloads/v10.9.0.tar.xzto~/.fnm/node-versions/v10.9.0fnmuseLinking~/.fnm/currentto~/.fnm/node-versions/v10.9.0/installationUsingv10.9.0node-vv10.9.0eevevaeval`eval`feval`fneval`fnmeeval`fnmeneval`fnmenvfnm-fnm--fnm--vfnm--vefnm--verfnm--versfnm--versifnm--versioccacat.cat.ncat.nvcat.nvmcat.nvmrfnmifnminfnminsfnminstfnminstafnminstalfnmusnnonodnodenode- \ No newline at end of file diff --git a/library/Fnm__Package.re b/library/Fnm__Package.re index d5b8b45..8bb152b 100644 --- a/library/Fnm__Package.re +++ b/library/Fnm__Package.re @@ -1 +1 @@ -let version = "1.6.1"; +let version = "1.6.2"; diff --git a/package.json b/package.json index 9e0695b..eabe6a9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fnm", - "version": "1.6.1", + "version": "1.6.2", "description": "Fast and simple Node.js version manager, built in ReasonML", "esy": { "build": "pesy", @@ -71,7 +71,8 @@ "bootstrap": ".ci/bootstrap", "test": "esy x TestFnm.exe", "fmt": "bash -c 'refmt --in-place {library,executable,test}/*.re'", - "changelog": "bash -c 'esy lerna-changelog --from=v1.0.0 > CHANGELOG.md'" + "changelog": "bash -c 'esy lerna-changelog --from=v1.0.0 --next-version=${NEXT_VERSION-Unreleased} > CHANGELOG.md'", + "version:prepare": "node ./.ci/prepare-version.js" }, "license": "GPL-3.0", "dependencies": {