Skip to content

Releases: scalacenter/scalafix

v0.13.0

27 Sep 22:39
aadace9
Compare
Choose a tag to compare

Significant changes since v0.12.1

For users

  • An initial version of ExplicitResultTypes for Scala 3 is available.
    • Expect limitations and bugs compared to the Scala 2 version - please report issues when possible, with a compact snippet.
    • Scala 3.3 LTS and Scala 3.5 Next are supported out of the box. Experimental support for Scala 3.4 can be unlocked via ExplicitResultTypes.fetchScala3CompilerArtifactsOnVersionMismatch = true.
    • To try it, the freshly published Scala 3 version of Scalafix must be loaded:
      • If you use scalafix-cli, pick the Scala 3.3.x LTS artifact if your sources are compiled with Scala 3 LTS, or the latest Scala Next otherwise.
      • If you use sbt-scalafix, make sure that scalafixScalaBinaryVersion (deprecated in sbt-scalafix 0.12.1) is not set in your build.
      • A small change is required for other build tools (see below), so reach out to the maintainer of the Scalafix plugin if you keep getting the error "The ExplicitResultTypes rule needs to run with the same Scala binary version as the one used to compile target sources" after upgrading.
  • Scala 3.3.4 exposes unused warnings to SemanticDB, so RemoveUnused and OrganizeImports.removeUnused can now be used on sources compiled with Scala 3.3 LTS (Scala 3.4+ was already supported since Scalafix 0.12.0).

For rule authors

  • Scalafix is now cross-built & tested against the latest Scala 2.x patch releases (2.12.20 & 2.13.15), unlocking upgrades of your builds depending on scalafix-testkit.
  • Scalameta was bumped from 4.9.3 to 4.10.1, bringing many bugfixes and a few features, as well as some tree hierarchy changes in the parser, breaking forward & backward compatibility. See #2079 to tell whether your rule(s) are impacted, and scalameta/scalameta#3913 to understand the changes.
  • Despite the support of the built-in rule ExplicitResultTypes for Scala 3, scalafix-core is not yet published for Scala 3, so you should stick to cross-building for Scala 2.12 & 2.13 only. Check #2041 if you are curious about the current blockers and the next steps on that journey.

For tooling maintainers (scalafix-interfaces clients)

  • To support ExplicitResultTypes on Scala 3 sources, scalafix-interfaces can and should classload the freshly published Scala 3 artifacts. You should therefore remove the fallback to 2.13 when targeting Scala 3 sources. Also, to better support Scala 3 LTS, the full Scala version should be passed to Scalafix.fetchAndClassloadInstance() instead of the binary one. See scalacenter/sbt-scalafix#430 as an example of expected changes.

Pull Requests

