Skip to content

Conversation

rmunn
Copy link
Contributor

@rmunn rmunn commented Jul 14, 2025

Fixes #363.

Requires a couple changes to GitVersion.yml since GitVersion 6 renamed some of the properties we use: tag becomes label, and prevent-increment-of-merged-branch-version has been split into prevent-increment.of-merged-branch (note the period). There's also prevent-increment.when-current-commit-tagged which we aren't currently using.


This change is Reviewable

Requires a couple changes to GitVersion.yml since GitVersion 6 renamed
some of the properties we use.
@rmunn rmunn self-assigned this Jul 14, 2025
@rmunn rmunn requested a review from ermshiperete July 14, 2025 06:23
Copy link

github-actions bot commented Jul 14, 2025

Test Results

       8 files  ±0     333 suites  ±0   2h 23m 5s ⏱️ -5s
   988 tests ±0     932 ✔️ ±0    56 💤 ±0  0 ±0 
3 145 runs  ±0  3 022 ✔️ ±0  123 💤 ±0  0 ±0 

Results for commit 751c49d. ± Comparison against base commit af6e5c0.

♻️ This comment has been updated with latest results.

Copy link
Member

@ermshiperete ermshiperete left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@imnasnainaec
Copy link

@rmunn The installer build is failing with a missing -Version argument (https://github.com/sillsdev/chorus/actions/runs/16259576514/job/45905094278?pr=364#step:8:34), because two files (l10n/l10n.proj and src/Installer/ChorusMergeModule.wixproj) use $(GitVersion_NuGetVersion), which appears to be less automatically available with GitVersion v6.

@rmunn
Copy link
Contributor Author

rmunn commented Jul 22, 2025

@rmunn The installer build is failing with a missing -Version argument (https://github.com/sillsdev/chorus/actions/runs/16259576514/job/45905094278?pr=364#step:8:34), because two files (l10n/l10n.proj and src/Installer/ChorusMergeModule.wixproj) use $(GitVersion_NuGetVersion), which appears to be less automatically available with GitVersion v6.

I see. They recommend replacing GitVersion_NuGetVersion (which would produce version strings like -beta0017) with GitVersion_SemVer, which produces version strings like -beta.17. We can reconstruct the old _NuGetVersion variable if we need to, by using $(GitVersion_MajorMinorPatch)$(PreReleaseLabelWithDash) and then appending a 0-padded $(PreReleaseNumber).

Alternately, if we know we no longer need to support any versions of NuGet.exe older than 4.3.0 (which is QUITE old), then we can simply use GitVersion_SemVer and get version strings that comply with SemVer 2.0 and are more easily parseable with modern tooling.

If you think we need an exact equivalent to GitVersion_NuGetVersion then let me know, otherwise I'll update the build to use GitVersion_SemVer.

@rmunn
Copy link
Contributor Author

rmunn commented Jul 22, 2025

Incidentally, this is the GitVersion commit that removed those variables.

NuGetVersion variable produces suffixes like -beta0017, whereas SemVer
variable produces suffixes like -beta.17 which comply with SemVer 2.0.
SemVer 2.0 support was added in NuGet 4.3.0, which is quite ancient at
this point, so we no longer need to use the NuGetVersion variable to
support older tooling; all NuGet tools can handle SemVer 2.0 by now.
@jasonleenaylor
Copy link
Contributor

I have a concern about the version continuity and the version parsing strategies that are in use in existing projects. The build system we have in place would all need to be exercised out to the tip (installation) of each affected tool. FieldWorks, OneStoryEditor, LFMerge, ??

@rmunn
Copy link
Contributor Author

rmunn commented Jul 23, 2025

Good point Jason, I've been assuming that versioning systems would handle beta0016 being followed by beta.17 just fine, but perhaps this is best done immediately after a new release so that there aren't any -beta0001 that get followed by -beta.2. Period is U+0046 while zero is U+0048, so a naive sorting algorithm would think that -beta0001 was a higher version number.

I'll back off the GitVersion update to the latest version of GitVersion 5.x, I believe it's 5.12.0, so that we can keep using NuGetVersion. Hopefully that will still fix #363 for me and allow me to build Chorus on Linux again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

GitVersion 5 getting old, update to GitVersion 6.3.0
4 participants