He-Pin opened a new pull request, #3052: URL: https://github.com/apache/pekko/pull/3052
## Summary Migrate the build system from sbt 1.12.11 to sbt 2.0.0-RC14 for build speed improvements (cached tasks, Scala 3 build definitions, modernized APIs). **This is a WIP/tracking PR.** The build does not compile yet — blocked on 10 sbt plugins gaining sbt 2 support. Relates to: https://github.com/apache/pekko/issues/2210 ## Migration Checklist ### sbt Version & Build Config - [x] Update `project/build.properties` to `sbt.version=2.0.0-RC14` - [x] Migrate wildcard imports `._` → `.*` in all 33 `project/*.scala` files - [x] Fix `Tuple.zipped` → `lazyZip` in `SbtMultiJvmPlugin.scala` - [x] Fix `Types.Id[Keys.TaskStreams]` → `Keys.TaskStreams` in `SbtMultiJvmPlugin.scala` - [x] Add explicit type annotation for `implicit val display` in `SbtMultiJvmPlugin.scala` - [ ] Rewrite `InputTask.createDyn`/`loadForParser` for sbt 2 API (3 locations in `SbtMultiJvmPlugin.scala`) - [ ] Rewrite `FileFunction.cached` with `ChangeReport` API in `Protobuf.scala` - [ ] Handle `Classpath` type change (`Attributed[File]` → `Attributed[HashedVirtualFileRef]`) - [ ] Address `exportJars` default change (now `true`) - [ ] Address bare settings scoping change (now COMMON, not root-only) - [ ] Address task caching changes (all tasks cached by default) - [ ] Convert `implicit class`/`implicit def` to Scala 3 `extension`/`given` style (optional) ### Plugin Compatibility (17/27 ready) #### ✅ Ready — version bumped | Plugin | Old | New | |--------|-----|-----| | sbt-assembly | 2.2.0 | 2.3.1 | | sbt-java-formatter | 0.11.0 | 0.12.0 | | sbt-osgi | 0.10.0 | 0.11.0-RC1 | | sbt-paradox | 0.10.7 | 0.11.0-M4 | | sbt-paradox-theme | 0.10.7 | 0.11.0-M4 | #### ✅ Ready — same version works sbt-jupiter-interface, sbt-scalafmt, sbt-scalafix, sbt-mima-plugin, sbt-unidoc, sbt-jmh, sbt-boilerplate, sbt-header, sbt-dynver, sbt-license-report, sbt-welcome, sbt-bloop #### ⚠️ In Progress — waiting on upstream | Plugin | Status | Tracking | |--------|--------|----------| | sbt-pull-request-validator | PR open | [sbt/sbt-pull-request-validator#104](https://github.com/sbt/sbt-pull-request-validator/pull/104) | | sbt-sbom | Merged, not published | [sbt/sbt-sbom#224](https://github.com/sbt/sbt-sbom/issues/224) | | sbt-source-dist | Issue open | [pjfanning/sbt-source-dist#46](https://github.com/pjfanning/sbt-source-dist/issues/46) | | sbt-reproducible-builds | Blocked on sbt-gpg | [raboof/sbt-reproducible-builds#344](https://github.com/raboof/sbt-reproducible-builds/issues/344) | #### ❌ Not Available — issues created | Plugin | Status | Tracking | |--------|--------|----------| | sbt-pekko-build | Pekko-internal, must self-migrate | [pjfanning/sbt-pekko-build#21](https://github.com/pjfanning/sbt-pekko-build/issues/21) | | pekko-sbt-paradox | Pekko-internal, must self-migrate | [apache/pekko-sbt-paradox#182](https://github.com/apache/pekko-sbt-paradox/issues/182) | | sbt-bill-of-materials | Low maintenance | [lightbend/sbt-bill-of-materials#12](https://github.com/lightbend/sbt-bill-of-materials/issues/12) | | sbt-api-mappings | Stale upstream | [ThoughtWorksInc/sbt-api-mappings#202](https://github.com/ThoughtWorksInc/sbt-api-mappings/issues/202) | | sbt-depend-walker | No activity | [Roiocam/sbt-depend-walker#1](https://github.com/Roiocam/sbt-depend-walker/issues/1) | | sbt-develocity | Gradle-maintained, repo not public | — | ### Disabled Plugin Code (temporarily commented out) - [x] `build.sbt`: Comment out `ReproducibleBuildsPlugin`, `DependWalkerPlugin`, `BillOfMaterialsPlugin`, `PekkoParadoxPlugin`, `UnidocWithPrValidation`, `ValidatePullRequest` references - [x] `AddMetaInfLicenseFiles.scala`: Stub `ApacheSonatypePlugin` usage - [x] `Publish.scala`: Remove `ApacheSonatypePlugin` from `requires` - [x] `OSGi.scala`: Bypass `ReproducibleBuildsPlugin.postProcessJar` - [x] `PekkoDevelocityPlugin.scala`: Stub both AutoPlugins - [x] `Paradox.scala`: Comment out `PekkoParadoxPlugin` usage - [x] `ValidatePullRequest.scala`: Stub `PullRequestValidatorPlugin` usage ### Decision Points - [ ] `sbt-bill-of-materials`: Drop or fork? (Low maintenance upstream) - [ ] `sbt-api-mappings`: Drop or fork? (Stale upstream) - [ ] `sbt-depend-walker`: Drop? (Low priority) - [ ] `sbt-develocity`: Wait for Gradle or drop? ## Tests WIP — build does not compile yet. Will validate once all plugin dependencies are resolved. ## References - [Migrating from sbt 1.x](https://www.scala-sbt.org/2.x/docs/en/changes/migrating-from-sbt-1.x.html) - [sbt 2.x plugin migration tracker](https://github.com/sbt/sbt/wiki/sbt-2.x-plugin-migration) - [sbt2-compat](https://github.com/sbt/sbt2-compat) - [Tracking issue: apache/pekko#2210](https://github.com/apache/pekko/issues/2210) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
