generi
v2.0.4
Published
A Simple CHANGELOG.md Generator
Downloads
67
Maintainers
Readme
- ✅ Easy CLI
- ✅ Monorepo support with Lerna
- ✅ Release support with Github CLI
- ✅ Supports Node v20+
Install
npm i -g generi or yarn global add generi
Usage
generi init
Init generi.json configuration, and, if necessary, a git project
generi log <target> <-p prerelease>
Generate CHANGELOG.md and the necessary contents
generi log patch 0.1.0 >> 0.1.1
generi log minor 0.1.0 >> 0.2.0
generi log major 0.1.0 >> 1.0.0
generi log prepatch 0.1.0 >> 0.1.1-beta.0
generi log preminor 0.1.0 >> 0.2.0-beta.0
generi log premajor 0.1.0 >> 1.0.0-beta.0
generi log premajor -p alpha 0.1.0 >> 1.0.0-alpha.0
generi revert
Revert generi log last command
Monorepo
Monorepo versions may depend on external tools. Given this, Generi supports lerna workspaces, using the command lerna version before creating the changelog. In other setups, we recommend disabling the tag and version options.
Runner
Use generi in .js|.ts files programatically
import * as generi from 'generi/runner'
// ...
generi.init().then(async () => {
await generi.log('patch')
// ...
})Config
v1 (generi.json)
{
"silent": false,
"commits": "none",
"tag": true,
"version": true,
"push": false,
"publish": false,
"release": false,
"exclude": [" typo"],
"prerelease": "beta",
"packagePath": "package.json",
"lernaPath": "lerna.json"
}v2 (generi.config.ts)
export default {
silent: false,
commits: "none",
tag: true,
version: true,
push: false,
publish: false,
release: false,
exclude: [" typo"],
prerelease: "beta",
packagePath: "package.json",
lernaPath: "lerna.json"
};silent Default: false
Do not emit any message in console
commits Default: "none"
Default format content in CHANGELOG.md
Options: none | conventional-commits
tag Default: true
Release a git tag
version Default: true
Insert new version in package.json
push Default: false
Push commits in actually branch after log
publish Default: false
Publish(NPM) package in final log
repository Default: force
A URL to git repository for sha256 open link. 'ignore' option skip all repository loads and 'force' option get remote origin. repository https: charges normally.
exclude Default: [" typo"]
Invalidates commits in CHANGELOG.md that contain the considered options
prerelease Default: beta
Default 'canary', 'beta' or 'alpha' argument for prerelease log command
packagePath Default package.json
A custom package.json path. Example: ./foo/bar/package.json
lernaPath Default lerna.json
A custom lerna.json path. Example: ./foo/bar/lerna.json
