rcz
Resultium commit standardization library. Supported by NodeJS v14 and above
Installation
- Set up @resultium registry in an .npmrc file in your home directory with following content:
@resultium:registry=https://git.resultium.net/api/packages/public/npm/ - Install the package using npm
npm install -g @resultium/rcz
Getting started
- Make changes to your git initialized project
- Run
rcz commitin the root directory- if you wish to sign your commit use
--signoption
- if you wish to sign your commit use
- Answer all the questions
- Push to remote
Configuration
You can create an .rczrc, .rczrc.json or rcz.config.json file in your root directory and specify available scopes and commit types
{
"scopes": ["forms"],
"types": [
{
"label": "chore",
"value": "chore",
"hint": "a routine action"
}
],
"autoSignCommits": false,
"autoSignReleases": true
}
On-release event
You are also able to create an onRelease event file, that is going to run before creation of a git tag and a release commit, when rcz release is run. The file is to be named .rczrc.onrelease.js. A sample can be seen below.
const fs = require("fs"); // Require fileSystem
const packageFile = fs.readFileSync("./package.json").toString(); // Get package.json contents from the current working directory
const newPackageFile = packageFile.replace(
/"version": "[0-9]+.[0-9]+.[0-9]+"/,
`"version": "${__NEW_VERSION__}"`
); // Use RegExp to replace package.json version
fs.writeFileSync("./package.json", newPackageFile); // Write to package.json file its new content
const indexFile = fs.readFileSync("./src/index.ts").toString(); // Get index.ts file from source code directory
const newIndexFile = indexFile.replace(/version\("[0-9]+\.[0-9]+\.[0-9]+"\)/); // Replace class function call content with the new version
fs.writeFileSync("./src/index.ts", newIndexFile); // Write to source code index file
In your onRelease file you are provided with __NEW_VERSION__ constant string which is the new version submitted in rcz release and __IS_SIGNED__ constant which is a boolean telling whether the release (it's commit and tag) is going to be signed.
Bear in mind, this script is going to be executed through eval() with no sanitation, be careful with whatever you write.
Post-release event
Same as for onRelease you can also create a postRelease file which gets run after the tag and commit get created. Same as for onRelease file you are provided with __NEW_VERSION__ and __IS_SIGNED__