-
Notifications
You must be signed in to change notification settings - Fork 19
Switch projects which use CrossVersion.full/"org.scala-lang" to CrossVersion.patch/scalaOrganization.value #135
Comments
Would this also be applicable to sbt plugins? eg: TlsJvmCrossProject and TlsJsCrossProject |
@BennyHill it would only be necessary if you wanted to build an SBT plugin with TLS. But even if that's unlikely it does no harm, so why not? |
Added new issue typelevel/sbt-tls-crossproject#3 |
|
I see shapeless-contrib looks to be using SBT 0.13.13 and isn't in the above list, yet fits the criteria to be changed. Made a PR there all the same in case that fits the bill. |
Grabbed |
sbt-tls-crossproject done, thanks to @rilut for that 👍 |
Will https://github.com/milessabin/macro-compat switch to typelevel Scala? |
@Atry There isn't a TLS for 2.10.x so even if there was a need for it (is there?) it isn't possible. |
So will shapeless drop the support for 2.10 after switching to TLS? |
|
|
|
|
|
|
|
Opened PR spray-json-shapeless: see https://github.com/fommil/spray-json-shapeless/pull/34 |
According to typelevel/scala#135
So, I received this PR in Scala.js: scala-js/scala-js#2954 However, for that to be meaningful, there must be a guarantee that If there's no such guarantee, the dependency would resolve but it would be a lie, as it would crash with obscure |
/cc @lrytz who had the same concern in March (scala/scala-dev#252 (comment)) |
https://gitter.im/typelevel/scala?at=58e1e0df8fcce56b20c443e3 for an example where this (I think) caused breakage |
That definitely looks like something related, yes. IMO in general we cannot use
The second solution is hacky. It wouldn't scale to other versioning schemes from other organizations, etc. The first one is the cleanest, but requires more releases of the Scala.js compiler plugin, and we definitely don't have the CPUs to add Typelevel builds of Scala.js to our CI. Someone else than us could publish Scala.js compiler plugins recompiled for Typelevel, but then we would also need to provide a setting to configure the " |
ref scalacenter/advisoryboard#20 (comment) This is a perfect example, no? And what about scala.native, https://github.com/typelevel/sbt-tls-crossproject, etc ? |
Option 3: Release compiler plugins as source code instead of Java bytecode, like what sbt's compiler interface did. |
But for that you'll need a lot of infrastructure in sbt, which we don't have now. It also assumes that compiler plugins have the exact same sources for all versions of Scala. This is true for the Scala.js compiler plugin, through significant cleverness that would scare a lot of people away. But it's not true for all compiler plugins, notably macro-paradise. |
I think there is a dependsOn(ProjectRef(uri("git://github.com/xxx/xxx.git"), "subproject")) |
That assumes it's easy and fast to load the given repo, its build, and compile that project. For significant compiler plugins like Scala.js and paradise, this is far from being true. |
Please note: the list of projects below is not complete — add any projects you think might benefit from being built and tested with Typelevel Scala
To use Typelevel Scala versions which are not exactly aligned with the corresponding Lightbend Scala version (ie. because they include an additional
-bin-patch-nnn
suffix in their version) we need to modify project builds which useCrossVersion.full
(which includes the suffix) to useCrossVersion.patch
(which doesn't) where appropriate (eg. for macro-paradise and other compiler plugins).Please note that
CrossVersion.patch
was added in SBT 0.13.13, so projects which aren't already on that version will also need to be upgraded to that version or later.We must also replace explicit compiler dependencies of the form,
with dependendencies parametrized by
scalaOrganization
,The general form of the changes are as shown in the completed/PR'd examples below ...
Please add projects and their status to this list,
The text was updated successfully, but these errors were encountered: