Make your tagging easier and predictable
Navigate to Releases, download binary per your platform.
Please note that
taggy
requires mandatorypattern
parameter. You should create an alias depending on which pattern you would like to use.
# vanilla semantic versioning
alias tagsem="taggy --pattern \"([0-9]+\.)+[0-9]+(-[a-z]+[0-9]+)?\"" # 2.13.46 || 2.13.46.1 || 2.13.46-dev2
# year based versioning (does not conform with semver)
alias tagdate="taggy --pattern \"$(date +%Y)(\.[0-9]+)+(-[a-z]+[0-9]+)?\"" # 2022.10 || 2022.10.1 || 2022.10-dev2
usage: taggy [-a <arg>] [--everywhere] [-f] [-p] --pattern <arg>
[--postfix-separator <arg>] [-t <arg>] [-v <arg>]
-a,--postfix <arg> Appends postfix (after) to the latest
fetched or provided version. If not
provided, the program will try to reuse
existing postfix from the last tag.
Whenever the last tag contains number it's
incremented if and only if the provided
postfix matches with the tag's postfix.
Even if this last tag has no postfixes it
will be omitted. Increment is always
preferred on postfix (1.0.0-dev1 ->
1.0.0-dev2), however if no postfix is
found or provided the last number segment
from the tag is incremented. (1.0.0 ->
1.0.1)
--everywhere [DEPRECATED] Instructs the program to look
for tags in every branch. This might be
useful when features are separated by
branches and not bound to specific
version. If disabled the program will look
only into merged tags (ie. current
branch).
-f,--force Forces all tags on all remotes (or push
targets) to be deleted and created again.
Tags will be deleted locally and on the
provided or all remotes. Please note that
not clearing tags on all remotes might
result in pull conflicts.
-p,--push Informs the program that you want to also
push the tag you created. This is by
default to all remotes. You can limit
remotes by using -t or --push-targets.
--pattern <arg> Specifies java regex pattern for the
program to use when listing tags. It
bypasses git's implementation since it
uses non-robust wildcard implementation.
This parameter is required. See
documentation for examples, visit
regex101.com to test your implementation.
--postfix-separator <arg> Separator which will be used for parsing
appended postfix and appending the postfix
when constructing tag. Beware that if you
want to change separator, you need to
provide the entire ensemble. (ie. postfix,
postfix-separator and version)
-t,--push-targets <arg> Specifies which targets are used in order
to push the newly created tags. Targets
are separated with "," with no spaces.
When used -p and -t in conjunction, the
targets must not be empty.
-v,--version <arg> Program will use this version code without
any increments in order to construct new
tag. Note that if postfix was provided it
will use the postfix as well in the tag
construction process.
It works as a wrapper over git
client installed on your device to fetch, sort, create and publish tags with respect to
the semantic versioning scheme. It uses a consistent comparator to determine which tag is the newest.
The program will try to increment the lowest available version segment.
# <- 1.0.0
tagsem
# -> 1.0.1
# <- 1.0.0-alpha1
tagsem
# -> 1.0.0-alpha2
# <- 1.0.0-alpha3
tagsem -a beta
# -> 1.0.1-beta1
You can use taggy
to publish (push) tags on your behalf.
tagsem -p
And also implicitly request to rewrite any existing tags.
tagsem -fp
Completely new version? Not a problem.
tagsem -v 2.0.0 -a alpha1
Done with 2.0.0? Let's ship it!
tagsem -v 2.0.0 -p -t origin,eaplay