Skip to content

Chore/bump maplibre native terrain 3d - #34

Merged
acalcutt merged 2 commits into
mainfrom
chore/bump-maplibre-native-terrain-3d
Sep 3, 2026
Merged

acalcutt merged 2 commits into
mainfrom
chore/bump-maplibre-native-terrain-3d

Conversation

@acalcutt

@acalcutt acalcutt commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

No description provided.

acalcutt and others added 2 commits September 2, 2026 23:59
…uget.org

v5.0.0-pre.1 pushed three packages and then failed the fourth with a bare
413: MapLibreNative.Maui.Vulkan is over nuget.org's 250 MB limit. It was
141.7 MiB at 4.5.1, when pack-vulkan reused the Metal build for Apple. It
now carries real Apple Vulkan slices -- iOS device, iOS simulator, and a
universal macCatalyst archive -- four amalgams, each merging every .a in
the build tree, which is what pushed it over.

The Xcode generator's Release configuration still compiles with -g, so
every object in those amalgams carried DWARF. Strip it (strip -S, then
ranlib) and strip the Android .so with llvm-strip --strip-unneeded, on the
OpenGL legs as well as Vulkan -- the OpenGL package is at 189.4 MiB and
heading for the same wall. Exported symbols are untouched, so the archives
still link and P/Invoke still resolves.

Both pack jobs now print each package's size and fail with a clear error
above the limit, instead of reaching the push step and getting a 413.

VERSION goes to 5.0.0-pre.2: nuget.org will not accept a re-upload of
5.0.0-pre.1 for the three packages already pushed, so that version can
never be made consistent. CHANGELOG follows the transformation
bump-version.yml applies -- master section renamed, fresh master prepended
-- so the release-notes extraction finds the section.

Sizes are unverified locally; no macOS or NDK toolchain here. The new size
report will show the real numbers on the next run.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
samples-mobile was the tail of the release: on run 33704482667 it started
at 45.4 min and ran 57.6, with the GitHub release job right behind it at
103.1 -- a 105 min run whose last 60 min were one job.

It waited on `pack`, which waits on `build-windows`, whose arm64 leg is a
35.4 min outlier (x64 is 19.9). But the mobile sample needs only the
Android and Apple natives, and those were ready at 22.5 min; the Windows
DLLs it was waiting for are in the package but never opened.

It now stages the Android and Apple natives itself -- the same layout
`pack` builds, minus win-x64/win-arm64 -- and builds MauiSample through
the ProjectReference path instead of the packed NuGet. _MlnNativeDir
already defaults to bindings/native/, and every native item in the
bindings project is Exists()-guarded, so the missing Windows DLLs are a
no-op for the android, ios and maccatalyst target frameworks.

Trade-off: the mobile legs no longer exercise the packed artifact.
pack-wpf still does, for all three Windows samples.

Also moves the Xcode selection above the xcframework creation so
xcodebuild and the iOS build agree on a toolchain.

Note for whoever looks next: parallelising the three sample builds is not
worth it. Android is 4.4 min and macCatalyst 1.6; the iOS simulator build
alone is 49.0. That step links a ~200 MB amalgam with -force_load, and
until the previous commit it carried DWARF for every object -- the strip
change may cut it on its own. ci.yml has the same shape and pays it too.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@acalcutt
acalcutt force-pushed the chore/bump-maplibre-native-terrain-3d branch from f598ca8 to 9481d7b Compare September 3, 2026 04:02
@acalcutt
acalcutt merged commit 43cadf8 into main Sep 3, 2026
17 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