Skip to content

[Bug]: nova bump should detect parent Git repositories for version inference #174

Description

@stiwicourage

Summary

nova bump does not infer the correct semantic version when the project lives under a parent Git repository and the project directory itself does not contain .git.

In that layout, Git commands like git status and git log work normally from the project directory because Git resolves the repository from a parent folder. nova bump appears to require .git directly in the project root instead, so it falls back to Patch with Commits: 0 even when the commit history contains a breaking-change commit.

Steps to reproduce

  1. Use a project directory that contains project.json but is nested under a parent Git repository.
  2. Make sure the project directory itself does not contain .git, while Git still works there through the parent repo.
  3. Use a prerelease version such as 1.5.4-preview in project.json.
  4. Ensure the reachable commit history contains a breaking-change commit such as feat!:.
  5. Run:
nova bump -w
  1. Compare the result with Git commands from the same folder:
git rev-parse --show-toplevel
git log --oneline

Expected behavior

nova bump should resolve the Git repository the same way Git does when run from a nested project directory.

If Git can identify the parent repository and the reachable commit set includes a breaking-change commit, Nova should use that commit set for bump inference and plan the correct semantic version instead of falling back to Patch.

For this case, the expected planned version is a major bump rather than finalizing 1.5.4-preview to 1.5.4.

Actual behavior

Nova reports a patch finalization with zero commits:

What if: Performing the operation "Update module version using Patch release label" on target "project.json".
Version plan: 1.5.4-preview -> 1.5.4 | Label: Patch | Commits: 0

At the same time, Git clearly resolves the parent repository and the log contains breaking-change commits.

NovaModuleTools version

2.3.0

Where did you hit the issue?

nova CLI

Command or cmdlet

nova bump -w

Relevant output or logs

PWD: /Users/stiwi.courage/workspace/arbejdstilsynet/Tools/AzureDevOpsAgentInstaller

DIRECT .git: no
GIT TOPLEVEL: /Users/stiwi.courage/workspace/arbejdstilsynet/Tools
GIT DIR: /Users/stiwi.courage/workspace/arbejdstilsynet/Tools/.git

What if: Performing the operation "Update module version using Patch release label" on target "project.json".
Version plan: 1.5.4-preview -> 1.5.4 | Label: Patch | Commits: 0

Relevant commits visible from the same folder include:

e210361fc2 feat!: Updating AzureDevOpsAgentInstaller with Powershell Module architecture

Relevant project.json snippet

{
  "Version": "1.5.4-preview"
}

Operating system

macOS 26.4.1

PowerShell version

7.5.4

Shell

PowerShell

Installation method

Installed nova launcher

Regression?

Not sure

Additional context

This issue is about repository detection for bump inference.

The current behavior is risky because Nova silently produces a plausible but incorrect patch plan instead of using the same repository resolution model that Git uses from the same working directory.

I searched existing issues and did not find an existing bug report for this parent-repository detection case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions