Pin artifact hashes, ship R8 keep-rules and script the upgrade checks - #5
Merged
Conversation
sbokatuk
commented
Jul 24, 2026
Owner
- Verify every resolved Maven artifact against the SHA-256 pins in build/maven-checksums.txt on every build, on both resolution paths - @(AndroidMavenLibrary) and the direct-download fallback - so a corrupted or tampered download fails the build instead of shipping. build/UpdateMavenChecksums.sh regenerates the pins on upgrade.
- Add build/verify-transitive-deps.py: checks each module's .module runtime dependencies against the declared coverage, and the ignore list against the .pom pollution it neutralises. CI runs it before packing, so a dependency upstream adds is a named failing coordinate rather than a NoClassDefFoundError in somebody's app.
- Ship consumer R8/ProGuard keep-rules in the WebView and Ndk packages, under buildTransitive/: their entry points are reached from .NET through JNI alone, so a shrunk Release build removed them. Asserted by new package-layout tests.
- README: fix the stale 3.12.1.1 install pins, and fail CI when README versions drift from Directory.Build.props (build/CheckReadmeVersions.sh)
- Pack docs/release-notes/.md into PackageReleaseNotes, with the releases page as fallback, so nuget.org stops showing empty notes
- Hoist the triplicated jctools/re2j versions into Directory.Build.props
- Document why the generated tier has no IntelliSense (the sources jars are Kotlin-only and the Javadoc importer parses Java) and the net8 sunset (dropped in the first release after 10 November 2026)
- Verify every resolved Maven artifact against the SHA-256 pins in build/maven-checksums.txt on every build, on both resolution paths - @(AndroidMavenLibrary) and the direct-download fallback - so a corrupted or tampered download fails the build instead of shipping. build/UpdateMavenChecksums.sh regenerates the pins on upgrade. - Add build/verify-transitive-deps.py: checks each module's .module runtime dependencies against the declared coverage, and the ignore list against the .pom pollution it neutralises. CI runs it before packing, so a dependency upstream adds is a named failing coordinate rather than a NoClassDefFoundError in somebody's app. - Ship consumer R8/ProGuard keep-rules in the WebView and Ndk packages, under buildTransitive/: their entry points are reached from .NET through JNI alone, so a shrunk Release build removed them. Asserted by new package-layout tests. - README: fix the stale 3.12.1.1 install pins, and fail CI when README versions drift from Directory.Build.props (build/CheckReadmeVersions.sh) - Pack docs/release-notes/<version>.md into PackageReleaseNotes, with the releases page as fallback, so nuget.org stops showing empty notes - Hoist the triplicated jctools/re2j versions into Directory.Build.props - Document why the generated tier has no IntelliSense (the sources jars are Kotlin-only and the Javadoc importer parses Java) and the net8 sunset (dropped in the first release after 10 November 2026) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Version bump, README pins to match (now CI-enforced), and the curated release notes - which this release is the first to surface on nuget.org through PackageReleaseNotes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.