From 59f469f49cfd0b05ea6c3cde23d035a9ba24ae5e Mon Sep 17 00:00:00 2001 From: Rafael Vuijk Date: Sat, 8 Aug 2026 11:26:34 +0000 Subject: [PATCH] Name the version under development, and stop stamping 0.1.3.0 Three fields disagreed with each other and with what shipped. `Package.Build.props` still said `1.4.0-preview.4` although 1.4.0 was released in January. Nothing published was wrong -- the NuGet workflow packs with `-p:PackageVersion` taken from the release tag -- but a local build and the assembly metadata carried the preview. `AngouriMath.csproj` then overrode `AssemblyVersion` and `FileVersion` with `0.1.3.0`, a number from long before 1.4. Because the override sat after the props import it won, so `AngouriMath.dll` reported `0.1.3.0` while `AngouriMath.FSharp.dll`, which has no override, reported `1.4.0.0`. The four packages built from one repository did not agree on their own version. Now the props carry it for all four: Version 2.0.0-preview.1 AssemblyVersion 2.0.0.0 FileVersion 2.0.0.0 Measured on the built assembly rather than read off the diff: AssemblyVersion 2.0.0.0 FileVersion 2.0.0.0 Informational 2.0.0-preview.1+21f0d16f PublicKeyToken bccdab90849ccf86 (unchanged) `AssemblyVersion` is pinned to the major for the whole of 2.x and deliberately does not track `Version`. The assembly is strong-named, and for a signed assembly every `AssemblyVersion` change breaks binding on a consumer that does not add a redirect. Holding it at `2.0.0.0` makes each 2.x release a drop-in replacement, and `FileVersion` carries the release for anyone reading the file properties. 2.0 rather than 1.5 because the changes since 1.4.0 include ones no minor version may carry: `Minusf.Minuend` and `.Subtrahend` exchanged names, so code using them still compiles and now means the other operand; `Compile` over a missing variable throws `UncompilableNodeException` where it threw `KeyNotFoundException`; and `mod`, `floor` and ten other names that used to parse as products now raise. BREAKING-CHANGES.md names the section for the version it will ship as, and keeps saying it is unreleased. 5551 unit tests and 130 F# tests pass; all four packable projects build. Co-Authored-By: Claude Opus 5 --- BREAKING-CHANGES.md | 2 +- Sources/AngouriMath/AngouriMath.csproj | 2 -- Sources/Package.Build.props | 17 ++++++++++++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/BREAKING-CHANGES.md b/BREAKING-CHANGES.md index 5e0592596..43115f2b1 100644 --- a/BREAKING-CHANGES.md +++ b/BREAKING-CHANGES.md @@ -15,7 +15,7 @@ read first. --- -## Unreleased — since 1.4.0 +## 2.0.0 (unreleased) — since 1.4.0 ### At a glance diff --git a/Sources/AngouriMath/AngouriMath.csproj b/Sources/AngouriMath/AngouriMath.csproj index 7b2d7e46e..d19e5b3cd 100644 --- a/Sources/AngouriMath/AngouriMath.csproj +++ b/Sources/AngouriMath/AngouriMath.csproj @@ -10,8 +10,6 @@ Library preview - 0.1.3.0 - 0.1.3.0 true $(PackageTags), csharp Enables to work with formulas built in the code or from a string. Computing, derivating, latex rendering, compilation, solving equations and systems of equations analytycally, simplification, and much more. Read more on https://am.angouri.org. diff --git a/Sources/Package.Build.props b/Sources/Package.Build.props index d3c2d9b34..0f74b3085 100644 --- a/Sources/Package.Build.props +++ b/Sources/Package.Build.props @@ -12,7 +12,22 @@ --> - 1.4.0-preview.4 + + 2.0.0-preview.1 + + + 2.0.0.0 + 2.0.0.0 WhiteBlackGoose and contributors Angouri