Skip to content

Pin artifact hashes, ship R8 keep-rules and script the upgrade checks - #5

Merged
sbokatuk merged 2 commits into
mainfrom
ergonomics-and-usability
Jul 24, 2026
Merged

Pin artifact hashes, ship R8 keep-rules and script the upgrade checks#5
sbokatuk merged 2 commits into
mainfrom
ergonomics-and-usability

Conversation

@sbokatuk

Copy link
Copy Markdown
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)

sbokatuk and others added 2 commits July 24, 2026 11:19
- 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>
@sbokatuk
sbokatuk merged commit 74025d1 into main Jul 24, 2026
6 checks passed
@sbokatuk
sbokatuk deleted the ergonomics-and-usability branch July 24, 2026 09:00
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