release-it icon indicating copy to clipboard operation
release-it copied to clipboard

bug(gitlab): incorrect version updating if Release-it command has the command-line argument `--ci`

Open Kristinita opened this issue 9 months ago • 1 comments

1. Summary

If I run release-it minor --ci for my GitLab repository, release-it bumps a patch version. If I run release-it major --ci, release-it bumps a minor version.

I don’t reproduce the problem for my GitHub repository. I don’t reproduce the problem in interactive mode without the command-line argument --ci.

2. MCVE

2.1. .release-it.yaml

# [INFO] Or without Git options
git:
  addUntrackedFiles: true
  commitArgs: --signoff
  commitMessage: "deploy(release-it): release v${version}"
  requireUpstream: false
  tagName: v${version}

npm:
  publish: false

plugins:
  release-it-changelogen:
    # [INFO] Or without release-it-changelogen options below
    disableVersion: true
    templates:
      commitMessage: "deploy(release-it): release {{newVersion}}"
      tagMessage: v{{newVersion}}

verbose: 2

2.2. Steps to reproduce

npx release-it minor --ci

npx release-it major --ci

2.3. Behavior

2.3.1. Expected — GitHub

When I run Release-it with the command-line argument major, Release-it updates the version from 1.11.1 to 2.0.0:

D:\SashaDemoRepositories\SashaGitHub>npx release-it major --ci
$ git diff --quiet HEAD
$ git rev-parse --abbrev-ref HEAD
KiraReleaseIt
$ git config --get branch.KiraReleaseIt.remote
origin
$ git remote get-url origin
https://github.com/Kristinita/SashaGitHub.git
$ git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=v* --abbrev=0
v1.11.1
� Let’s release sashagithub (1.11.1…2.0.0)
Changelog:
## v1.11.1…KiraReleaseIt

[**compare changes**](https://github.com/Kristinita/SashaGitHub/compare/v1.11.1…KiraReleaseIt)

### ďż˝ Deployment

- **release-it:** Try temporary disable hooks ([**a8b2ca5**](https://github.com/Kristinita/SashaGitHub/commit/a8b2ca5))

### ❤️ Contributors

- Kristinita ([**@Kristinita**](http://github.com/Kristinita))
$ npm version 2.0.0 --no-git-tag-version
v2.0.0
$ git status --short --untracked-files=no
 M CHANGELOG.md
 M package.json
Changeset:
 M CHANGELOG.md
 M package.json
$ git add . --all

$ git commit --message deploy(release-it): release v2.0.0 --signoff
[KiraReleaseIt 96ef5f7] deploy(release-it): release v2.0.0
 2 files changed, 13 insertions(+), 1 deletion(-)

$ git tag --annotate --message Release 2.0.0 v2.0.0

$ git symbolic-ref HEAD
refs/heads/KiraReleaseIt
$ git for-each-ref --format="%(upstream:short)" refs/heads/KiraReleaseIt
origin/KiraReleaseIt
$ git push --follow-tags

ďż˝ Done (in 6s.)
2.3.2. Non-expected — GitLab

When I run Release-it with the command-line argument minor, Release-it updates the version from 0.3.6 to 0.3.7, not to 0.4.0:

D:\SashaDemoRepositories\KiraGitLabDebugging>npx release-it minor --ci
$ git diff --quiet HEAD
$ git rev-parse --abbrev-ref HEAD
KiraReleaseIt
$ git config --get branch.KiraReleaseIt.remote
origin
$ git remote get-url origin
https://gitlab.com/Kristinita/KiraGitLabDebugging.git
$ git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=v* --abbrev=0
v0.3.6
� Let’s release KiraGitLabDebugging (0.3.6…0.3.7)
Changelog:
## v0.3.6…KiraReleaseIt

[**compare changes**](https://gitlab.com/Kristinita/KiraGitLabDebugging/compare/v0.3.6…KiraReleaseIt)

### ďż˝ Deployment

- **release-it:** Try consistent .release-it.yaml files ([**e094584**](https://gitlab.com/Kristinita/KiraGitLabDebugging/commit/e094584))

### ❤️ Contributors

- Kristinita <[email protected]>
$ npm version 0.3.7 --no-git-tag-version
v0.3.7
$ git status --short --untracked-files=no
 M CHANGELOG.md
 M package.json
Changeset:
 M CHANGELOG.md
 M package.json
$ git add . --all

$ git commit --message deploy(release-it): release v0.3.7 --signoff
[KiraReleaseIt 6be3a67] deploy(release-it): release v0.3.7
 2 files changed, 13 insertions(+), 1 deletion(-)

$ git tag --annotate --message Release 0.3.7 v0.3.7

$ git symbolic-ref HEAD
refs/heads/KiraReleaseIt
$ git for-each-ref --format="%(upstream:short)" refs/heads/KiraReleaseIt
origin/KiraReleaseIt
$ git push --follow-tags

ďż˝ Done (in 9s.)

When I run Release-it with the command-line argument major, Release-it updates the version from 0.3.7 to 0.4.0, not to 1.0.0:

D:\SashaDemoRepositories\KiraGitLabDebugging>npx release-it major --ci
$ git diff --quiet HEAD
$ git rev-parse --abbrev-ref HEAD
KiraReleaseIt
$ git config --get branch.KiraReleaseIt.remote
origin
$ git remote get-url origin
https://gitlab.com/Kristinita/KiraGitLabDebugging.git
$ git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=v* --abbrev=0
v0.3.7
� Let’s release KiraGitLabDebugging (0.3.7…0.4.0)
Changelog:
## v0.3.7…v0.3.7

[**compare changes**](https://gitlab.com/Kristinita/KiraGitLabDebugging/compare/v0.3.7…v0.3.7)
$ npm version 0.4.0 --no-git-tag-version
v0.4.0
$ git status --short --untracked-files=no
 M CHANGELOG.md
 M package.json
Changeset:
 M CHANGELOG.md
 M package.json
$ git add . --all

$ git commit --message deploy(release-it): release v0.4.0 --signoff
[KiraReleaseIt 7e40731] deploy(release-it): release v0.4.0
 2 files changed, 5 insertions(+), 1 deletion(-)

$ git tag --annotate --message Release 0.4.0 v0.4.0

$ git symbolic-ref HEAD
refs/heads/KiraReleaseIt
$ git for-each-ref --format="%(upstream:short)" refs/heads/KiraReleaseIt
origin/KiraReleaseIt
$ git push --follow-tags

ďż˝ Done (in 9s.)

3. Environment

  1. Microsoft Windows [Version 10.0.22621.3085]
  2. git version 2.49.0.windows.1
  3. Node.js v24.0.1
  4. Release-it 19.0.2
  5. release-it-changelogen 0.1.0

Thanks.

Kristinita avatar May 13 '25 13:05 Kristinita

Do you think this is a problem with release-it or release-it-changelogen?

webpro avatar Jul 28 '25 13:07 webpro