jrelease
v1.0.8
Published
Rewrite of Vercel's Release
Downloads
8
Readme
jrelease
Rewrite of Vercel's release (Generate changelogs with a single command)
Creates a new Github-release with changelog based on commits since previous release. Useful for when you don't want to manually bump package.json, create a Github-release in the browser and write the changelog yourself.
Really useful for when you have Github-actions triggered by new Github-releases :rocket:
Installation
npm i -g jrelease
Changes from Vercel's "Release"
- Windows support! (the reason for this package - I have been waiting too long for Vercel to merge a pull request)
- -l and --list has arrived, simply lists all commits since latest stable release, does not change anything
- General flow of stuff is changed - jrelease won't add, commit, or push anything until the end of the jrelease-process.
- Github device flow authentication, instead of web flow
- Removed overwriting of tags
- Pre-releases are not defined as a flag anymore but as semver types (prepatch, preminor, premajor, or simply pre - to increase a pre-release version)
- Use of annotated tags and "push --follow-tags", instead of git push && git push --tags (doesn't push all your local tags to remote, only annotated - read more about tags here)
Usage
jrelease <semver type>
Where semver types are one of the following:
major
: Incompatible API changes were introduced (breaking changes)minor
: Functionality was added in a backwards-compatible manner (new functionality, non breaking)patch
: Backwards-compatible bug fixes were applied (bug fixes, non breaking)premajor
: A pre-release of a major releasepreminor
: A pre-release of a minor releaseprepatch
: A pre-release of a patch releasepre
: Increase the previous pre-release (e.g 2.0.0-canary.1 -> 2.0.0-canary.2). If previuos release was not a pre-release, the pre command works as prepatch
Options
jrelease help
-l
,--list-commits
: Only lists commits since previous release (does not change anything)-P
,--publish
: Instead of creating and opening a draft, publish the release-u
,--show-url
: Show the release URL instead of opening it in the browser-t
,--previous-tag
: Manually specify previous release (changelog will start there)-p
,--pre-suffix
: Provide a suffix for a prerelease, "canary" is used as default-s
,--skip-questions
: Skip the questions and create a simple list without the semver-type headings-c
,--crlf
: do not temporarily set core.safecrlf to "false". (If you are not familliar with git config crlf settings, dont worry about this flag, it only supresses a usually useless warning)
Contributing
- Fork this repository to your own GitHub account and then clone it to your local device
- Uninstall the package if it's already installed:
npm uninstall -g jrelease
- Link the package to the global module directory:
npm link
- You can now use
jrelease
on the command line! - When you have done something cool or fixed something - Create a pull request
Credits
Thanks a lot to Vercel and Leo Lamprecht (@notquiteleo) who made the original package - I simply stole their code and made it work on Windows too, so that my colleague won't have to create releases for me anymore, because I didn't want to do it manually in the browser.