Add new capabilities to cz version #1677
Copy link
Copy link
Labels
issue-status: wait-for-implementationmaintainers agree on the bug / featuremaintainers agree on the bug / featuretype: featureA new enhacement proposalA new enhacement proposal
Description
Description
The idea of this ticket is to track the "graduation" of cz version --project into a powerful command, capable of fetching information about the project.
This includes:
- Introduce
--nextflag oncz version --project. Which returns the next version based on the project's config. It could potentially support forcing the increment type. Example:--next=MAJORor--next=PATCHIntroduce--nextflag oncz version --project#1678 - Allow users to play with the configured
version_scheme, by letting them provide any version,cz version <version_arg>, this would override the commitizen version or the given--projectparameter. The user would then be able to "learn" about the behavior, by doingcz version 0.1.0 --next=MAJORAdd support forcz version <version_arg>#1679 - Add
--tag: to actually retrieve the tag of the version with the template applied. If your tags looks like this:v0.1.0. You have to manually add v to your version right now. This would be useful to interact with git. If you want to retrieve the tagged commit, you could do: git show-ref $(cz version -p --tag). This is useful for auditing. And, if you have an old CI (e.g: jenkins), it would give an easy way for teams to check if the tag exists already before trying to bump. This parameter is the one I'm least sure about, so maybe we can work on the other features first, and if we think it would be useful, we add it.Addcz version --tag#1765 - Do we want a
--hashto get the version hash for auditing purposes? - BREAKING: Add
--versionback and deprecatecz version --comitizenwhich is the default forcz version
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
issue-status: wait-for-implementationmaintainers agree on the bug / featuremaintainers agree on the bug / featuretype: featureA new enhacement proposalA new enhacement proposal
Activity
--nextflag oncz version --project#1678cz version <version_arg>#1679Clockwork-Muse commentedon Dec 3, 2025
I have a use for this.
Due to some weaknesses in the current published action, I've had to write my own action, and I'm having to do manual tag formatting.
Additionally, I would probably have a use for a
--prevflag, to get the most recent previous revision. This is potentially for regenerating incremental changelogs when running on a tag; the tag would be the "current" version, so the version to start from the previous one.Lee-W commentedon Dec 4, 2025
if we have
--next,--previs indeed something we can consider IMO 👀woile commentedon Dec 4, 2025
I'm not sure I full understand this, what about this:
And by the way, I've introduced a new, more flexible github action, maybe it's useful to you
https://github.com/commitizen-tools/setup-cz
Clockwork-Muse commentedon Dec 4, 2025
... Somehow I'd missed the ability to pass a revision name to
cz changelog, which would cover my needs for this caseThis will enable me to simplify what I had to write, thank you.
woile commentedon Dec 12, 2025
@Clockwork-Muse would you still need the
--tagflag given this new information?Clockwork-Muse commentedon Dec 12, 2025
Yes.
My current workflow is:
I do not call
cz bump, because I don't update files or create a bump/version commit; I only manage my versions with tags. Therefore the only way for me to get the new tag would be the new flagNote that the only reason I'm having to get the tag myself is because, at least previously, the only way to get the "next tag" with the official release action was to bump and update files/create a new commit, which wasn't acceptable for me. If the official action could be fully configured to only create (+push?) the tag and/or create the release, I probably don't need this flag (only the ability to get the version)
cz version --tag#1765--versionback and deprecatecz version --commitizenwhich is the default forcz version#1785bearomorphism commentedon May 9, 2026
Cross-checked against
master(v4.15.1) by aclaude-opus-4.7validation pass while triaging #1976.Status: partially fixed (umbrella tracker — most sub-tasks shipped, three remain).
--nextoncz version --project(#1678)commitizen/commands/version.py:93-103),USE_GIT_COMMITSform still TODO atcommitizen/commands/version.py:85-91manual_versionpositional override (#1679)commitizen/cli.py:588-594,commitizen/commands/version.py:60-83--tagto apply tag template (#1765)commitizen/cli.py:562-567,commitizen/commands/version.py:116-120--major/--minor/--patchextractorscommitizen/cli.py:544-576,commitizen/commands/version.py:105-113cz --versiontop-level + deprecatecz version --commitizen(#1785)mergeable_state: blocked)--hash(emit commit hash for the version)--prev(raised by @Clockwork-Muse, ack'd by @Lee-W)Recommend keeping this open until #1678, PR #1798 (#1785) land and a decision is made on
--hashand--prev.(Surfaced via the round-3 triage in #1976.)