-
Notifications
You must be signed in to change notification settings - Fork 407
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Typelevel migration logistics #490
Comments
Do you mean 2.0 ? The current version is 1.14.0. Speaking of breaking changes, compiling scalacheck using Dotty will require exactly one source-breaking (but not binary-breaking) change: #423 (comment) (unless someone can think of a way to avoid it), a good way to mitigate the impact of that change would be to deprecate |
Yes, thank you. Version numbers corrected above. |
It seems to me that giving a couple of more developers the publish right under org.scalacheck is easier overall. It's weird sonatype jira ritual, but still easier than forcing the whole community to migrate. Just need to comment on this jira issue |
At this point I have the ability to publish to I'm going to start working on that now, since the work won't be wasted no matter what we end up doing. |
I agree with keeping publishing under I often forget that scalacheck is 1.x because the last minor version was a major version in disguise. We shouldn't fear an eventual 1.15, 1.16, etc., as long as it's semantically versioned. MiMa enforcement as an sbt-release step would be another good safety measure. |
Thanks @rossabaker for bringing up the eviction/classpath implication of moving groupIds. @non feel free to ping if you need help (in both informational or legwork capacity) with those build/release changes. |
@dwijnand So I'm working on this now. The one question I have -- using Right now there's a fiddly process using environment variables to interpolate two different versions (both 1.0.0-M8 and 0.6.28) and I'd really prefer to set things up so a single What do you think? Is there a better way to do this? |
@non Can you do me a favor and 👍 my Sonatype access request? (https://issues.sonatype.org/browse/OSSRH-3308) Given the slightly unusual nature of what I'm noting, it might be best of @rickynils also weighs in, though I understand he's quite busy. |
@djspiewak I'm happy to give a 👍 but in the short term please coordinate with me before releasing anything -- I'm current planning to try to do a partial release to address #496 tonight and am cleaning up the build (and merging PRs) in advance of a new release. |
@non Oh I'm not going to release anything without your go-ahead! :-) I mostly just wanted to get the ball rolling on removing the bus factor, and as someone who doesn't really mind most of Sonatype's ritual dances, I seemed the logical choice to get that particular item off your plate. |
Perfect, thanks @djspiewak! |
Now that the repo has been moved to typelevel/, I'd like to recommend that @ashawley be given admin rights to the repo, he's been active in the scalacheck repo for a while (reviewing PRs, responding to issues, ...) and he's known in the community as the maintainer of https://github.com/scala/scala-xml. |
@smarter Agreed. |
nomination of @ashawley seconded, he's been a responsible steward of scala-xml (and done good stuff elsewhere in Scala OSS land, too) |
I've not maintained any builds cross-building for Scala.js, so cc'ing @sjrd. |
The way it's based on an environment variable for the version of Scala.js to load as sbt plugin. It's explained in the release notes of 1.x milestones, but the website is down right now because of the service provider. You can see how it's done in https://github.com/portable-scala/portable-scala-reflect for example, which is the simplest cross-compiling project I know. |
Thanks for the nomination. I'm happy to continue helping out here, and glad to hear that ScalaCheck will benefit from the Typelevel organization going forward. Hopefully, we make Rickard proud and emulate his many years of ScalaCheck maintenance going forward. |
Upgraded @ashawley's permissions on this repo to Admin per all of the above. Woot!
Hear, hear. |
@sjrd This is very helpful, thanks! What sort of release process do you all use for that repo? |
The same I use for all my repos:
The process can also work with a tag-only based publishing similar to what is used in Scala module repos, which allows to remove steps 1 and 5. |
I've implemented this proposal in #498 where it's currently being discussed, people with opinions on source/binary compatibility may want to weight in. |
Closing since it's unclear if there's anything left to discuss. If there is, please open new, more specific tickets. (I believe Daniel remains a skeptic about switching to sbt-ci-release.) |
@non says:
@ashawley has done a nice job scoping tickets in #453, but I want to discuss logistics of it. The ecosystem's move from scalacheck-1.13 to 1.14 is still incomplete. It is the primary driver for cats-2 and major versions of everything downstream, and I want to be careful that we don't trigger yet another epoch.
If the project starts publishing to Sonatype under
org.typelevel
, we will not get eviction notices on things that transitively depend on current releases of scalacheck. This will result in Class Loader Roulette. We could mitigate this by moving the code to packageorg.typelevel.scalacheck
and providing a scalafix. If we're going this route, we should do this before cats-2.0, which means ASAP. Scalatest-Plus insulates ScalaTest, but this would also have fallout on Specs2 and Discipline, among others.We could keep publishing under
org.scalacheck
, even if we moved the project under the Typelevel GitHub org. We could then keep the version at0.141.14 and let downstream proceed with current plans, but we'd want to get a handful more developers with Sonatype access toorg.scalacheck
, which is a solved problem if we republish underorg.typelevel
.Because of this project's critical position in the ecosystem, if we do make any breaking changes, it would be nice to call it
1.02.0 and then be extremely conservative about breaking changes.This only hurts because the project is so good. Thanks to all who got us here.
The text was updated successfully, but these errors were encountered: