Releases: scalacenter/scalafix
Releases · scalacenter/scalafix
v0.10.0-RC1
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
v0.9.34
Pull Requests
- support scala 2.13.8 (#1519) @bjaglin
- don't bump JGit to keep Java 8 compatibility (#1520) @bjaglin
- Update sbt to 1.5.8 (#1516) @scala-steward
- Update interface to 1.0.6 (#1515) @scala-steward
- Update scalafmt-core to 3.2.2 (#1517) @scala-steward
- Update checkout github action (#1513) @mlachkar
- bump coursier (#1511) @bjaglin
- Update scalameta, semanticdb-scalac-core, ... to 4.4.31 (#1509) @scala-steward
- Update scalafmt-core to 3.2.1 (#1508) @scala-steward
- Update sbt to 1.5.6 (#1507) @scala-steward
- Update sbt-scalafix to 0.9.33 (#1504) @scala-steward
- Update scalafmt-core to 3.1.2 (#1506) @scala-steward
v0.9.33
Pull Requests
- add jdk 17 ci (#1502) @mlachkar
- Update scala-collection-compat to 2.6.0 (#1498) @scala-steward
- Fix ExplicitResultTypes output for Tuple1 (#1495) @bplommer
- Update sbt-scoverage to 1.9.2 (#1500) @scala-steward
- Update scalafmt-core to 3.1.1 (#1499) @scala-steward
- post 0.9.32 release (#1497) @bjaglin
v0.9.32
Pull Requests
- support scala 2.13.7 (#1493) @bjaglin
- bump MiMa (#1494) @bjaglin
- Update scalafmt-core to 3.0.8 (#1491) @scala-steward
- Update mdoc, sbt-mdoc to 2.2.24 (#1490) @scala-steward
- Update scala3-library to 3.1.0 (#1489) @scala-steward
- Fix unavailable overriddenSymbols in Scala2 (#1477) @tanishiking
- Update sbt-ci-release to 1.5.10 (#1485) @scala-steward
- Update sbt-scoverage to 1.9.1 (#1487) @scala-steward
- Update scalafmt-core to 3.0.6 (#1486) @scala-steward
- Update metaconfig-docs, ... to 0.9.15 (#1481) @scala-steward
- sbt-scoverage 1.9.0 (was 1.8.2) (#1478) @SethTisue
- post 0.9.31 release (#1479) @bjaglin
v0.9.31
Pull Requests
- scala 2.12.15 & scalameta 4.4.28 (#1473) @scala-steward
- Add accessor to
overriddenSymbols
to SymbolInformation (#1464) @tanishiking - Update org.eclipse.jgit to 5.13.0.202109080827-r (#1472) @scala-steward
- Update sbt-assembly to 1.1.0 (#1471) @scala-steward
- Update scala3-library to 3.0.2 (#1474) @scala-steward
- Update scalafmt-core to 3.0.3 (#1475) @scala-steward
- Update mdoc, sbt-mdoc to 2.2.23 (#1466) @scala-steward
- Update sbt-scalafix to 0.9.30 (#1465) @scala-steward
- Keep a simple description for Procedure syntax (#1461) @mlachkar
- docs: sbt-scalafix is now only published for sbt 1.x (#1417) @bjaglin
v0.9.30
Release highlights
- New feature added to
RemoveUnused
rule that allows removing unused function parameters (#1444, #1448) - The support for
sbt 0.13
is now dropped, which means that starting this version, the plugin is only available for sbt 1.x. It's still possible to use the latest scalafix version with an older scalafix plugin by overriding the scalafix-interfaces dependency as described in the documentation. - Some rules rely on the warning messages to apply some fixes. Since
2.12.13
and2.13.x
, the number of warnings stored by scalameta depended on a compiler option-Xmaxwarns
, which limits the number of fixes applied during each run, and the user had to configure this scalacOption to catch more warnings. Starting this release, this configuration is not necessary anymore. The rule will fix all the warnings, even if there are not printed by the compiler.
Pull Requests
- update scalameta to 4.4.27 (#1460) @mlachkar
- Unused function params follow-up (#1448) @bjaglin
- Update mdoc, sbt-mdoc to 2.2.22 (#1456) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.4.25 (#1457) @scala-steward
- Update scala-xml to 2.0.1 (#1455) @scala-steward
- Bump olafurpg/setup-scala from 12 to 13 (#1458) @dependabot
- Make NoAutoTupling fixes the insertion of unit (#1452) @mlachkar
- test against scala 3.0.1 (#1453) @bjaglin
- Update scala-collection-compat to 2.5.0 (#1449) @scala-steward
- Update sbt to 1.5.5 (#1450) @scala-steward
- Add the fact that removeUnusued cannot work for scala 3 (#1446) @mlachkar
- Remove unused (#1434) @mlachkar
- add anonymous function parameter support & enhance patvar RemoveUnused (#1444) @taisukeoe
- Update scalameta to 4.4.24 (#1445) @mlachkar
- Update scalameta, semanticdb-scalac-core, ... to 4.4.23 (#1442) @scala-steward
- Reorganize tests for both explicitResultTypes and intermal rules. (#1438) @mlachkar
- LeakingImplicitClassVal: Add tests for scala 3 (#1437) @mlachkar
- Procedure syntax (#1433) @mlachkar
- Update the scalacOptions for scala 3 build (#1435) @mlachkar
- Add tests for Disable syntax for scala 3 (#1428) @mlachkar
- Update sbt-assembly to 1.0.0 (#1429) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.4.21 (#1432) @scala-steward
- Update org.eclipse.jgit to 5.12.0.202106070339-r (#1430) @scala-steward
- Update sbt to 1.5.4 (#1431) @scala-steward
- doc: clarify where scalafixScalaBinaryVersion is looked up (#1427) @bjaglin
- Update sbt-scoverage to 1.8.2 (#1423) @scala-steward
- docs: stop using deprecated rule name (#1424) @bjaglin
- Bump olafurpg/setup-scala from 10 to 12 (#1426) @dependabot
- ask dependabot to upgrade github actions (#1425) @bjaglin
- Update sbt-scalafix to 0.9.29 (#1421) @scala-steward
- metaconfig 0.9.14 (#1419) @bjaglin
- post 0.9.29 release (#1420) @bjaglin
v0.9.29
Pull Requests
v0.9.28
Pull Requests
- post 0.9.28 release (#1412) @bjaglin
- Docs update for Scala 3 support in scalafix.g8 template (#1410) @bjaglin
- support parsing scala 2.13.6 / 2.12.14 -Xsource:3 dialect (#1409) @bjaglin
- scala 2.13.6 (#1408) @bjaglin
- docs for initial Scala 3 support (#1407) @bjaglin
- testkit: extract targetroot from scalacOptions (#1406) @bjaglin
- add triggered config description to docs (#1375) @taisukeoe
- reflect new scalafixCaching default (#1396) @bjaglin
- remove dead code (#1405) @bjaglin
- Update sbt-scoverage to 1.8.0 (#1404) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.4.17 (#1403) @scala-steward
- Update mdoc, sbt-mdoc to 2.2.21 (#1402) @scala-steward
- Update sbt to 1.5.2 (#1401) @scala-steward
- Update scala-collection-compat to 2.4.4 (#1400) @scala-steward
- Update org.eclipse.jgit to 5.11.1.202105131744-r (#1399) @scala-steward
- Update interface to 1.0.4 (#1398) @scala-steward
- remove dialect and use scalaVersion (#1392) @mlachkar
- Update scalameta, semanticdb-scalac-core, ... to 4.4.15 (#1384) @scala-steward
- Configure correctly semanticdb targetroot depending on the dialect (#1389) @mlachkar
- Deprecate v0.Rule and remove it from tests (#1379) @mlachkar
- Bump sbt-scoverage (#1391) @mlachkar
- fix the build (#1390) @mlachkar
- Update sbt-scoverage to 1.7.0 (#1385) @scala-steward
- Update metaconfig-docs to 0.9.11 (#1369) @scala-steward
- Make dialect not an option (#1388) @mlachkar
- Remove deprecated methods from scalafix-interfacs (#1387) @mlachkar
- Add withDialect method to ScalafixArguments (#1386) @mlachkar
- Update scala-xml to 1.3.0 (#1381) @scala-steward
- Update mdoc, sbt-mdoc to 2.2.20 (#1383) @scala-steward
- Make sure that semanticdb from targetroot is picked up first (#1380) @tgodzik
- Update sbt to 1.5.1 (#1382) @scala-steward
- Allow configuring the dialect in Scalafix (#1373) @mlachkar
- Update the build (#1374) @mlachkar
- Fix mima ci (#1378) @mlachkar
- Don't generate semanticdb files if there are missing (#1376) @mlachkar
- Update sbt to 1.5.0 (#1370) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.4.13 (#1371) @scala-steward
- Update shapeless to 2.3.4 (#1368) @scala-steward
- Fix snapshot version string in the Installation page (#1367) @liancheng
- Upgrade Scalameta to 4.4.12 (#1365) @liancheng
- Add kalem rules (#1364) @sake92
- Update sbt-scalafix to 0.9.27 (#1359) @scala-steward
- Update scala-collection-compat to 2.4.3 (#1362) @scala-steward
- Update org.eclipse.jgit to 5.11.0.202103091610-r (#1361) @scala-steward
- Update sbt-ci-release to 1.5.7 (#1360) @scala-steward
- Update mdoc_2.13, sbt-mdoc to 2.2.19 (#1363) @scala-steward
v0.9.27
Pull Requests
- Don't produce each time a RichCompilationUnit (#1356) @mlachkar
- Fix RemoveUnusedPatternVars (#1345) @vincenzobaz
- Use directly the presentation compiler thread (#1327) @mlachkar
- Trampoline Concat patches. (#1354) @rpiaggio
- fix due to master branch rename (#1353) @mlachkar
- Revert "add a badge" (#1351) @mlachkar
- Update sbt-ci-release to 1.5.6 (#1349) @scala-steward
- Update sbt to 1.4.9 (#1350) @scala-steward
- Handle secondary constructor in Procedure syntax (#1254) @mlachkar
- fix instructions to use nightlies (#1347) @bjaglin
- Close global after compute ondemand semanticdb files (#1348) @mlachkar
- ensure scalacOptions are honored in 2.13 (#1344) @bjaglin
- use slash notation in the build (#1342) @mlachkar
- Update interface to 1.0.3 (#1338) @scala-steward
- Update scala-collection-compat to 2.4.2 (#1340) @scala-steward
- Update mdoc_2.13, sbt-mdoc to 2.2.18 (#1341) @scala-steward
- RemoveUnused: add example for patternvars & add reference to scala 2.13 (#1336) @bjaglin
- post 0.9.26 release (#1335) @bjaglin
v0.9.26
Pull Requests
- scala 2.13.5 (#1334) @bjaglin
- Update scalameta, semanticdb-scalac-core, ... to 4.4.8 (#1331) @scala-steward
- Update organize-imports to 0.5.0 (#1329) @scala-steward
- Update mdoc_2.13, sbt-mdoc to 2.2.17 (#1330) @scala-steward
- Fix the symbol of the String type alias (#1328) @fthomas
- Unused pattern match (#1318) @vincenzobaz
- Update semanticdb-scalac-core, testkit to 4.4.7 (#1325) @scala-steward
- bootstrap a community page (#1317) @mlachkar
- Update scala-collection-compat to 2.4.1 (#1320) @scala-steward
- Update sbt-scalafix to 0.9.25 (#1326) @mlachkar
- Update sbt to 1.4.7 (#1321) @scala-steward
- Update mdoc, sbt-mdoc to 2.2.16 (#1322) @scala-steward
- Fix ci (#1324) @mlachkar