Skip to content

Releases: scalacenter/scalafix

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.0
    • 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

v0.10.0-RC1

03 Apr 15:24
5d7e72c
Compare
Choose a tag to compare
v0.10.0-RC1 Pre-release
Pre-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

Pull Requests