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

Cannot understand how release verison is calculated

Open paolomainardi opened this issue 11 months ago • 2 comments

Hi everyone, just having some confusion about how release-it is calculating the next version number.

This is the release-it.json file:

{
  "git": {
    "commitMessage": "chore: release v${version}",
    "changelog": "npx auto-changelog --stdout --commit-limit false --unreleased --template https://raw.githubusercontent.com/release-it/release-it/main/templates/changelog-compact.hbs",
    "requireCleanWorkingDir": false
  },
  "npm": false,
  "gitlab": {
    "release": true
  },
  "hooks": {
    "before:init": "git fetch --prune --prune-tags origin",
    "after:bump": "npx auto-changelog -p app/package.json --output CHANGELOG.md --template keepachangelog"
  }
}

I have a package.json file located under app/package.json:

{
  "name": "ts-cli",
  "description": "Test cli",
  "version": "0.7.3",
  ....

The latest git tags:

0.4.3
0.4.4
0.4.5
0.5.0
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.7.2
0.7.3
0.7.3-dev.0
0.7.3-dev.1
0.7.3-dev.2
0.7.3-dev.3
0.7.3-dev.4

As you can see there are many dev releases done before the 0.7.3, now I want to release a 0.7.4 but when I run release-it it happens this:

❯ npx release-it --dry-run --release-version
! git fetch --prune --prune-tags origin
$ git rev-parse --abbrev-ref HEAD
$ git config --get branch.develop.remote
$ git remote get-url origin
! git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=* --abbrev=0
$ git symbolic-ref HEAD
$ git for-each-ref --format="%(upstream:short)" refs/heads/develop
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git config --get branch.develop.remote  [cached]
$ git remote get-url origin  [cached]
! git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=* --abbrev=0  [cached]
$ npx auto-changelog --stdout --commit-limit false --unreleased --template https://raw.githubusercontent.com/release-it/release-it/main/templates/changelog-compact.hbs
0.7.3

He still wants to release the 0.7.3 version.

Even the preRelease seems to be confused:

❯ npx release-it --preRelease dev --dry-run --release-version
! git fetch --prune --prune-tags origin
$ git rev-parse --abbrev-ref HEAD
$ git config --get branch.develop.remote
$ git remote get-url origin
! git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=* --abbrev=0
$ git symbolic-ref HEAD
$ git for-each-ref --format="%(upstream:short)" refs/heads/develop
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git config --get branch.develop.remote  [cached]
$ git remote get-url origin  [cached]
! git fetch
$ git rev-parse --abbrev-ref HEAD  [cached]
$ git describe --tags --match=* --abbrev=0  [cached]
$ npx auto-changelog --stdout --commit-limit false --unreleased --template https://raw.githubusercontent.com/release-it/release-it/main/templates/changelog-compact.hbs
0.7.3-dev.5

What am I doing wrong here ?

paolomainardi avatar Mar 04 '24 16:03 paolomainardi

I think if I understood correctly, if you want to handle releases such with dev or beta as preRelease you need to set the git.tagExclude to handle them. You can read more here https://github.com/release-it/release-it/blob/main/docs/pre-releases.md

juancarlosjr97 avatar Mar 17 '24 22:03 juancarlosjr97

Also see https://github.com/release-it/release-it/blob/main/docs/git.md#tag-match and below

webpro avatar Apr 05 '24 09:04 webpro

Closing due to inactivity, answers/links to docs provided.

webpro avatar Jul 08 '24 17:07 webpro