scalafix
scalafix copied to clipboard
Official support for writing community rules in Scala 3
trafficstars
Spin-off from https://github.com/scalacenter/scalafix/issues/1680 / https://github.com/scalacenter/scalafix/pull/2034
- Publish core_3 without using it internally
- [ ] Wait for scalameta
- [x] https://github.com/scalameta/scalameta/issues/2485
- [x] https://github.com/scalameta/scalameta/pull/3939
- [x] https://github.com/scalameta/scalameta/pull/3347
- [ ] https://github.com/scalameta/scalameta/issues/4146
- [ ] https://github.com/scalameta/scalameta/issues/4145 ?
- [x] https://github.com/scalameta/scalameta/issues/2485
- [ ] Consider our options for https://github.com/scalacenter/scalafix/issues/1949
- [ ] Find a way to test community rules built against core3 (custom cli/testkit artifact?)
- [ ] Publish core with Scala LTS as a patch release (or a minor release in RC if nothing was found for the point above)
- [ ] Wait for scalameta
- Prepare community rules to have artifacts built against core_3 ready ahead of the last step
- [ ] Go through the listed community rules and make sure Scala Steward rolls out the change
- [ ] Advocate for community rules to cross-compile to scala 3 by updating https://github.com/scalacenter/scalafix.g8 & examples in the docs (use scala center twitter account?)
- [ ] Instead of testing Scala 3 targets with Scala 2.12, test Scala 2.13 targets with Scala 3 in https://github.com/scalacenter/scalafix.g8 since that's what cli3 will take by default
- [ ] Update testkit scripted accordingly
- Backward compatible reflect3 (source rules written against 2.13 applied by scala-steward on scala 3 projects should continue working)
- If compilation with dotty fails, try compilation with 2.13 compiler against a core3 overlaid with the compat-metaconfig-macro containing Scala2 macros
- Publish a pure Scala 3 cli_3
- [ ] Make error actionnable when _3 artifacts are not found for community rules (fallback will no longer works as core_3 is not binary compatible with core_2.13)
- [ ] Remove advertised usage of
for3Use2_13in local rules docs https://github.com/scalacenter/scalafix/pull/2221 - [ ] Publish cli_3 against core_3 & reflect_3 in a minor (breaking-signalling) release