fix(runner): version mono NuGet packages for non-vanilla C# APIs #16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/mono-module-nuget-versions"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A mono build with a grafted module such as LimboAI generated GodotSharp,
GodotSharpEditor, Godot.NET.Sdk and Godot.SourceGenerators packages under
the exact version nuget.org serves. Projects restored the official
packages (or reused them from ~/.nuget/packages), got an assembly without
the module's classes, and the engine rejected it on the API hash.
The runner now derives a suffix from the engine commit, resolved module
commits, precision and API-affecting scons arguments (target excluded,
so an editor and its templates agree) and passes it as
GBB_MONO_VERSION_SUFFIX. The entrypoint folds it into
GODOT_VERSION_STATUS as -.gbb, the same mechanism
LimboAI's CI uses, and fails the build if the generated GodotSharp
package does not carry it. Vanilla mono builds are unchanged.
Also pass the spec's precision and deprecated=no through to
build_assemblies.py: double-precision builds previously shipped
single-precision assemblies, and deprecated=no builds kept the
deprecated managed API. --no-deprecated exists only from Godot 4.4, so
its support is checked before the editor pass.
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com