- Notifications
You must be signed in to change notification settings - Fork2
🌻 CLI tool to draft a GitHub Release for the next semantic version
License
mroth/bump
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Simple, cross-platform CLI tool to help draft aGitHub Release for the nextsemantic version of your project.
- Zero runtime dependencies (not even git).
- Auto-detects current repo if in cloned repository.
- Can work without any API authorization at all.
This is intentionally designed to work with the GitHub web site interface fordrafting releases, and does not even require you to have the source code checkedout locally.
$ bump --helpUsage: bump <owner> <repo>If you are in a git repository that has been cloned from GitHub, owner andrepo args can be omitted, in which case they will be inferred from the remoteorigin.Flags: --no-open Do not automatically open publish URL in browser. --verbose, -v Verbose output. --version Print version and exit. --help Print help and exit.Environment: $BUMP_NO_OPEN Global default for --no-open $BUMP_VERBOSE Global default for --verbose $GITHUB_TOKEN Optional, will use if present to access private repos
Doing this:
➡️ Automatically opens this in your browser:
Where you can edit your release notes before clickingPublish Release.
Afterwards, if you have a local checkout of the repository, you may wish to dogit fetch
to pull all remote tags to your system. 👀
Download from theReleases page andput somewhere in your$PATH
.
Homebrew users canbrew install mroth/tap/bump
.
Unlike many of these release tools, bump is currently intended to supportworkflows where rather than pushing tags locally, new releases are primarilydrafted via the Github Releases web interface (all the easier to drag youranimated GIFs in, and whatnot.)
This may not be the correct workflow for your project! In particular, it reallyworks best in environments where there is not a version number file that storedin version control itself (Node NPM, Rust Cargo), but rather those where the gittags themselves manage the versioning (Go modules, sbt-git, etc.)
Some related tools I found in looking at this you may wish to consider asalternatives:
- sindresorhus/np For NPM projects, this is really good. We've adopted it forall our JS native projects at @openlawteam, in conjunction with
--no-publish
. - goreleaser For Go projects, this tool is quite nice. In fact, it works wellin partnership with bump: let bump manage your releases and changelog, and butgoreleaser running in CI to build and add the binaries to the release. (Seethe configuration for this project.)
- zeit/release Fairly close to what we wanted, but it does a git tag/commitand pushes to GitHub before drafting the release, and requires APIauthorization. Javascript based.
About
🌻 CLI tool to draft a GitHub Release for the next semantic version