Mongo2Go 5.0.0 — MongoDB 8.0.26 (breaking change)#162
Merged
Conversation
JohannesHoppe
force-pushed
the
feature/mongodb-8-lts
branch
3 times, most recently
from
July 21, 2026 16:28
8b31767 to
ff1f912
Compare
Bundle MongoDB Community Server 8.0.26 (8.0 LTS) and Database Tools 100.14.0, replacing 4.4.4 / 100.3.1. MongoDB 8.0 raises consumers' minimum OS (the Linux build needs glibc 2.35+), so this is a major version bump. Highlights - Native macOS arm64 (Apple Silicon): no more Rosetta 2, completing #127. Bundled platforms are now Windows x64, Linux x64 & arm64, macOS x64 & arm64. - libcrypto.so.1.1 is no longer required: the Linux binaries are the ubuntu2204 build, linked against OpenSSL 3. Fixes #149 and #135. - Fix "too many open files" (#147): dispose the chmod, import/export and replica-set-init processes/clients that leaked file descriptors on every runner start and every import/export. - Strong-name the Mongo2Go assembly (#150) so it can be referenced from strong-named consumer projects. MongoDB.Driver has been strong-named since 2.28.0, so the separate MongoDB.Driver.signed package is not needed. MongoDownloader - Cap concurrent llvm-strip and archive processing, stream downloads to disk, and compact the heap between archives, so a full multi-platform run stays within a modest RAM budget instead of being OOM-killed. - Handle tar directory entries and close the zip extraction stream before stripping; both crashed extraction on the 8.x archives. - Strip macOS binaries by removing the signature first, then ad-hoc re-sign arm64 so the stripped binary runs on Apple Silicon (unsigned arm64 is SIGKILLed by the kernel); the Intel x64 binary is left unsigned as before. - Ship only the three executables per platform. Upstream licence terms are reproduced in README.md instead, keeping the package under nuget.org's 250 MiB limit. Repository storage - The binaries are committed gzip-compressed (tools/**/bin/*.gz) because GitHub rejects files over 100 MB and the 8.x mongod binaries are larger. The build unpacks them on demand (PrepareMongoBinaries target); the decompressed executables are git-ignored. The manifest and the runtime verification still work on the decompressed binaries, unchanged. Packaging - The release job recompresses the .nupkg at maximum Deflate before pushing, reclaiming ~1.1 MiB, and fails the release if the package is still at or over the 250 MiB limit. tools/**/*.gz and src/Mongo2Go/MongoBinaries.sha256 are regenerated together; the runtime checksum manifest describes the (decompressed) binaries exactly. All 49 tests pass against the real 8.0.26 binaries on macOS arm64, with Mongo2Go.dll strong-named on both target frameworks.
JohannesHoppe
force-pushed
the
feature/mongodb-8-lts
branch
from
July 21, 2026 17:11
ff1f912 to
46cbe7a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mongo2Go 5.0.0 — MongoDB 8.0.26
Upgrades the bundled MongoDB from 4.4.4 → 8.0.26 (8.0 LTS) and Database Tools 100.3.1 → 100.14.0. MongoDB 8.0 raises consumers' minimum OS (Linux glibc 2.35+ — Ubuntu 22.04+/Debian 12+/RHEL 9+), so this is a breaking change → v5.0.0.
Highlights
libcrypto.so.1.1no longer required (8.x links OpenSSL 3); thelibssl1.1CI workaround is gone. Fixes Missing libcrypto.so.1.1 in mcr.microsoft.com/dotnet/sdk:8.0 #149 and Mongo2Go 3.X.X Not working in GitlabCI #135.chmod, import/export and replica-set-init processes/clients.Mongo2Go.dllis now strong-named, so it can be referenced from strong-named / signed consumer projects. Fixes Is possible to create nuget with MongoDB.Driver.signed? #150.Notable engineering
.nupkgat maximum Deflate → 248 MiB, ~1.6 MiB under nuget.org's 250 MiB limit.mongodbinaries exceed GitHub's 100 MB per-file limit, so they are committed gzip-compressed (tools/**/bin/*.gz, ≤50 MB each) and unpacked at build time by an MSBuild target. The shipped package and the runtime are unchanged — the nupkg still contains the full binaries.llvm-strip/archive work and switched to streaming downloads so a full run no longer OOM-kills a modest machine; fixed two extraction crashes specific to the 8.x archives (tar directory entries, and a Windows zip file-lock while stripping).Note on the binaries
The vendored binaries were re-downloaded from MongoDB's own endpoints, verified against MongoDB's published SHA-256, stripped and signed by @JohannesHoppe .