v0.10.0
github-actions
released this
07 Apr 20:09
·
1243 commits
to refs/heads/main
since this release
Significant changes since v0.9.34
For users
Scalafix will now issue a warning when loading external rules built with a potentially non-compatible version of Scalafix. Until new versions of these external rules are published, it is therefore expected that you get that warning, 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 the 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 by releasing your rule built againstscalafix-core:0.10.x
with a major bump, and ideally by adding documentation describing your compatibility matrix.
- At runtime,
- Scalameta 4.5.x brings
Pull Requests
Rules
- Add rewriting rule RedundantSyntax.finalObject (#1496) @bplommer
ExplicitResultTypes
: backquote types when needed (#1578) @danicheg- Small refactoring of explicitResultTypes (#1439) @mlachkar
- RemoveUnused: support nested Pat.Bind (#1557) @bjaglin
Framework
- only warn when loading rules built with newer core (#1588) @bjaglin
- Tweak bincompat doc/logs ahead of 0.10.0-RC1 release (#1577) @bjaglin
- define & apply binary compatibility strategy (#1565) @bjaglin
- better error for external rules ran with old scalafix-cli version (#1562) @bjaglin
- force usage of shaded TPrint (#1546) @bjaglin
Docs
- docs: add new rule and reorder alphabetically in sidebar (#1591) @bjaglin
- Fix typos in the
CONTRIBUTING.md
(#1584) @danicheg - sbt-scalafix doc updates (#1572) @bjaglin
- change logo (#1580) @mlachkar
- Add new Scalafix logo (#1575) @bishabosha
- all scala 2.x patch releases are supported (#1576) @bjaglin
- remove hidden page included in tutorial (#1564) @bjaglin
- fix docs (#1554) @bjaglin
- fix docs: reflect new param signature after #907 (#1547) @bjaglin
- attempt at fixing versions in user-facing docs (#1544) @bjaglin
- overhaul community rules page (#1540) @bjaglin
- reflect organization change (#1541) @bjaglin
Updates
- Update scalameta, semanticdb-scalac-core, ... to 4.5.3 (#1590) @scala-steward
- Update scalafmt-core to 3.5.1 (#1589) @scala-steward
- 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
- Update mdoc, sbt-mdoc to 2.3.2 (#1579) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.1 (#1570) @scala-steward
- never wait to bump scalameta (#1569) @bjaglin
- fix steward pinning (#1567) @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
- Scalameta 4.5.0 (was 4.4.35) (#1556) @SethTisue
- remove unused plugin (#1553) @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
- Update metaconfig-docs to 0.10.0 (#1530) @scala-steward
- 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