Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

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