v0.10.0-RC1
Pre-release
Pre-release
github-actions
released this
03 Apr 15:24
·
1269 commits
to refs/heads/main
since this release
Significant changes since v0.9.34
For users
When loading external rules, Scalafix now verifies whether conditions are held to guarantee compatibility. It will therefore prevent rules built with a future version of Scalafix to be loaded, and issue a warning when rules built with an older, potentially non-compatible version of Scalafix are loaded.
The latter means that you will see a warning when loading any external rule available as of today, for example with OrganizeImports
v0.6.0:
[info] Loading external rule(s) built against an old version of Scalafix (0.9.31).
[info] This might not be a problem, but in case you run into unexpected behavior, you
[info] should try a more recent version of the rules(s) if available. If that does
[info] not help, request the rule(s) maintainer to build against Scalafix 0.10.0-RC1
[info] or later, and downgrade Scalafix to 0.9.x (x>=31) for the time being.
Note that most community rules (including OrganizeImports
) will work just fine despite this warning as the breaking changes in 0.10.x are very limited.
For rule authors
- Compatibility considerations have been documented.
- For this release, the following updates to Scalafix dependencies bring backward-incompatible changes:
- Scalameta 4.5.x brings
- API deprecations & removals (scalameta/scalameta#2591 & scalameta/scalameta#2582)
- a tree parsing update (scalameta/scalameta#2601, see typelevel/simulacrum-scalafix#194 (comment))
- metaconfig 0.10.0 now relies on an inlined
metaconfig-pprint
to limit the impact of a breaking change incom.lihaoyi::pprint:0.7.0
(see com-lihaoyi/PPrint#72 & scalameta/metaconfig#154). External rules had no reason to directly use the PPrint classes, but internal usage of PPrint in metaconfig'sderive*
macros (used for the configuration case classes) means that a recompilation is needed.- At runtime,
scalafix-cli:0.10.x
bringscom.lihaoyi::pprint:0.6.6
so that configurable rules compiled againstscalafix-core:0.9.x
can run - However, note that configurable rules compiled against
scalafix-core:0.10.x
will cause cryptic runtime failures withscalafix-cli:0.9.x
, so you should reflect that with a major bump when releasing your rule built againstscalafix-core:0.10.x
, and ideally a message describing your compatibility matrix.
- At runtime,
- Scalameta 4.5.x brings
Pull Requests
- Update scalafmt-core to 3.5.0 (#1587) @scala-steward
- Update scala-collection-compat to 2.7.0 (#1585) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.2 (#1586) @scala-steward
- Fix typos in the
CONTRIBUTING.md
(#1584) @danicheg - Tweak bincompat doc/logs ahead of 0.10.0-RC1 release (#1577) @bjaglin
- change logo (#1580) @mlachkar
- Add new Scalafix logo (#1575) @bishabosha
- Update mdoc, sbt-mdoc to 2.3.2 (#1579) @scala-steward
- all scala 2.x patch releases are supported (#1576) @bjaglin
- remove hidden page included in tutorial (#1564) @bjaglin
- define & apply binary compatibility strategy (#1565) @bjaglin
- Update scalameta, semanticdb-scalac-core, ... to 4.5.1 (#1570) @scala-steward
- never wait to bump scalameta (#1569) @bjaglin
- fix steward pinning (#1567) @bjaglin
- Small refactoring of explicitResultTypes (#1439) @mlachkar
- better error for external rules ran with old scalafix-cli version (#1562) @bjaglin
- Bump actions/checkout from 2 to 3 (#1561) @dependabot
- Update sbt-buildinfo to 0.11.0 (#1558) @scala-steward
- Update mdoc, sbt-mdoc to 2.3.1 (#1559) @scala-steward
- RemoveUnused: support nested Pat.Bind (#1557) @bjaglin
- Scalameta 4.5.0 (was 4.4.35) (#1556) @SethTisue
- fix docs (#1554) @bjaglin
- remove unused plugin (#1553) @bjaglin
- fix docs: reflect new param signature after #907 (#1547) @bjaglin
- Update scalafmt-core to 3.4.3 (#1551) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.4.35 (#1552) @scala-steward
- Update scala3-library to 3.1.1 (#1549) @scala-steward
- Update sbt to 1.6.2 (#1550) @scala-steward
- Update mdoc, sbt-mdoc to 2.3.0 (#1531) @scala-steward
- force usage of shaded TPrint (#1546) @bjaglin
- Update metaconfig-docs to 0.10.0 (#1530) @scala-steward
- attempt at fixing versions in user-facing docs (#1544) @bjaglin
- overhaul community rules page (#1540) @bjaglin
- reflect organization change (#1541) @bjaglin
- Update named-literal-rules (#1529) @mlachkar
- Update scalameta, semanticdb-scalac-core, ... to 4.4.33 (#1533) @scala-steward
- Update scalafmt-core to 3.3.3 (#1532) @scala-steward
- Update scalafmt-core to 3.3.1 (#1524) @scala-steward
- Update sbt-scoverage to 1.9.3 (#1525) @scala-steward
- Update sbt to 1.6.1 (#1523) @scala-steward
- post 0.9.34 release (#1527) @bjaglin