Releases: scalacenter/scalafix
v0.12.1
Pull Requests
Rules
Framework
- fix UnusedScalafixSuppression warnings on Scala 3 scalafix invocations (#1979) @bjaglin
- run more expect tests against Scala 3 (#1952) @bjaglin
- test JDK22 (#1966) @bjaglin
- don't use projectmatrix on interfaces as it's not cross-built (#1972) @bjaglin
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
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
andMatchType
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 wrappingTerm.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
- This may trigger false negatives for rules tested against 0.11.1 or earlier, which do not expect that
tree.pos == Position.None
is no longer a reliable way to check whether a giventree
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
- To avoid false negatives on Scalafix 0.12.x, check equality on
- 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)
- Usage of API methods decorated via implicits trigger new fatal warnings for rules built with
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
- support -Xsource:3-cross introduced in Scala 2.13.13 (#1943) @bjaglin
- Support
LambdaType
andMatchType
(#1801) @mrdziuban - run RemoveUnused (#1922) @bjaglin
- avoid flood of unused compiler warnings (#1920) @bjaglin
- run windows CI with latest LTS JDK21 (#1919) @bjaglin
- run scalafix on Scala 3 sources (#1918) @bjaglin
- improvement: Support script files (#1901) @tgodzik
- Add isAtomic to ScalafixPatch interface (#1892) @LaurenceWarne
- rules capturing leading tokens can be suppressed with scalafix:ok (#1890) @bjaglin
- better support of backquoted identifiers in SymbolMatcher (#1888) @bjaglin
- add support for -Xsource:3 testkit input & output (#1666) @bjaglin
Docs
- remove obsolete docs about cross-publishing rules (#1939) @bjaglin
- advertize hamnis/dataclass-scalafix (#1938) @bjaglin
- document new ability to customize ScalafixInterface at project-level (#1907) @bjaglin
- Suggest using the
OrganizeImports
rule on theExplicitResultTypes
page (#1911) @danicheg - Add description to the OrganizeImports rule (#1897) @marcelocenerine
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
Pull Requests
Rules
Framework
- allow Scala nightlies via system properties (#1865) @bjaglin
- improve handling of testkit semantic comments (#1864) @bjaglin
- Try to parse all valid Testkit HOCON comments (#1832) @mdedetrich
- Revert "java target should only be driven by scalacOptions" (#1862) @bjaglin
- Allow package when referencing rules in github (#1817) @RustedBones
- fix: ensure scala 3 dirs use scala3 dialect for scalafmt (#1813) @ckipp01
- run command potentially changing build files last (#1814) @bjaglin
- Test against JDK20 (#1774) @bjaglin
- run OrganizeImports despite scala-collection-compat (#1797) @bjaglin
- Move to safer compatibility flag for javac (#1786) @bjaglin
- dogfooding: run scalafixAll with local scalafix-interfaces (#1784) @bjaglin
- java target should only be driven by scalacOptions (#1781) @bjaglin
- Remove stale silencer (#1779) @bjaglin
- Reference rule built against scalafix 0.11.0 (#1777) @bjaglin
- Remove redundant build setting (#1776) @bjaglin
Docs
- RemoveUnused: -Wconf was backported to 2.12 (#1850) @bjaglin
- commit sonatype-stats to gh-pages branch (#1827) @bjaglin
- Original MIT license for OrganizeImports (#1834) @bjaglin
- Use BSD-3 license template from GitHub (#1833) @bjaglin
- Update OrganizeImports.md (#1830) @liancheng
- Fix organization name for referenced rule (#1778) @bjaglin
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
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, soOrganizeImports
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 thescalafixDependencies
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))
- Despite the support for the
For rule authors
- Breaking: dropped support for ScalaTest 3.0 in scalafix-testkit (#1662)
- Scalameta 4.7.8 (was 4.6.0)
- Breaking: source positions of trees captured by the Scalameta parser have evolved in Scalameta 4.7.x; particularly, parentheses are no longer captured by expressions (see
BasicPositionSuite
changes for a comprehensive view of the changes) - Deprecations: as Scalameta tree fields evolve, versioned extractors should now be favored over historical constructor-like ones (https://scalameta.org/docs/trees/guide.html#with-versioned-constructor-like-matchers)
- Breaking: source positions of trees captured by the Scalameta parser have evolved in Scalameta 4.7.x; particularly, parentheses are no longer captured by expressions (see
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
- testkit: build against ScalaTest 3.2 (#1750) @bjaglin
- build JARs against Java 8 for max compatibility (#1773) @bjaglin
- Refactor test execution (#1756) @bjaglin
- Add textEdits method to ScalafixPatch (#1737) @LaurenceWarne
- fail hard when running against 2.11 sources (#1733) @bjaglin
- stop publishing for Scala 2.11 (#1729) @bjaglin
- scalafix-cli_3 & test dependencies (GSoC 2022) (#1650) @rvacaru
Docs
- Fix sonatype stats cron (#1762) @bjaglin
- Add Sonatype statistics (#1751) @julienrf
- docs: add note about final 2.11 version (#1730) @bjaglin
- Update tutorial for rule suppression examples (#1715) @wsargent
- reflect history rewrite in git repo for tutorial (#1716) @bjaglin
- Add echopraxia-scalafix to community rules (#1702) @wsargent
- Update RedundantSyntax.md (#1697) @kimnilsson
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
v0.10.3
v0.10.2
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
- scala 2.12.7 (#1669) @bjaglin
- Update unit module scalatest version to 3.2.13 (#1661) @rvacaru
- Update scalameta, semanticdb-scalac-core, ... to 4.5.13 (#1659) @scala-steward
- Update scalafmt-core to 3.5.9 (#1656) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.12 (#1651) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.11 (#1648) @scala-steward
- Update mdoc, sbt-mdoc to 2.3.3 (#1647) @scala-steward
- Update org.eclipse.jgit to 5.13.1.202206130422-r (#1637) @scala-steward
- Update interface to 1.0.8 (#1636) @scala-steward
- Update scala3-library to 3.1.3 (#1638) @scala-steward
- Update scala-collection-compat to 2.8.0 (#1639) @scala-steward
- Update sbt to 1.7.1 (#1640) @scala-steward
- Update sbt-scoverage to 2.0.0 (#1641) @scala-steward
- Update scalafmt-core to 3.5.8 (#1630) @scala-steward
- post 0.10.1 release (#1617) @bjaglin
v0.10.1
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
- better test infrastructure for Scala 3 (#1528) @bjaglin
- pprint is only required on -cli for 0.9.x compat (#1596) @bjaglin
Docs
- I want to add my rules to community-rules.md (#1607) @Javakky-pxv
- docs: we use MiMa indirectly now (#1595) @bjaglin
- docs: add new rule and reorder alphabetically in sidebar (#1591) @bjaglin
Updates
- scala 2.12.16 (#1615) @mlachkar
- Update scalafmt-core to 3.5.6 (#1612) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.8 (#1611) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.7 (#1609) @scala-steward
- Update scalafmt-core to 3.5.4 (#1608) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.6 (#1605) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.5 (#1604) @scala-steward
- Update scalafmt-core to 3.5.2 (#1603) @scala-steward
- Update scalameta, semanticdb-scalac-core, ... to 4.5.4 (#1601) @scala-steward
- Update scala-xml to 2.1.0 (#1599) @scala-steward
- Update scala3-library to 3.1.2 (#1598) @scala-steward
- Update interface to 1.0.7 (#1597) @scala-steward
- Post 0.10.0 (#1568) @bjaglin
v0.10.0
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
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