Skip to content

Release 0.11.1 - #44

Merged
mahach666 merged 1 commit into
mainfrom
release/0.11.1
Nov 13, 2026
Merged

mahach666 merged 1 commit into
mainfrom
release/0.11.1

Conversation

@mahach666

Copy link
Copy Markdown
Contributor

Release 0.11.1, the first release of IfcIO.Scene.

Why

The release of 0.11.0 published IfcIO and IfcIO.Cli, but nuget.org refused IfcIO.Scene 0.11.0:

400 (The NuGet package contains an invalid .nuspec file. The errors encountered were:
'The package manifest contains an invalid Version: '0.2.0-0'' ...)

nuget.org checks every bound of a dependency range (NuGetGallery ManifestValidator.ValidateDependencyVersion): a bound with metadata is refused, and a bound that is not SemVer 2.0 (one prerelease label) must match ^\d+(\.\d+){0,3}(-[a-z][0-9a-z-]*)?$, so its label must start with a letter. 0.2.0-0 has one label, 0, and fails. dotnet pack accepts it, which is why the local checks passed. The GitHub release v0.11.0 was created afterwards from the artifacts of the same run, without the IfcIO.Scene files.

What changes

  • Directory.Packages.props: IOScene [0.1.0, 0.2.0-0.0). 0.2.0-0.0 has two labels, so nuget.org checks it as SemVer 2.0 and accepts it; it keeps out every 0.2.0 preview except 0.2.0-0, which nuget.org accepts only with build metadata and IOScene does not publish. The IOScene contract gets the same range in IOExtend/IOScene (separate PR).
  • tools/pack-release.ps1:
    • (c) fails the release when a dependency bound of the IfcIO.Scene nuspec is one nuget.org refuses, by the same rule;
    • (b) now also fails when the IOScene range has no lower bound, as in RvtIO.
  • Directory.Build.props: version 0.11.1 (IfcIO and IfcIO.Cli have the same code as 0.11.0).
  • CHANGELOG.md: ## [0.11.1] - 2026-11-13, and a note in the 0.11.0 entry of the package that it was not published with 0.11.0.
  • CONTRIBUTING.md, docs/scene-adapter.md, the comment in IfcIO.Scene.csproj, README Limitations: the new range and version.

Checks

  • The rule: a small program with NuGet.Versioning 6.12.1 and the gallery regex refuses [0.1.0, 0.2.0-0) (as nuget.org did) and accepts [0.1.0, 0.2.0-0.0); that range is satisfied by 0.1.x (including 0.1.1-preview.1) and not by 0.2.0-preview.1, -alpha, -a, -rc.1, -1, -0.1, 0.2.0 or 0.1.0-preview.2.
  • The assertion of pack-release.ps1, loaded on its own and run on crafted nuspecs (Windows PowerShell 5.1): passes -0.0, -alpha and a plain bound; refuses -0, -1rc, a bound with metadata, a preview or missing IOScene lower bound, an engine dependency that is not exact, and a missing IOScene.
  • dotnet build IfcIO.slnx -c Release: 0 warnings, 0 errors. dotnet test: IfcIO.Tests 149 passed (net10.0); IfcIO.Scene.Tests 19 passed and 1 skipped on net8.0 and net10.0.
  • tools/pack-release.ps1 (Windows PowerShell 5.1; the release job uses pwsh): exit 0; IfcIO.Scene.0.11.1 depends on IfcIO [0.11.1] and IOScene [0.1.0, 0.2.0-0.0).
  • Not run: the push to nuget.org itself (only the release run does it).

After merge

Tag v0.11.1 on the merge commit. The CHANGELOG date is 2026-11-13; if the tag is pushed on a later day, the date should be corrected first.

nuget.org refused IfcIO.Scene 0.11.0 ("invalid Version: '0.2.0-0'"): a
dependency bound with one prerelease label must start with a letter there.
IfcIO and IfcIO.Cli 0.11.0 were published. IOScene is now referenced as
[0.1.0, 0.2.0-0.0), and pack-release.ps1 fails a release whose IfcIO.Scene
dependency bounds nuget.org would refuse, by the gallery's rule, and one whose
IOScene range has no lower bound. Version 0.11.1, the first release of
IfcIO.Scene; the changelog notes that 0.11.0 did not publish it.
@mahach666
mahach666 merged commit 41242eb into main Nov 13, 2026
4 checks passed
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.

1 participant