Publish cli_3 & rules_3, built against core_2.13 #1680
Closed
Description
Follows https://github.com/rvacaru/GsoC-2022-Scalafix
- Testing
- reenable testing scala latest with Scala 3 build
- many of tests in ScalafixArgumentsSuite rely on semanticRule, and we don't have any yet for scala 3. We need to create a simple semanticrule and test the ignored tests for scala 3 (search for "i1680" in code)
- update integration tests
core_3-
wait for Migrate quasiquote macros to Scala 3 scalameta/scalameta#3347 acceptable to start without support of quasiquotes and getting 2.13 artifacts in the classpath?we'll proceed with cli_3/reflect_3/rules_3 builtcore_2.13 to unblock ExplicitResultTypes, and follow-up with core_3 in Official support for writing community rules in Scala 3 #2041
-
reflect_3-
add warning that quasiquotes are not supported and that compiler behavior might be different, proposing a fallback to 2.13 artefacts (or throw an exception that cli understands, which would reboot with 2.13 automatically?)let's stick to reflect_2.13 instead, and follow-up in Official support for writing community rules in Scala 3 #2041
-
- rules_3
- make sure all rules are available (even the one that is irrelevant for Scala 3) to maximise compatibility of cli_3
- start testing against 2_13 sources to maximise compatibility of cli_3
- cli_3
-
do we really need full-cross-version in Scala 3? Consider https://www.scala-lang.org/blog/2022/08/17/long-term-compatibility-plans.htmlwe do for ExplicitResultTypes to be efficient for LTS & Next, see feature: ExplicitResultTypes for Scala 3 #2023 (comment) - build with Scala Next on top of Scala LTS, and add corresponding expect (with minor suffix) - recap with a https://github.com/dwijnand/sbt-project-graph augmented with non-standard dependencies and persist it in CONTRIBUTING.md
- require a full scala version in interfaces, falling back to Next if not provided or if we don't have the exact minor version available
- coursier lookups in should fallback to loading 2.13 artifacts for requested community rules artfacts not available in scala 3
-
- sbt-scalafix
- default to cli_3 when sources are in scala 3
- provide the full scala version instead of just the binary one when loading interfaces
- Documentation
- extensive release notes for build tools authors to provide a full scala version for scala 3