The GitHub Actions job "Link Validator" on pekko-grpc.git/main has failed.
Run started by GitHub user pjfanning (triggered by pjfanning).

Head commit for run:
922fbb536b8cb3a8dcbbb1af5f1cad6786b595d2 / Scala Steward 
<[email protected]>
Update scala-library to 3.9.0 (#881)

* Update scala-library to 3.9.0

* fix

* Drop stray $ from PekkoHttpServerProviderJava test object name

Motivation:
Scala 3.9.0 added syntax warning E230, which flags identifiers containing
`$` as reserved for internal compiler use. The interop-tests test sources
are compiled with `-Werror`, so `object PekkoHttpServerProviderJava$` turns
that warning into a build failure.

The trailing `$` is not intentional. It is a leftover from the Akka to
Pekko rename in 7ad0b5d6; the equivalent object in the sbt scripted test
copy of this spec is named `PekkoHttpServerProviderJava` with no `$`.

Modification:
Rename the object to `PekkoHttpServerProviderJava` and update its single
reference in `Servers.Pekko.Java`.

Result:
interop-tests test sources compile under Scala 3.9.0 with `-Werror`.

Tests:
- sbt -batch "++3.9.0!" Test/compile - success

References:
Refs #883

* Keep the sbt 2.x plugin on the Scala version sbt itself is built with

Motivation:
Bumping scala3Next to 3.9.0 broke the `sbt scripted tests (scala3, next)`
job. scala3Next was doing two unrelated jobs at once: it is the newest
Scala 3 release the library is compiled and tested against, and it is also
the Scala version the sbt 2.x plugin is cross-built with.

The second is not ours to choose. sbt uses its own Scala compiler to
compile build.sbt, and every sbt 2.x release to date, up to and including
2.0.8, depends on scala3-library_3 3.8.4. A plugin built with 3.9.0 emits
TASTy 28.9, which that compiler cannot read, so loading any build that
uses the plugin fails:

  value autoImport is not a member of object
  org.apache.pekko.grpc.sbt.PekkoGrpcPlugin
    error while loading IArray$package,
    TASTy file scala/IArray$package.tasty could not be read, failing with:
      Forward incompatible TASTy file has version 28.9, produced by
      Scala 3.9.0-bin-nonbootstrapped, expected stable TASTy from
      28.0 to 28.8.

Modification:
Split the two roles apart. Add Versions.scala3ForSbtPlugin, pinned to the
Scala version sbt 2.x is built with, and use it in CrossScalaForSbtPlugin.
scala3Next stays free to track the newest Scala 3 release.

Add a `sbt-plugin-scala3` case to resolve-scala-version.sh and point the
`scala3` scripted matrix entry at it, so the scripted job builds the plugin
with a version sbt can load.

The scripted test projects still receive scala3Next through
-Dpekko.grpc.scala3.next.version, so their generated sources are still
compiled with the newest Scala 3 - which is the part of that job worth
testing. Publishing is unaffected: `+publish` picks up the cross version
from CrossScalaForSbtPlugin.

Result:
The sbt plugin is loadable by sbt 2.x again, and scala3Next can be bumped
independently of sbt's release cadence.

Tests:
- sbt -batch "++3.9.0!" Test/compile - success
- bash .github/scripts/resolve-scala-version.sh sbt-plugin-scala3 - 3.8.4
- bash .github/scripts/resolve-scala-version.sh next - 3.9.0
- sbt "sbt-plugin/scripted scala3/*" - not run locally, relying on CI

References:
Refs #881

---------

Co-authored-by: PJ Fanning <[email protected]>

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

With regards,
GitHub Actions via GitBox


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

Reply via email to