Bumpy Ride
A versioning tool.
Table of Contents
Requirements
- Go version 1.18 or higher.
You can probably install it through your system's package manager (
apt, brew, etc.).
For general instructions, go here --no pun intended.
Installation
To install, open a terminal and execute the following
go install github.com/jwmwalrus/bumpy@latest
The same command can be used for subsequent updates.
Usage
Bumpy Ride is intented to be used both as a subpackage and as a command-line tool.
As a subpackage, bumpy/version permits access to the vcs-related details stored either in a version.json file, or in the runtime/debug.BuildInfo.
As a command-line tool, bumpy allows for the propagation of tag changes, according to semantic versioning rules. It also can, optionally, store the repository's current version in the version.json file at the root of said repository.
An overview of the available commands and options can be obtained by executing
bumpy --help
The available commands can be categorized into three groups: control, git-affecting and informational.
Control Commands
These commands allow for manipulation of the version.json file that stores the repository's current version.
init
The init command initializes the repository's version --i.e., it creates the configuration and (optionally) the version files.
Detailed information aobut the init command can be otained with:
bumpy help init
config
The config command updates the repository's version configuration file, according to the provided options, and displays its resulting contents.
Detailed information aobut the config command can be otained with:
bumpy help config
sync
The sync command makes sure that the version stored in version.json matches the latest git tag available.
Detailed information aobut the sync command can be otained with:
bumpy help sync
Git-affecting Commands
These commands may perform operations on the version.json file, and cause at least one commit and/or other git-related operations.
bump
The bump command updates the version.json file, and any associated package[-lock].json files, according to the given set of options.
Detailed information aobut the bump command can be otained with:
bumpy help bump
tag
The tag command commits the ChangeLog.md file, and tags its commit with the latest version from version.json.
Detailed information aobut the tag command can be otained with:
bumpy help tag
These commands simply display information.
version
The version command shows the current version stored in the version.json file, if available, or the latest git tag.
Detailed information aobut the version command can be otained with:
bumpy help version
TODO
-
Implement the init task
-
Implement bump [--major|--minor|--patch] task
-
Implement bump [--pre PRE] [--build BUILD] task
-
Implement tag task
-
Implement sync task
-
Implement version task
-
Implement version configuration
- Implement version operators
- Allow tagging with an arbitrary list of files