Skip to content

[Bug]: prerelease bump should finalize the current version instead of incrementing it #155

@stiwicourage

Description

@stiwicourage

Summary

nova bump --what-if plans the wrong next version when the current project version is already a prerelease. Instead of finalizing the same semantic version by removing the prerelease label, it bumps to the next semantic version.

Steps to reproduce

  1. Use a project whose current version is a prerelease, for example 2.0.0-preview01.
  2. Run:
nova bump --what-if
  1. Observe the reported version plan.

Expected behavior

If the current version already has a prerelease label such as preview, beta, rc, and similar, the next version should finalize that same semantic version by removing the prerelease label.

For example:

Version plan: 2.0.0-preview01 -> 2.0.0 | Label: Minor | Commits: 26

In other words, the next step from a prerelease should be to remove the prerelease suffix, not to change 2.0.0 into 2.1.0.

Actual behavior

The current output is:

Version plan: 2.0.0-preview01 -> 2.1.0 | Label: Minor | Commits: 26

So the bump logic is treating the prerelease as if it should continue with a normal semantic bump instead of finalizing the current prerelease line.

NovaModuleTools version

2.1.1-preview04

Where did you hit the issue?

nova CLI

Command or cmdlet

nova bump --what-if

Relevant output or logs

stiwi.courage@CX9W72V2RH AzureDevOpsAgentInstaller % nova bump --what-if
What if: Performing the operation "Update module version using Minor release label" on target "project.json".
Version plan: 2.0.0-preview01 -> 2.1.0 | Label: Minor | Commits: 26
stiwi.courage@CX9W72V2RH AzureDevOpsAgentInstaller % nova -v
NovaModuleTools 2.1.1-preview04

Relevant project.json snippet

{
  "Version": "2.0.0-preview01"
}

Operating system

macOS 26.4.1

PowerShell version

7.5.4

Shell

zsh

Installation method

Installed nova launcher

Regression?

Not sure

Additional context

I had the impression this behavior was already intended to be fixed, so this may be a regression or a path that still does not follow the prerelease-finalization rule.

The expected rule is general: if the current version includes a prerelease suffix (preview, beta, rc, etc.), the next version should be the same semantic version without the suffix.

Pre-submit checklist

  • I searched existing issues to avoid creating a duplicate.
  • I included enough detail for someone else to reproduce the issue.
  • This is not a security vulnerability report.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions