Publish your npm packages.
Used by:
[!WARNING] Don't use this: it's only meant for Vike's team & friends. That said, feel free to fork this project.
- Generates
CHANGELOG.md
. - Supports monorepos.
- Generates Git release tags.
- Pre-release support. (For example
0.4.177-commit-ff3d6cd
.) - Asks for confirmation before publishing and shows a preview of the changes made to
package.json
andCHANGELOG.md
, enabling you to double check before publishing.
// package.json
{
"name": "my-package",
"version": "0.1.2",
"scripts": {
"build": "echo 'Some build step (release-me runs the build script before releasing)'"
},
"devDependencies": {
"@brillout/release-me": "^0.4.0"
}
}
That's all @brillout/release-me
needs: you can now use pnpm exec release-me patch
to release a new patch version.
It's optional but we recommend adding package.json#scripts
:
// package.json
{
"name": "my-package",
"version": "0.1.2",
"scripts": {
"build": "echo 'Some build step (release-me runs the build script before releasing)'"
+ "release": "release-me patch",
+ "release:minor": "release-me minor",
+ "release:major": "release-me major",
+ "release:commit": "release-me commit"
},
"devDependencies": {
"@brillout/release-me": "^0.4.0"
}
}
It's a ubiquitous convention: it communicates how new versions are released to anyone who's discovering your project.
For proper CHANGELOG.md
generation make sure to follow Conventional Commits.
In other words:
-
fix:
=> bug fix or some polishing (e.g. improved error message). -
feat:
=> new feature, i.e. new functionality.
For breaking changes append BREAKING CHANGE:
to the commit message:
fix: make someFunction() take an argument object
BREAKING CHANGE: Replace `someFunction(someArg)` with `someFunction({ someArg })`.
[!NOTE] When introducing a breaking change, in order to respect the semver convention, don't
pnpm exec release-me patch
but dopnpm exec release-me major
instead (orpnpm exec release-me minor
if your package's version is0.y.z
).
Release a new patch/minor/major version:
pnpm exec release-me patch
pnpm exec release-me minor
pnpm exec release-me major
[!NOTE] We recommend defining
package.json#scripts
(see above) and use$ pnpm run
instead of$ pnpm exec
.
Release specific version:
pnpm exec release-me v0.1.2
You can also publish pre-releases such as 0.4.177-commit-ff3d6cd
:
pnpm exec release-me commit