circe-derivation
circe-derivation copied to clipboard
Would it be possible to publish this library for circe 0.14?
I see the latest build is already on 0.14 however the badge shows the latest released is for 0.13.
cc @travisbrown
Many thanks!
@ScalaWilliam This library depends only on circe-core, which is backwards-binary-compatible in 0.14 with 0.13, so you can use the 0.13 circe-derivation releases safely with 0.14. I can publish an 0.14 release for convenience, but might not get around to it today.
Thanks for clarifying @travisbrown ! Yes that would be great - but noted, I will use the version that is published.
@travisbrown .. This breaks sbt-assembly though.
Is this project abandoned or just wondering why it's not published in sync with other circe projects ?
@travisbrown .. This breaks sbt-assembly though.
Is this project abandoned or just wondering why it's not published in sync with other circe projects ?
breaks how? perhaps transitive dependency?
@ScalaWilliam .. Ignore me. I forgot that you can just exclude specific transitive dependencies.
Point still stands why this can't be in sync with the others.
Since circe 0.14.3
I'm seeing version conflict errors between circe 0.13.0
(pulled in by this library) and 0.14.x
from the rest of the ecosystem. I'm not sure what it is about that latest patch update in particular that's caused the errors to start appearing*, but I wonder if you'd reconsider publishing this library for 0.14.x
?
[Update]: I've been pointed at this PR, so it sounds like this is already in-flight. Thank you!
* Perhaps the scala-native support that appeared in 0.14.3 is relevant?
Perhaps the scala-native support that appeared in 0.14.3 is relevant?
It's not :) it was the change to the sbt-typelevel plugin for publishing, that started including the versioning scheme (early-semver
).
Is there any way I can help with this?
Can we provide an example/document how you would override these eviction errors?
Something like this I reckon:
libraryDependencySchemes ++= Seq(
"io.circe" %% "circe-core" % VersionScheme.Always
)
You can write this in your build.sbt
. Of course, this will prevent real warnings from showing up so use with caution!
ThisBuild / libraryDependencySchemes += "io.circe" %% "circe-core" % VersionScheme.Always
@armanbilge do you know what's preventing publishing it? Who has the ability, and is there anything that needs to be done first?
+1 on releasing a new version with 0.14. Would love to help contribute if there are any blockers to this.
Same issue since circe-core 0.14, makes it extremely painful to use libraries that themselves depend on circe-derivation, since every project using them needs to include the version scheme exclusion.
@nickyrayray Sorry we're catching up on all of these projects one by one, right now we need to get https://github.com/circe/circe-derivation/pull/423 finished up which will make releases easy.
@zmccoy what's the status of #423? Can I help somehow?
@nafg I gave a ping to the author on there, but if someone wants to pick it up if they're gone and finish it that would be great. @zarthross and I can get that merged then and we'll be able to cut some new releases.
@zmccoy I could but I have no idea what needs to be done
@armanbilge @zmccoy So I tried the exclusion suggested above and it works my JVM project but doesn't for the JS project:
[error] * io.circe:circe-core_sjs1_2.13:0.14.5 (early-semver) is selected over {0.13.0, 0.14.3}
[error] +- io.circe:circe-parser_sjs1_2.13:0.14.5 (depends on 0.14.5)
[error] +- io.circe:circe-generic_sjs1_2.13:0.14.5 (depends on 0.14.5)
[error] +- io.circe:circe-scalajs_sjs1_2.13:0.14.5 (depends on 0.14.5)
[error] +- org.tpolecat:natchez-log_sjs1_2.13:0.3.0 (depends on 0.14.3)
[error] +- io.circe:circe-derivation_sjs1_2.13:0.13.0-M5 (depends on 0.13.0)
[error]
[error]
[error] this can be overridden using libraryDependencySchemes or evictionErrorLevel
[error] Total time: 0 s, completed Mar 10, 2023, 11:57:31 AM
sbt:palermo-root> show commonJS/libraryDependencySchemes
[info] * io.circe:circe-core:always
Is this an SBT bug perhaps?
Maybe https://github.com/sbt/sbt/issues/7140?
Try something like this:
libraryDependencySchemes += "io.circe" %% "circe-core_sjs1" % VersionScheme.Always
That works. This should be reported as SBT bug right?
This should be reported as SBT bug right?
SBT does not have first-class support for other non-JVM platforms, which leads to a lot of bugs like this. Unfortunately the prevailing opinion seems to be that the JS/Native user-bases are not big enough to warrant more substantial changes.
Thus, I would strongly encourage you to comment on the following discussions, in addition to the issue you linked, to demonstrate that there is a real need for first-class cross-platform support.
- https://github.com/sbt/sbt/discussions/6736
- https://github.com/sbt/sbt/issues/7057
Hello. @travisbrown could you bump the library? Have been pass two years, so there are enough pain for all users.