The GitHub Actions job "Validate and test" on 
pekko-grpc.git/assembly-license-notice-1.3 has failed.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
b53368ce0802be16ac500bce09ab2110182ac889 / PJ Fanning 
<[email protected]>
Ship a complete LICENSE and NOTICE in the assembly jars (1.3.x)

Motivation:
pekko-grpc-codegen and pekko-grpc-scalapb-protoc-plugin publish assembly jars
and bat archives that bundle classes from 3rd party projects, so their
META-INF/LICENSE and META-INF/NOTICE have to account for those projects.
legal/AssemblyLicense.txt and legal/AssemblyNotice.txt exist for that, but:

- The codegen assembly merged META-INF/LICENSE with MergeStrategy.concat, so
  the jar and bat shipped legal/AssemblyLicense.txt with a dependency's plain
  Apache 2.0 text appended to it rather than the curated file.
- legal/AssemblyLicense.txt had drifted from what is actually bundled. It
  listed org.checkerframework:checker-qual, which guava dropped in favour of
  org.jspecify:jspecify, and jspecify was not listed anywhere.
- scalapb-protoc-plugin let compilerplugin resolve protobuf-java
  transitively, rather than pinning it the way codegen and runtime do.

Nothing failed the build when the legal files fell behind a dependency change.

Modification:
Merge META-INF/LICENSE and META-INF/NOTICE with MergeStrategy.preferProject in
both assemblies, so our own files win over the ones the dependencies bring in.

Swap checker-qual for jspecify in legal/AssemblyLicense.txt and drop the MIT
text that was only there for checker-qual.

Pin protobuf-java in scalapb-protoc-plugin via a new Dependencies group, the
same way codegen and runtime already do. No version was changed; this branch
stays on protobuf-java 3.25.9.

Add project/AssemblyLicenseCheck.scala with two tasks, wired into both
assembly projects and run in CI as the checkAssemblyLicenses alias:

- assemblyLicenseCheck fails when a module on the assembly classpath is not
  named in the assembly LICENSE file, and warns about listed modules that are
  not bundled for the Scala version being built.
- assemblyMetaInfCheck opens the published assembly jar and bat archive and
  fails unless each carries META-INF/LICENSE and META-INF/NOTICE matching the
  files in legal/.

This is the 1.3.x port of apache/pekko-grpc#865.

Result:
Both assembly jars and both bat archives ship the curated LICENSE and NOTICE
covering the 3rd party classes they bundle, and CI fails if a dependency
change leaves the legal files behind.

Tests:
- sbt checkAssemblyLicenses - passed on Scala 2.12. assemblyLicenseCheck
  failed before the AssemblyLicense.txt fix, reporting that
  org.jspecify:jspecify was not accounted for.
- sbt scalafmtSbtCheck - passed.

References:
Refs #865

Report URL: https://github.com/apache/pekko-grpc/actions/runs/33264151387

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to