1.0.8 • Published 6 months ago

jrelease v1.0.8

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months ago

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 release
  • preminor: A pre-release of a minor release
  • prepatch: A pre-release of a patch release
  • pre: 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

  1. Fork this repository to your own GitHub account and then clone it to your local device
  2. Uninstall the package if it's already installed: npm uninstall -g jrelease
  3. Link the package to the global module directory: npm link
  4. You can now use jrelease on the command line!
  5. 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.