Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/betterwrite/generi
:pencil: A Modern Node.js Versioning Generator
https://github.com/betterwrite/generi
changelog cli generator git lerna monorepo nodejs npm typescript version version-control versioning
Last synced: 19 days ago
JSON representation
:pencil: A Modern Node.js Versioning Generator
- Host: GitHub
- URL: https://github.com/betterwrite/generi
- Owner: betterwrite
- License: mit
- Created: 2021-12-22T16:11:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T12:24:37.000Z (over 1 year ago)
- Last Synced: 2024-04-27T02:01:18.101Z (7 months ago)
- Topics: changelog, cli, generator, git, lerna, monorepo, nodejs, npm, typescript, version, version-control, versioning
- Language: TypeScript
- Homepage:
- Size: 247 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Generi
A Versioning Generator for JavaScript Projects.
- ✅ Easy CL
- ✅ Monorepo support with [Lerna](https://lerna.js.org/)
- ✅ Release support with [Github CLI](https://cli.github.com/)### 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 <-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.
### generi.json
##### `silent` Default: `false`
Do not emit any message in console
##### `commits` Default: `"none"`
Default format content in CHANGELOG.md
Options: `none` | [`conventional-commits`](https://www.conventionalcommits.org/en/v1.0.0/)
##### `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: `undefined`
A URL to git repository for sha256 open link
##### `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