release-it
Advanced tools
Comparing version 15.10.1 to 15.10.2
{ | ||
"name": "release-it", | ||
"version": "15.10.1", | ||
"description": "Generic CLI tool to automate versioning and package publishing related tasks.", | ||
"version": "15.10.2", | ||
"description": "Generic CLI tool to automate versioning and package publishing-related tasks.", | ||
"keywords": [ | ||
@@ -53,2 +53,3 @@ "build", | ||
"format": "prettier --write \"{lib,test}/**/*.js\"", | ||
"docs": "remark README.md 'docs/**/*.md' '.github/*.md' -o", | ||
"test": "ava --no-worker-threads", | ||
@@ -70,5 +71,5 @@ "release": "./bin/release-it.js" | ||
"git-url-parse": "13.1.0", | ||
"globby": "13.1.3", | ||
"globby": "13.1.4", | ||
"got": "12.6.0", | ||
"inquirer": "9.1.5", | ||
"inquirer": "9.2.0", | ||
"is-ci": "3.0.1", | ||
@@ -85,3 +86,3 @@ "issue-parser": "6.0.0", | ||
"proxy-agent": "5.0.0", | ||
"semver": "7.3.8", | ||
"semver": "7.5.0", | ||
"shelljs": "0.8.5", | ||
@@ -96,3 +97,3 @@ "update-notifier": "6.0.2", | ||
"ava": "5.2.0", | ||
"eslint": "8.37.0", | ||
"eslint": "8.39.0", | ||
"eslint-config-prettier": "8.8.0", | ||
@@ -104,5 +105,7 @@ "eslint-plugin-ava": "14.0.0", | ||
"mock-stdio": "1.0.3", | ||
"nock": "13.3.0", | ||
"prettier": "2.8.7", | ||
"sinon": "15.0.3", | ||
"nock": "13.3.1", | ||
"prettier": "2.8.8", | ||
"remark-cli": "11.0.0", | ||
"remark-preset-webpro": "0.0.2", | ||
"sinon": "15.0.4", | ||
"strip-ansi": "7.0.1" | ||
@@ -112,3 +115,8 @@ }, | ||
"node": ">=14.9" | ||
}, | ||
"remarkConfig": { | ||
"plugins": [ | ||
"preset-webpro" | ||
] | ||
} | ||
} |
269
README.md
# Release It! 🚀 | ||
🚀 Generic CLI tool to automate versioning and package publishing related tasks: | ||
🚀 Generic CLI tool to automate versioning and package publishing-related tasks: | ||
@@ -8,10 +8,10 @@ <img align="right" src="./docs/assets/release-it.svg?raw=true" height="280"> | ||
- Bump version (in e.g. `package.json`) | ||
- [Git commit, tag, push](#git) | ||
- Execute any (test or build) commands using [hooks](#hooks) | ||
- [Create release at GitHub](#github-releases) or [GitLab](#gitlab-releases) | ||
- [Generate changelog](#changelog) | ||
- [Publish to npm](#publish-to-npm) | ||
- [Manage pre-releases](#manage-pre-releases) | ||
- Extend with [plugins](#plugins) | ||
- Release from any [CI/CD environment](./docs/ci.md) | ||
- [Git commit, tag, push][1] | ||
- Execute any (test or build) commands using [hooks][2] | ||
- [Create release at GitHub][3] or [GitLab][4] | ||
- [Generate changelog][5] | ||
- [Publish to npm][6] | ||
- [Manage pre-releases][7] | ||
- Extend with [plugins][8] | ||
- Release from any [CI/CD environment][9] | ||
@@ -21,4 +21,3 @@ Use release-it for version management and publish to anywhere with its versatile configuration, a powerful plugin | ||
[![Action Status](https://github.com/release-it/release-it/workflows/Cross-OS%20Tests/badge.svg)](https://github.com/release-it/release-it/actions) | ||
[![npm version](https://badge.fury.io/js/release-it.svg)](https://www.npmjs.com/package/release-it) | ||
[![Action Status][11]][10] [![npm version][13]][12] | ||
@@ -64,6 +63,15 @@ ## Installation | ||
## Experimental: knowledge base | ||
You might want to ask your questions in the [Release It! knowledge base][14] (powered by OpenAI and [7-docs][15]). This | ||
is an experimental knowledge base, answers may be incorrect. | ||
## Yarn | ||
Using Yarn? Please see the [npm section on Yarn](./docs/npm.md#yarn). | ||
Using Yarn? Please see the [npm section on Yarn][16]. | ||
## Monorepos | ||
Using a monorepo? Please see this [monorepo recipe][17]. | ||
## Global Installation | ||
@@ -78,15 +86,12 @@ | ||
Want to use release-it with GitHub Actions to fully automate the whole process? Enjoy this great walk-through: | ||
[How to use GitHub Actions & Release-It to Easily Release Your Code](https://www.youtube.com/watch?v=7pBcuT7j_A0) (by | ||
[David from Kodaps](https://twitter.com/KodapsAcademy)). | ||
Want to use release-it with GitHub Actions to fully automate the whole process? Enjoy this great walk-through: [How to | ||
use GitHub Actions & Release-It to Easily Release Your Code][18] (by [David from Kodaps][19]). | ||
→ See [Continuous Integration environments](./docs/ci.md) for more details. | ||
→ See [Continuous Integration environments][9] for more details. | ||
## Configuration | ||
Out of the box, release-it has sane defaults, and [plenty of options](./config/release-it.json) to configure it. Most | ||
projects use a `.release-it.json` file in the project root, or a `release-it` property in `package.json`. | ||
Out of the box, release-it has sane defaults, and [plenty of options][20] to configure it. Most projects use a | ||
`.release-it.json` file in the project root, or a `release-it` property in `package.json`. | ||
→ See [Configuration](./docs/configuration.md) for more details. | ||
Here's a quick example `.release-it.json`: | ||
@@ -105,2 +110,4 @@ | ||
→ See [Configuration][21] for more details. | ||
## Interactive vs. CI mode | ||
@@ -113,3 +120,3 @@ | ||
By using the `--ci` option, the process is fully automated without prompts. The configured tasks will be executed as | ||
demonstrated in the first animation above. On a Continuous Integration (CI) environment, this non-interactive mode is | ||
demonstrated in the first animation above. In a Continuous Integration (CI) environment, this non-interactive mode is | ||
activated automatically. | ||
@@ -123,12 +130,11 @@ | ||
1. For projects with a `package.json`, its `version` will be used (see [npm](./docs/npm.md) to skip this). | ||
2. Otherwise, release-it uses the latest Git tag to determine which version should be released. | ||
3. As a last resort, `0.0.0` will be used as the latest version. | ||
1. For projects with a `package.json`, its `version` will be used (see [npm][22] to skip this). | ||
2. Otherwise, release-it uses the latest Git tag to determine which version should be released. | ||
3. As a last resort, `0.0.0` will be used as the latest version. | ||
Alternatively, a plugin can be used to override this (e.g. to manage a `VERSION` or `composer.json` file): | ||
- [@release-it/bumper](https://github.com/release-it/bumper) to read from or bump the version in any file | ||
- [@release-it/conventional-changelog](https://github.com/release-it/conventional-changelog) to get a recommended bump | ||
based on commit messages | ||
- [release-it-calver-plugin](https://github.com/casmith/release-it-calver-plugin) to use CalVer (Calendar Versioning) | ||
- [@release-it/bumper][23] to read from or bump the version in any file | ||
- [@release-it/conventional-changelog][24] to get a recommended bump based on commit messages | ||
- [release-it-calver-plugin][25] to use CalVer (Calendar Versioning) | ||
@@ -142,3 +148,3 @@ Add the `--release-version` flag to print the **next** version without releasing anything. | ||
→ See [Git](./docs/git.md) for more details. | ||
→ See [Git][26] for more details. | ||
@@ -148,21 +154,19 @@ ## GitHub Releases | ||
GitHub projects can have releases attached to Git tags, containing release notes and assets. There are two ways to add | ||
[GitHub releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) in your | ||
release-it flow: | ||
[GitHub releases][27] in your release-it flow: | ||
1. Automated (requires a `GITHUB_TOKEN`) | ||
2. Manual (using the GitHub web interface with pre-populated fields) | ||
1. Automated (requires a `GITHUB_TOKEN`) | ||
2. Manual (using the GitHub web interface with pre-populated fields) | ||
→ See [GitHub Releases](./docs/github-releases.md) for more details. | ||
→ See [GitHub Releases][28] for more details. | ||
## GitLab Releases | ||
GitLab projects can have releases attached to Git tags, containing release notes and assets. To automate | ||
[GitLab releases](https://docs.gitlab.com/ce/user/project/releases/): | ||
GitLab projects can have releases attached to Git tags, containing release notes and assets. To automate [GitLab | ||
releases][29]: | ||
- Configure `gitlab.release: true` | ||
- Obtain a [personal access token](https://gitlab.com/profile/personal_access_tokens) (release-it only needs the "api" | ||
scope). | ||
- Make sure the token is [available as an environment variable](./docs/environment-variables.md). | ||
- Obtain a [personal access token][30] (release-it only needs the "api" scope). | ||
- Make sure the token is [available as an environment variable][31]. | ||
→ See [GitLab Releases](./docs/gitlab-releases.md) for more details. | ||
→ See [GitLab Releases][32] for more details. | ||
@@ -174,6 +178,6 @@ ## Changelog | ||
The [default command](./config/release-it.json) is based on `git log ...`. This setting (`git.changelog`) can be | ||
overridden. To further customize the release notes for the GitHub or GitLab release, there's `github.releaseNotes` or | ||
`gitlab.releaseNotes`. Make sure any of these commands output the changelog to `stdout`. Note that release-it by default | ||
is agnostic to commit message conventions. Plugins are available for: | ||
The [default command][20] is based on `git log ...`. This setting (`git.changelog`) can be overridden. To further | ||
customize the release notes for the GitHub or GitLab release, there's `github.releaseNotes` or `gitlab.releaseNotes`. | ||
Make sure any of these commands output the changelog to `stdout`. Note that release-it by default is agnostic to commit | ||
message conventions. Plugins are available for: | ||
@@ -185,4 +189,6 @@ - GitHub and GitLab Releases | ||
→ See [Changelog](./docs/changelog.md) for more details. | ||
To print the changelog without releasing anything, add the `--changelog` flag. | ||
→ See [Changelog][33] for more details. | ||
## Publish to npm | ||
@@ -193,3 +199,3 @@ | ||
→ See [Publish to npm](./docs/npm.md) for more details. | ||
→ See [Publish to npm][22] for more details. | ||
@@ -199,6 +205,6 @@ ## Manage pre-releases | ||
With release-it, it's easy to create pre-releases: a version of your software that you want to make available, while | ||
it's not in the stable semver range yet. Often "alpha", "beta", and "rc" (release candidate) are used as identifier for | ||
it's not in the stable semver range yet. Often "alpha", "beta", and "rc" (release candidate) are used as identifiers for | ||
pre-releases. An example pre-release version is `2.0.0-beta.0`. | ||
→ See [Manage pre-releases](./docs/pre-releases.md) for more details. | ||
→ See [Manage pre-releases][34] for more details. | ||
@@ -209,3 +215,3 @@ ## Update or re-run existing releases | ||
This may be helpful in cases where the version was already incremented. Here's a few example scenarios: | ||
This may be helpful in cases where the version was already incremented. Here are a few example scenarios: | ||
@@ -234,4 +240,4 @@ - To update or publish a (draft) GitHub Release for an existing Git tag. | ||
Note that hooks like `after:git:release` will not run when either the `git push` failed, or when it is configured not to | ||
be executed (e.g. `git.push: false`). See [execution order](./docs/plugins.md#execution-order) for more details on | ||
execution order of plugin lifecycle methods. | ||
be executed (e.g. `git.push: false`). See [execution order][35] for more details on execution order of plugin lifecycle | ||
methods. | ||
@@ -253,4 +259,3 @@ All commands can use configuration variables (like template strings). An array of commands can also be provided, they | ||
The variables can be found in the [default configuration](./config/release-it.json). Additionally, the following | ||
variables are exposed: | ||
The variables can be found in the [default configuration][20]. Additionally, the following variables are exposed: | ||
@@ -286,11 +291,7 @@ ```text | ||
→ See [Dry Runs](./docs/dry-runs.md) for more details. | ||
→ See [Dry Runs][36] for more details. | ||
To print the next version without releasing anything, add the `--release-version` flag. | ||
To print the changelog without releasing anything, add the `--changelog` flag. | ||
## Troubleshooting & debugging | ||
- With `release-it --verbose` (or `-V`), release-it prints the output of every user-defined [hook](#hooks). | ||
- With `release-it --verbose` (or `-V`), release-it prints the output of every user-defined [hook][2]. | ||
- With `release-it -VV`, release-it also prints the output of every internal command. | ||
@@ -305,46 +306,45 @@ - Use `NODE_DEBUG=release-it:* release-it [...]` to print configuration and more error details. | ||
| Plugin | Description | | ||
| -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | ||
| [@release-it/bumper](https://github.com/release-it/bumper) | Read & write the version from/to any file | | ||
| [@release-it/conventional-changelog](https://github.com/release-it/conventional-changelog) | Provides recommended bump, conventional-changelog, and updates `CHANGELOG.md` | | ||
| [@release-it/keep-a-changelog](https://github.com/release-it/keep-a-changelog) | Maintain CHANGELOG.md using the Keep a Changelog standards | | ||
| [@release-it-plugins/lerna-changelog](https://github.com/release-it-plugins/lerna-changelog) | Integrates lerna-changelog into the release-it pipeline | | ||
| [@release-it-plugins/workspaces](https://github.com/release-it-plugins/workspaces) | Releases each of your projects configured workspaces | | ||
| [release-it-calver-plugin](https://github.com/casmith/release-it-calver-plugin) | Enables Calendar Versioning (calver) with release-it | | ||
| [@grupoboticario/news-fragments](https://github.com/grupoboticario/news-fragments) | An easy way to generate your changelog file | | ||
| [@j-ulrich/release-it-regex-bumper](https://github.com/j-ulrich/release-it-regex-bumper) | Regular expression based version read/write plugin for release-it | | ||
| Plugin | Description | | ||
| ----------------------------------------- | ----------------------------------------------------------------------------- | | ||
| [@release-it/bumper][23] | Read & write the version from/to any file | | ||
| [@release-it/conventional-changelog][24] | Provides recommended bump, conventional-changelog, and updates `CHANGELOG.md` | | ||
| [@release-it/keep-a-changelog][37] | Maintain CHANGELOG.md using the Keep a Changelog standards | | ||
| [@release-it-plugins/lerna-changelog][38] | Integrates lerna-changelog into the release-it pipeline | | ||
| [@release-it-plugins/workspaces][39] | Releases each of your projects configured workspaces | | ||
| [release-it-calver-plugin][25] | Enables Calendar Versioning (calver) with release-it | | ||
| [@grupoboticario/news-fragments][40] | An easy way to generate your changelog file | | ||
| [@j-ulrich/release-it-regex-bumper][41] | Regular expression based version read/write plugin for release-it | | ||
Internally, release-it uses its own plugin architecture (for Git, GitHub, GitLab, npm). | ||
→ See all [release-it plugins on npm](https://www.npmjs.com/search?q=keywords:release-it-plugin). | ||
→ See all [release-it plugins on npm][42]. | ||
→ See [plugins](./docs/plugins.md) for documentation to write plugins. | ||
→ See [plugins][43] for documentation to write plugins. | ||
## Use release-it programmatically | ||
While mostly used as a CLI tool, release-it can be used as a dependency to integrate in your own scripts. See | ||
[use release-it programmatically](./docs/recipes/programmatic.md) for example code. | ||
While mostly used as a CLI tool, release-it can be used as a dependency to integrate in your own scripts. See [use | ||
release-it programmatically][44] for example code. | ||
## Example projects using release-it | ||
- [axios/axios](https://github.com/axios/axios) | ||
- [blockchain/blockchain-wallet-v4-frontend](https://github.com/blockchain/blockchain-wallet-v4-frontend) | ||
- [callstack/react-native-paper](https://github.com/callstack/react-native-paper) | ||
- [ember-cli/ember-cli](https://github.com/ember-cli/ember-cli) | ||
- [js-cookie/js-cookie](https://github.com/js-cookie/js-cookie) | ||
- [metalsmith/metalsmith](https://github.com/metalsmith/metalsmith) | ||
- [mozilla/readability](https://github.com/mozilla/readability) | ||
- [pahen/madge](https://github.com/pahen/madge) | ||
- [redis/node-redis](https://github.com/redis/node-redis) | ||
- [reduxjs/redux](https://github.com/reduxjs/redux) | ||
- [saleor/saleor](https://github.com/saleor/saleor) | ||
- [Semantic-Org/Semantic-UI-React](https://github.com/Semantic-Org/Semantic-UI-React) | ||
- [shipshapecode/shepherd](https://github.com/shipshapecode/shepherd) | ||
- [StevenBlack/hosts](https://github.com/StevenBlack/hosts) | ||
- [swagger-api/swagger-ui](https://github.com/swagger-api/swagger-ui) + | ||
[swagger-editor](https://github.com/swagger-api/swagger-editor) | ||
- [tabler/tabler](https://github.com/tabler/tabler) + [tabler-icons](https://github.com/tabler/tabler-icons) | ||
- [youzan/vant](https://github.com/youzan/vant) | ||
- [Repositories that depend on release-it](https://github.com/release-it/release-it/network/dependents) | ||
- GitHub search for [path:\*\*/.release-it.json](https://github.com/search?q=path%3A**%2F.release-it.json&type=code) | ||
- [axios/axios][45] | ||
- [blockchain/blockchain-wallet-v4-frontend][46] | ||
- [callstack/react-native-paper][47] | ||
- [ember-cli/ember-cli][48] | ||
- [js-cookie/js-cookie][49] | ||
- [metalsmith/metalsmith][50] | ||
- [mozilla/readability][51] | ||
- [pahen/madge][52] | ||
- [redis/node-redis][53] | ||
- [reduxjs/redux][54] | ||
- [saleor/saleor][55] | ||
- [Semantic-Org/Semantic-UI-React][56] | ||
- [shipshapecode/shepherd][57] | ||
- [StevenBlack/hosts][58] | ||
- [swagger-api/swagger-ui][59] + [swagger-editor][60] | ||
- [tabler/tabler][61] + [tabler-icons][62] | ||
- [youzan/vant][63] | ||
- [Repositories that depend on release-it][64] | ||
- GitHub search for [path:\*\*/.release-it.json][65] | ||
@@ -354,14 +354,83 @@ ## Legacy Node.js | ||
The latest major version is v15, supporting Node.js 14 and up (as Node.js v12 is EOL). Use release-it v14 for | ||
environments running Node.js v10 and v12. Also see [CHANGELOG.md](./CHANGELOG.md). | ||
environments running Node.js v10 and v12. Also see [CHANGELOG.md][66]. | ||
## Links | ||
- See [CHANGELOG.md](./CHANGELOG.md) for major/breaking updates, and | ||
[releases](https://github.com/release-it/release-it/releases) for a detailed version history. | ||
- To **contribute**, please read [CONTRIBUTING.md](./.github/CONTRIBUTING.md) first. | ||
- Please [open an issue](https://github.com/release-it/release-it/issues/new) if anything is missing or unclear in this | ||
documentation. | ||
- See [CHANGELOG.md][66] for major/breaking updates, and [releases][67] for a detailed version history. | ||
- To **contribute**, please read [CONTRIBUTING.md][68] first. | ||
- Please [open an issue][69] if anything is missing or unclear in this documentation. | ||
## License | ||
[MIT](./LICENSE) | ||
[MIT][70] | ||
[1]: #git | ||
[2]: #hooks | ||
[3]: #github-releases | ||
[4]: #gitlab-releases | ||
[5]: #changelog | ||
[6]: #publish-to-npm | ||
[7]: #manage-pre-releases | ||
[8]: #plugins | ||
[9]: ./docs/ci.md | ||
[10]: https://github.com/release-it/release-it/actions | ||
[11]: https://github.com/release-it/release-it/workflows/Cross-OS%20Tests/badge.svg | ||
[12]: https://www.npmjs.com/package/release-it | ||
[13]: https://badge.fury.io/js/release-it.svg | ||
[14]: https://release-it.deno.dev | ||
[15]: https://github.com/7-docs/7-docs | ||
[16]: ./docs/npm.md#yarn | ||
[17]: ./docs/recipes/monorepo.md | ||
[18]: https://www.youtube.com/watch?v=7pBcuT7j_A0 | ||
[19]: https://twitter.com/KodapsAcademy | ||
[20]: ./config/release-it.json | ||
[21]: ./docs/configuration.md | ||
[22]: ./docs/npm.md | ||
[23]: https://github.com/release-it/bumper | ||
[24]: https://github.com/release-it/conventional-changelog | ||
[25]: https://github.com/casmith/release-it-calver-plugin | ||
[26]: ./docs/git.md | ||
[27]: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases | ||
[28]: ./docs/github-releases.md | ||
[29]: https://docs.gitlab.com/ce/user/project/releases/ | ||
[30]: https://gitlab.com/profile/personal_access_tokens | ||
[31]: ./docs/environment-variables.md | ||
[32]: ./docs/gitlab-releases.md | ||
[33]: ./docs/changelog.md | ||
[34]: ./docs/pre-releases.md | ||
[35]: ./docs/plugins.md#execution-order | ||
[36]: ./docs/dry-runs.md | ||
[37]: https://github.com/release-it/keep-a-changelog | ||
[38]: https://github.com/release-it-plugins/lerna-changelog | ||
[39]: https://github.com/release-it-plugins/workspaces | ||
[40]: https://github.com/grupoboticario/news-fragments | ||
[41]: https://github.com/j-ulrich/release-it-regex-bumper | ||
[42]: https://www.npmjs.com/search?q=keywords:release-it-plugin | ||
[43]: ./docs/plugins.md | ||
[44]: ./docs/recipes/programmatic.md | ||
[45]: https://github.com/axios/axios | ||
[46]: https://github.com/blockchain/blockchain-wallet-v4-frontend | ||
[47]: https://github.com/callstack/react-native-paper | ||
[48]: https://github.com/ember-cli/ember-cli | ||
[49]: https://github.com/js-cookie/js-cookie | ||
[50]: https://github.com/metalsmith/metalsmith | ||
[51]: https://github.com/mozilla/readability | ||
[52]: https://github.com/pahen/madge | ||
[53]: https://github.com/redis/node-redis | ||
[54]: https://github.com/reduxjs/redux | ||
[55]: https://github.com/saleor/saleor | ||
[56]: https://github.com/Semantic-Org/Semantic-UI-React | ||
[57]: https://github.com/shipshapecode/shepherd | ||
[58]: https://github.com/StevenBlack/hosts | ||
[59]: https://github.com/swagger-api/swagger-ui | ||
[60]: https://github.com/swagger-api/swagger-editor | ||
[61]: https://github.com/tabler/tabler | ||
[62]: https://github.com/tabler/tabler-icons | ||
[63]: https://github.com/youzan/vant | ||
[64]: https://github.com/release-it/release-it/network/dependents | ||
[65]: https://github.com/search?q=path%3A**%2F.release-it.json&type=code | ||
[66]: ./CHANGELOG.md | ||
[67]: https://github.com/release-it/release-it/releases | ||
[68]: ./.github/CONTRIBUTING.md | ||
[69]: https://github.com/release-it/release-it/issues/new | ||
[70]: ./LICENSE |
231282
418
15
+ Addedglobby@13.1.4(transitive)
+ Addedinquirer@9.2.0(transitive)
+ Addedsemver@7.5.0(transitive)
- Removedglobby@13.1.3(transitive)
- Removedinquirer@9.1.5(transitive)
- Removedsemver@7.3.8(transitive)
Updatedglobby@13.1.4
Updatedinquirer@9.2.0
Updatedsemver@7.5.0