Releases: scalacenter/scalafix
Releases · scalacenter/scalafix
v0.13.0
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
andOrganizeImports.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 toScalafix.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
- allow to use RC versions in arguments (#2084) @bjaglin
- expose Scala 3 modifiers (#2055) @bjaglin
- Fix flaky integration tests (#2057) @bjaglin
- test all published artifacts (#2050) @bjaglin
- delete junk (#2051) @bjaglin
- core: reduce amount of scalac dependencies (#2048) @bjaglin
- remove unused scala-java8-compat (#2046) @bjaglin
- use cli_3.x.y to inspect Scala 3 sources (#2044) @bjaglin
- cli_3.x.y: support external 2.13 rules along rules_3.x.y & publish (#2034) @bjaglin
- delete unused internal classes (#2039) @bjaglin
- support running rules from source on WIndows (#2035) @bjaglin
- Scala3: test against both LTS & Next, build with LTS (#1926) @bjaglin
- refactor: Remove Unsafe at it's not accessible on all JDKs (#2022) @tgodzik
- remove unused attributes (#2012) @bjaglin
- remove references to sbt-only, deprecated key (#1993) @bjaglin
Docs
- RemoveUnused: document 2.13.15 patvars behavior (#2081) @bjaglin
- Add dedis/scapegoat-scalafix (#2080) @sideeffffect
- docs: drop sbt 1.3.x support (#1980) @bjaglin
- Clarify class name vs rule name in ServiceLoader section (#2058) @mjhoy
- docs: explain how users can customize linting behavior of rules (#2062) @bjaglin
- docs: unmanagedSources can be tweaked with Scala 3 (#2060) @bjaglin
- docs: remove stale instructions to verify setup (#2056) @bjaglin
- Scala 3 docs tweaks (#2053) @bjaglin
- add note about why 3.3.x is supported (#2045) @bjaglin
- document tested support for Scala3 LTS & Scala3 Next (#2043) @bjaglin
- docs: show default configuration for RedundantSyntax (#2032) @bjaglin
- docs: use slash syntax for sbt (#2031) @bjaglin
- preserve sonatype-stats dir when publishing docs (#2029) @bjaglin
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
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+- 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