Rules

  • feature: ExplicitResultTypes for Scala 3 (#2023) @tgodzik
  • handle unused warnings for sources compiled with upcoming LTS 3.3.4 (#1942) @bjaglin

Framework

Docs

Updates

  • build and test against Scala 3.3.4 final (#2076) @bjaglin
  • Update scalameta to 4.10.1 (#2083) @scala-center-steward
  • scalameta 4.10.0 (#2078) @bjaglin
  • build with and test against Scala 2.12.20 & 2.13.15 (#2052) @bjaglin
  • latest scalameta introduces new items in tree hierarchy (#2079) @bjaglin
  • build and test against Scala 3.5.1 (#2077) @bjaglin
  • Update interface to 1.0.20 (#2068) @scala-center-steward
  • Update sbt-scoverage to 2.2.0 (#2072) @scala-center-steward
  • Update munit to 1.0.2 (#2071) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.4-RC3 (#2070) @scala-center-steward
  • Update coursier to 2.1.12 (#2067) @scala-center-steward
  • build & test against 3.3.4-RC2 (#2066) @bjaglin
  • Update sbt-scoverage to 2.1.1 (#2063) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.4.3 to 1.5.0 (#2059) @dependabot
  • bump scalameta to pre-4.9.10 SNAPSHOT (was 4.9.3) (#2047) @bjaglin
  • bump sbt-ci-release to fix JDK8 support (#2040) @bjaglin
  • Update sbt-ci-release to 1.6.0 (#2036) @scala-center-steward
  • Update munit to 1.0.1 (#2037) @scala-center-steward
  • test against Scala 3.5.0 (#2033) @bjaglin
  • Bump VirtusLab/scala-cli-setup from 1.4.1 to 1.4.3 (#2030) @dependabot
  • Update metaconfig-typesafe-config to 0.13.0 (#2025) @scala-center-steward
  • Update scalafmt-core to 3.8.3 (#2026) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.5.4 (#2019) @scala-center-steward
  • Update sbt-scoverage to 2.1.0 (#2020) @scala-center-steward
  • Update sbt to 1.10.1 (#2018) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.4.0 to 1.4.1 (#2021) @dependabot
  • Update mdoc, sbt-mdoc to 2.5.3 (#2013) @scala-center-steward
  • Update scalatest to 3.2.19 (#2015) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.3.2 to 1.4.0 (#2016) @dependabot
  • Update sbt to 1.10.0 (#1997) @scala-center-steward
  • Update scalafmt-core to 3.8.2 (#2009) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.4.2 (#2003) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.3.0 to 1.3.2 (#2002) @dependabot
  • Update sbt-scoverage to 2.0.12 (#1999) @scala-center-steward
  • Update coursier to 2.1.10 (#1996) @scala-center-steward
  • Update munit to 1.0.0 (#2004) @scala-center-steward
  • Post 0.12.1 release (#1991) @bjaglin

v0.12.1

01 May 20:24
d0a8f3b
Compare
Choose a tag to compare

Pull Requests

Rules

  • RemoveUnused: guard Term.Block RHS in unused Defn (#1978) @bjaglin

Framework

Docs

  • sbt-scalafix scalafixScalaBinaryVersion is now deprecated (#1990) @bjaglin
  • improve docs about RemoveUnused (#1992) @bjaglin
  • docs: clarify that resolvers is only looked up at build level (#1977) @bjaglin
  • update docs to document that sbt resolvers are now handled (#1975) @bjaglin
  • docs: remove dead link for cross-publish-custom-rules (#1968) @xuwei-k
  • OrganizeImports: fix invalid recommended scalac option (#1958) @Saisse
  • docs: remove references to dotty (#1956) @bjaglin

Updates

  • Update scala-xml to 2.3.0 (#1989) @scala-center-steward
  • Update scala-collection-compat to 2.12.0 (#1988) @scala-center-steward
  • Update commons-text to 1.12.0 (#1986) @scala-center-steward
  • Update sbt-version-policy to 3.2.1 (#1985) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.2.2 to 1.3.0 (#1982) @dependabot
  • build and test against Scala 2.13.14 (#1984) @bjaglin
  • Bump VirtusLab/scala-cli-setup from 1.2.1 to 1.2.2 (#1974) @dependabot
  • Update scalameta to 4.9.3 (#1967) @scala-center-steward
  • test against Scala 3.4.1 (#1973) @bjaglin
  • Bump VirtusLab/scala-cli-setup from 1.2.0 to 1.2.1 (#1971) @dependabot
  • Update sbt-projectmatrix to 0.10.0 (#1964) @scala-center-steward
  • Update scalafmt-core to 3.8.1 (#1970) @scala-center-steward
  • Update sbt-buildinfo to 0.12.0 (#1969) @scala-center-steward
  • Update sbt-scalafix to 0.12.0 (#1963) @scala-center-steward
  • Update scalameta to 4.9.2 (#1962) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.1.3 to 1.2.0 (#1959) @dependabot
  • Bump gautamkrishnar/keepalive-workflow from 1 to 2 (#1960) @dependabot
  • Post 0.12.0 release (#1882) @bjaglin

v0.12.0

02 Mar 15:54
c1d8a34
Compare
Choose a tag to compare

Significant changes since v0.11.1

For users

  • Better Scala 3 support
    • OrganizeImports.removeUnused & RemoveUnused (with a known limitation for unused function parameters) are now supported with Scala 3.4+
    • New flag OrganizeImports.targetDialect to control wildcard/rename syntax & curly braces stripping behavior (see documentation)
    • LambdaType and MatchType are now fully supported
  • JDK21 is now fully supported
  • Script files (.sc) are now supported

For rule authors

  • Scalameta was bumped from 4.8.10 to 4.9.1, bringing many bugfixes and a few features, as well as some behavioral changes breaking backward compatibility
    • Term.Interpolate now always capture curly braces through a wrapping Term.Block when parsed with scalafix 0.12.x (scalameta/scalameta#3594)
      • This may trigger false negatives for rules tested against 0.11.1 or earlier, which do not expect that Term.Block
      • Such rules must be updated to work with Scalafix 0.12.x, ideally with logic handling both presence and absence of Term.Block to preserve compatibility with earlier Scalafix versions
    • tree.pos == Position.None is no longer a reliable way to check whether a given tree comes from the input document, since trees built via quasiquotes with scalafix 0.12.x may now have positions (scalameta/scalameta#3450)
      • To avoid false negatives on Scalafix 0.12.x, check equality on tree.origin, ideally combining this check with the previous predicate to preserve compatibility with earlier Scalafix versions
  • scalafix-testkit is now published for Scala 2.12.19 & Scala 2.13.13
    • Usage of API methods decorated via implicits trigger new fatal warnings for rules built with -Xsource:3 (#1949)

Pull Requests

Rules

  • Support OrganizeImports.removeUnused in Scala 3.4+ (#1800) @tanishiking
  • OrganizeImports: don't leak state from one fix execution to another (#1921) @bjaglin
  • Support RemoveUnused in Scala 3.4+ (#1728) @bjaglin
  • OrganizeImports.targetDialect: wildcard/rename syntax & curly braces stripping (#1896) @bjaglin
  • RedundantSyntax: distinguish single and triple quotes (#1851) @bjaglin

Framework

Docs

Updates

  • Update scalameta to 4.9.1 (#1950) @scala-center-steward
  • Update sbt-scoverage to 2.0.11 (#1948) @scala-center-steward
  • Update scalafmt-core to 3.8.0 (#1947) @scala-center-steward
  • Update sbt to 1.9.9 (#1946) @scala-center-steward
  • Scalameta 4.9.1-RC1 (#1945) @bjaglin
  • Bump all Scala versions (2.12.19, 2.13.13, 3.4.0) (#1932) @bjaglin
  • Bump VirtusLab/scala-cli-setup from 1.1.2 to 1.1.3 (#1934) @dependabot
  • scalameta 4.9.x (#1927) @bjaglin
  • Update sbt-scoverage to 2.0.10 (#1931) @scala-center-steward
  • Update scalatest to 3.2.18 (#1930) @scala-center-steward
  • Update coursier to 2.1.9 (#1928) @scala-center-steward
  • Update sbt-version-policy to 3.2.0 (#1902) @scala-center-steward
  • Bump release-drafter/release-drafter from 5 to 6 (#1923) @dependabot
  • Bump VirtusLab/scala-cli-setup from 1.1.1 to 1.1.2 (#1917) @dependabot
  • Update sbt-projectmatrix to 0.9.2 (#1913) @scala-center-steward
  • Update org.eclipse.jgit to 5.13.3.202401111512-r (#1914) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.5.2 (#1915) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.1.0 to 1.1.1 (#1916) @dependabot
  • Update scalameta to 4.8.15 (#1909) @scala-center-steward
  • Update scalafmt-core to 3.7.17 (#1906) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.5.1 (#1905) @scala-center-steward
  • Update sbt to 1.9.8 (#1904) @scala-center-steward
  • Update coursier to 2.1.8 (#1903) @scala-center-steward
  • Update scalameta to 4.8.14 (#1899) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.0.6 to 1.1.0 (#1898) @dependabot
  • Bump VirtusLab/scala-cli-setup from 1.0.5 to 1.0.6 (#1893) @dependabot
  • full support for JDK21 via scalameta 4.8.13 (#1810) @bjaglin
  • Update scalafmt-core to 3.7.15 (#1886) @scala-center-steward
  • Update sbt to 1.9.7 (#1885) @scala-center-steward
  • Update commons-text to 1.11.0 (#1884) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.0.4 to 1.0.5 (#1883) @dependabot
  • Update metaconfig-docs, ... to 0.12.0 (#1877) @scala-center-steward
  • Update scalameta to 4.8.12 (#1879) @scala-center-steward
  • Update scalameta, semanticdb-scalac-core, ... to 4.8.11 (#1872) @scala-center-steward
  • Update interface to 1.0.19 (#1875) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.3.8 (#1878) @scala-center-steward
  • Update sbt to 1.9.6 (#1876) @scala-center-steward
  • Update sbt-scoverage to 2.0.9 (#1871) @scala-center-steward
  • Update scalatest to 3.2.17 (#1870) @scala-center-steward
  • Update coursier to 2.1.7 (#1868) @scala-center-steward
  • Update scalafmt-core to 3.7.14 (#1869) @scala-center-steward
  • Bump actions/checkout from 3 to 4 (#1867) @dependabot
  • Post 0.11.1 release (#1866) @bjaglin

v0.11.1

11 Sep 02:10
f4dcc6f
Compare
Choose a tag to compare

Pull Requests

Rules

  • RedundantSyntax: distinguish single and triple quotes (#1851) @bjaglin

Framework

Docs

Updates

  • Update scalameta, semanticdb-scalac-core, ... to 4.8.10 (#1857) @scala-center-steward
  • Scala 3.3.1 final (#1863) @bjaglin
  • use & support scala 2.13.12 (#1861) @bjaglin
  • Update coursier to 2.1.6 (#1853) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.1-RC7 (#1854) @scala-center-steward
  • Update sbt to 1.9.4 (#1855) @scala-center-steward
  • Update scalafmt-core to 3.7.13 (#1856) @scala-center-steward
  • update the directory to run the tests/test command from (#1859) @msolomon-ck
  • Update scalafmt-core to 3.7.12 (#1844) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.1-RC5 (#1843) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.0.2 to 1.0.4 (#1841) @dependabot
  • Update sbt-version-policy to 2.1.3 (#1842) @scala-center-steward
  • Update scalafmt-core to 3.7.11 (#1838) @scala-center-steward
  • Update sbt-version-policy to 2.1.2 (#1836) @scala-center-steward
  • Update sbt to 1.9.3 (#1837) @scala-center-steward
  • Bump scalameta to 4.8.4 & keep fastparse/geny for compat (#1819) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.0.1 to 1.0.2 (#1826) @dependabot
  • do not update scalafmt ASAP (#1824) @bjaglin
  • Update sbt to 1.9.2 (#1823) @scala-center-steward
  • Update scala-xml to 2.2.0 (#1822) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.1-RC4 (#1821) @scala-center-steward
  • Update scalameta, semanticdb-scalac-core, ... to 4.8.2 (#1812) @scala-center-steward
  • Update scalafmt-core to 3.7.7 (#1811) @scala-center-steward
  • Update scalafmt-core to 3.7.6 (#1808) @scala-center-steward
  • Update scalameta, semanticdb-scalac-core, ... to 4.8.1 (#1809) @scala-center-steward
  • Update scala-collection-compat to 2.11.0 (#1806) @scala-center-steward
  • Update sbt to 1.9.1 (#1807) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.3.1-RC2 (#1805) @scala-center-steward
  • Update org.eclipse.jgit to 5.13.2.202306221912-r (#1804) @scala-center-steward
  • Update coursier to 2.1.5 (#1803) @scala-center-steward
  • Update sbt-projectmatrix to 0.9.1 (#1802) @scala-center-steward
  • Update scalafmt-core to 3.7.5 (#1798) @scala-center-steward
  • Update sbt-scoverage to 2.0.8 (#1791) @scala-center-steward
  • Update scalatest to 3.2.16 (#1790) @scala-center-steward
  • Update sbt to 1.9.0 (#1789) @scala-center-steward
  • Update interface to 1.0.18 (#1788) @scala-center-steward
  • Update sbt-version-policy to 2.1.1 (#1787) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 1.0.0 to 1.0.1 (#1785) @dependabot
  • sbt-scalafix 0.11.0 (#1783) @bjaglin
  • Post 0.11.0 (#1775) @bjaglin

v0.11.0

03 Jun 15:04
Compare
Choose a tag to compare

Significant changes since v0.10.4

For users

  • Breaking: dropped support for running Scalafix against Scala 2.11 sources (#1635)
    • If you run Scalafix against projects containing Scala 2.11 sources, keep using Scalafix 0.10.4
  • New: OrganizeImports is now a built-in rule (https://github.com/liancheng/scalafix-organize-imports/discussions/215)
    • com.github.liancheng::organize-imports:0.6.0+37-596459af has been merged as-is into Scalafix, so OrganizeImports will keep running without any modification to .scalafix.conf
    • To get rid of the "Ignoring requested classpath dependency com.github.liancheng::organize-imports:0.6.0" warning, simply remove the entry from the scalafixDependencies setting key (or similar if you are not using sbt)
  • New: added support for the latest Scala versions (3.3.0, 2.13.11, 2.12.18)
    • Despite the support for the -Wunused:* flags added in Scala 3.3.0, RemoveUnused is not yet supported on Scala 3 (see #1728 (comment))

For rule authors

Pull Requests

Rules

  • Merge OrganizeImports 0.6.0+37-596459af into Scalafix as a built-in rule (#1480) @liancheng
  • RedundantSyntax: honor suppression (#1703) @bjaglin
  • ExplicitResultTypes: honor skipSimpleDefinitions on implicits (#1698) @rvacaru

Framework

Docs

Updates

  • Scala 2.12.18 & 2.13.11 (#1772) @bjaglin
  • Scala 3.3.1-RC1 (#1771) @bjaglin
  • Update scala3-compiler to 3.3.0 (#1768) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 0.2.1 to 1.0.0 (#1764) @dependabot
  • Update coursier to 2.1.4 (#1767) @scala-center-steward
  • Update scalafmt-core to 3.7.4 (#1769) @scala-center-steward
  • Update scalameta, semanticdb-scalac-core, ... to 4.7.8 (#1765) @scala-center-steward
  • Update interface to 1.0.16 (#1760) @scala-center-steward
  • Update sbt to 1.8.3 (#1761) @scala-center-steward
  • Update coursier to 2.1.3 (#1759) @scala-center-steward
  • Update sbt-ghpages to 0.8.0 (#1758) @scala-center-steward
  • Update sbt-ci-release to 1.5.12 (#1757) @scala-center-steward
  • Update scala-collection-compat to 2.10.0 (#1755) @scala-center-steward
  • Update coursier to 2.1.2 (#1754) @scala-center-steward
  • Bump VirtusLab/scala-cli-setup from 0.2.0 to 0.2.1 (#1753) @dependabot
  • Update scalameta, semanticdb-scalac-core, ... to 4.7.7 (#1752) @scala-center-steward
  • Update scala-java8-compat to 1.0.2 (#1719) @scala-center-steward
  • Update interface to 1.0.15 (#1749) @scala-center-steward
  • Update coursier to 2.1.1 (#1748) @scala-center-steward
  • Update scalafmt-core to 3.7.3 (#1745) @scala-center-steward
  • Update mdoc, sbt-mdoc to 2.3.7 (#1731) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.2.2 (#1734) @scala-center-steward
  • Update scalameta, semanticdb-scalac-core, ... to 4.7.6 (#1743) @scala-center-steward
  • Update coursier to 2.1.0 (#1741) @scala-center-steward
  • Update sbt-scoverage to 2.0.7 (#1742) @scala-center-steward
  • Bump olafurpg/setup-scala from 13 to 14 (#1736) @dependabot
  • Update scalafmt-core to 3.7.2 (#1739) @scala-center-steward
  • bump coursier (#1732) @bjaglin
  • Update scalafmt-core to 3.7.1 (#1727) @scala-center-steward
  • Update scalafmt-core to 3.7.0 (#1723) @scala-center-steward
  • Update sbt to 1.8.2 (#1722) @scala-center-steward
  • Update sbt to 1.8.0 (#1720) @scala-center-steward
  • Update scala3-compiler, scala3-library to 3.2.1 (#1707) @scala-center-steward
  • Update sbt-ci-release to 1.5.11 & sbt-ghpages to 0.7.0 (#1705) @scala-center-steward
  • Update sbt-scoverage to 2.0.6 (#1711) @scala-center-steward
  • Update sbt to 1.7.3 (#1710) @scala-center-steward
  • Update scala-java8-compat to 0.9.1 (#1709) @scala-center-steward
  • Update sbt-version-policy to 2.1.0 (#1704) @scala-center-steward
  • Update scala-collection-compat to 2.9.0 (#1708) @scala-center-steward
  • Update scalafmt-core to 3.6.1 (#1701) @scala-steward
  • Update scala3-library to 3.2.0 (#1691) @scala-steward
  • Update metaconfig-docs, ... to 0.11.1 (#1688) @scala-steward
  • Update scalafmt-core to 3.6.0 (#1696) @scala-steward
  • Update sbt-scoverage to 2.0.5 (#1694) @scala-steward
  • Update commons-text to 1.10.0 (#1690) @scala-steward
  • Update sbt to 1.7.2 (#1693) @scala-steward
  • Update scala-collection-compat to 2.8.1 (#1692) @scala-steward
  • Update interface to 1.0.9 (#1689) @scala-steward
  • Update sbt-scalafix to 0.10.4 (#1687) @scala-steward
  • post 0.10.4 release (#1686) @bjaglin

v0.10.4

10 Oct 21:27
a540a64
Compare
Choose a tag to compare

Updates

v0.10.3

20 Sep 23:33
449a06a
Compare
Choose a tag to compare

Pull Requests

Updates

v0.10.2

15 Sep 16:20
Compare
Choose a tag to compare

Pull Requests

Rules

  • support Scala 3 style wildcard import in RemoveUnused (#1664) @xuwei-k
  • Add an option to only add explicit result types to implicit definitions (#1623) @OlegYch
  • Fix RedundantSyntax raw interpolator handling (#1618) @gontard

Framework

  • don't publish scala 3 artifacts for now (#1670) @bjaglin
  • remove unused class (#1667) @bjaglin
  • skip src and doc packaging when publishing locally (#1665) @bjaglin
  • build (java) interfaces module once for all scala versions (#1645) @bjaglin
  • cli should support configurable rules built against older core (#1644) @bjaglin
  • Scalafix-rules cross compiled in scala3 (#1643) @rvacaru
  • Scalafix-core compiled in Scala 3 (#1629) @rvacaru
  • test loading of external rule built with metaconfig hack (#1633) @bjaglin
  • Revert "better error for external rules ran with old scalafix-cli version" (#1632) @rvacaru
  • Fixed ExplicitResultTypes for implicit members when memberKind and visibility configs are present (#1627) @rvacaru
  • return custom error when no rule was requested (#1624) @bjaglin

Docs

  • Update Integration tests documentation. (#1660) @sergey-lagutin
  • remote gitter shield (#1655) @bjaglin
  • Fix small issues with the tutorial docs (#1654) @ssanj
  • Use scalameta's Discord rather than gitter for support (#1653) @bjaglin
  • xuwei-k/replace-symbol-literals is now in xuwei-k/scalafix-rules (#1634) @bjaglin

Updates

v0.10.1

09 Jun 19:45
Compare
Choose a tag to compare

Pull Requests

Rules

  • RedundantSyntax removes unnecessary string interpolator (#1602) @gontard
  • ExplicitResultTypes: fix issues with backquotes in several case as seen in Metals (#1600) @tgodzik

Framework

Docs

Updates

v0.10.0

07 Apr 20:09
e7d4a20
Compare
Choose a tag to compare

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

Pull Requests

Rules

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

Updates