Sbt Tpolecat Versions Save

scalac options for the enlightened

v0.5.1

1 month ago

What's Changed

New Contributors

Full Changelog: https://github.com/typelevel/sbt-tpolecat/compare/v0.5.0...v0.5.1

v0.5.0

9 months ago

Changed

  • The plugin artifact is now published under the org.typelevel group ID. An artifact migration has been added to Scala Steward, so Scala Steward users should not have to update the artifact group ID manually.

  • The project now makes use of the scalac-options library, so symbols relating to scalac options and their availability on differing Scala versions have been moved to the package org.typelevel.scalacoptions.

  • All other symbols provided by this plugin have been moved to the org.typelevel.sbt.tpolecat package.

  • The ScalacOptions object is no longer part of this plugin's autoImport symbols. You will need to explicitly import org.typelevel.scalacoptions.ScalacOptions.

  • A Scalafix migration is available, and can be applied using the github: scheme, e.g.

$ scalafix github:typelevel/sbt-tpolecat/v0_5?sha=4837a5bad7426c97be9bb3a5b792fd779f5c921a
  • However, please note that there are severe limitations on running Scalafix migrations that require semantic information on sbt build files. Scalafix semantic migrations are able to update *.scala files but not *.sbt files.

v0.4.4

10 months ago

Added

  • #127 - add a verbose mode, which enables verbose options such as -Vimplicits and -explain.

v0.4.3

10 months ago

Added

  • #147 - added support for compiler warnings re-introduced in Scala 3.3.0.

Changed

  • #143 - set tpolecatOptionsMode in every scope when using the mode commands, rather than just ThisBuild scope. This enables users who set the mode differently in different subprojects to make use of mode commands.

v0.4.2

1 year ago

Fixed

  • #102 - a bug which resulted in scalac options contributed by other plugins being overwritten, most notably the Scala.js plugin. Huge thanks to @sjrd for their work on #126 which resolves this issue.

v0.4.1

1 year ago

Added

  • #84 - An advancedOption overload with support for multiple argument options was added.
  • #88 - A Scalafix migration rule to migrate package names for the upcoming 0.5.0 release was added.

Changed

  • #85 - -Xcheckinit was removed from the default option set. After discussion on issues #10 and #83 it has become apparent that although -Xcheckinit offers a lot of value for some users, it creates some very tricky problems for users that are writing async code. The initialization checking code this option produces introduces @volatile variables that can disguise memory visibility issues.
  • #88 - The project was restructured into a multi-module sbt build.

v0.4.0

1 year ago

NOTE: This release series will be the final one released under the group ID io.github.davidgregory084, and the final one using the package io.github.davidgregory084.

As of the 0.5.x series, this project will be released under the group ID org.typelevel and using the package org.typelevel.sbt.

If you are using Scala Steward to upgrade your libraries, an artifact migration has been provided to update the sbt-tpolecat group ID.

A Scalafix migration will be provided upon the release of 0.5.0 to migrate any usages of the previous package in your projects.

Changed

  • #75 The ScalacOptions trait was made package-private. This is to ensure that new methods can be added to this trait without risking binary compatibility breakages.
  • #75 The ScalacOption constructor was changed from (tokens: List[String], ...) to (option: String, args: List[String], ...). This is to ensure that multi-argument options can be filtered out regardless of which arguments were provided to the option.

v0.3.3

1 year ago

Added

  • Support for the SIP-22 -Xasync option was added to the ScalacOptions DSL.
  • Support for the -Ybackend-parallelism option was added to the ScalacOptions DSL. This option can be used to enable scalac to emit class files in parallel.
  • Support for the -release option was added to the ScalacOptions DSL. This option can be used to compile for a specific version of the Java platform.

Fixed

  • #74 - a bug in filtering of multiple-argument options. This filtering was broken in the attempt to fix #60. Unfortunately this means that if users append to ThisBuild / scalacOptions, those appended options will no longer be inherited by other configurations, e.g. Test / scalacOptions.
  • #78 - a bug where options were not filtered out of Test / scalacOptions as expected. This had the same underlying cause as #74.
  • #77 - the JDK version was not being set as expected by the setup-scala action. Resolved by switching to setup-java instead.

v0.3.2

1 year ago

Please do not use this release - GitHub accepted a tag push but not its corresponding commit data, so the release proceeded against a commit that is not on the main branch.

v0.3.1

2 years ago

Changed

  • The dependency on the sbt-partial-unification plugin was dropped. This is because support for partial unification was backported to Scala 2.11.11, so all versions of Scala supported by this plugin either enable partial unification by default or provide a compiler option to enable it. This means that this plugin will no longer enable partial unification on 2.11.x patch releases older than 2.11.11.