Skip to content
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

Scala 2.13 #440

Closed
btmcnellis opened this issue Apr 5, 2019 · 23 comments
Closed

Scala 2.13 #440

btmcnellis opened this issue Apr 5, 2019 · 23 comments

Comments

@btmcnellis
Copy link

With the Scala 2.13.0-RC1 release, it seems like Scala 2.13 will be here relatively soon. What's the plan for supporting 2.13 in Sangria? I would be willing to help with the migration, though I'm far from an expert on the internals of this library.

@ingemaradahl
Copy link

ingemaradahl commented Jun 20, 2019

I've started looking at bringing Sangria to 2.13. First off all of Sangria's dependencies needs to be met for 2.13. The good news is that Oleg kept the list of dependencies small; the only "external" dependency not related to tests is parboiled, which is published for 2.13.0-RC1 (so a proper 2.13 release should be imminent). This leaves the in-project dependencies and test dependencies. Furthermore marshalling is split out into glue packages which also needs to be updated, but that can be done independently of the main package.

So far I've issued a PR for sangria-marshalling-api in sangria-graphql/sangria-marshalling-api#4, sangria-streaming-api in sangria-graphql/sangria-streaming-api#2, and macro-visit in sangria-graphql/macro-visit#3.

This isn't much but it's something in the right direction. It'd be a shame if Sangria were to fall behind, it's a fantastic project created by a genius developer. I think it's time we all start pitching in.

@schrepfler
Copy link
Contributor

Possibly parboiled could be replaced by fastparse?

@ingemaradahl
Copy link

I'd deem replacing parboiled with something else as an unnecessary risk when the problem most likely will resolve itself. In the interim Sangria could probably be built against parboiled-2.1.6 built against Scala 2.13.0-RC1, as done in jrudolph/json-lenses@c01c325.

https://github.com/jcazevedo/moultingyaml (a test dependency) however looks like an abandoned project which probably won't see a Scala 2.13 release.

@jazott3
Copy link

jazott3 commented Jun 20, 2019

I am willing to pitch in here, although I'm not familiar enough with GraphQL to make any major changes. I took a look a few weeks ago at migrating some of the smaller in-project dependencies as well. I don't think I got very far (sangira-marshalling-api, sangria-marshalling-testkit), but this weekend I will review and see if I can't bring a couple of other subprojects up to speed

@ingemaradahl
Copy link

That'd be great! I'm not really familiar with the code base either, but moving to 2.13 shouldn't be too complex. I just did a test compile of the main project and I think we're in an OK spot: 3227 warnings (of which I'm guessing the bulk is deprecated Unicode ligatures) and 65 errors, so not too bad.

@schrepfler
Copy link
Contributor

I saw some changes to parboiled committed by @xuwei-k 8hrs ago, maybe he's looking at publishing it for 2.13.

@jazott3
Copy link

jazott3 commented Jun 23, 2019

I've opened PR (sangria-graphql/sangria-marshalling-testkit#2), built against the open sangria-marshalling-api PR.

@jazott3
Copy link

jazott3 commented Jun 23, 2019

I've added a PR for sangria-spray-json (sangria-graphql/sangria-spray-json#1), and it appears there is a PR for sangria-streaming-api (sangria-graphql/sangria-streaming-api#2).

From what I can tell, the remaining dependencies are:

  • sangria-argonaut
  • sangria-ion
  • sangria-monix (started this, but it looks like monix doesn't have a finalized 2.13 release yet)
  • sangria-rxscala

@jtjeferreira
Copy link
Contributor

jtjeferreira commented Jul 17, 2019

I pushed a PR (#451) with my initial work on this. I commented the test dependencies for now, and using the locally published versions of the above mentioned PRs sources are now compiling.

Tests will be a bit more tricky as more dependencies are involved...

@pjfanning
Copy link

I have the sangria-playground sample working on scala 2.13.0 based on using some snapshot jars that I published. (https://github.com/pjfanning/sangria-playground/tree/scala-2.13)

@travisbrown
Copy link
Contributor

travisbrown commented Oct 25, 2019

The following modules are now available for Scala 2.13:

I've also published a milestone release of the core module with 2.13 support:

The rest still need 2.13 PRs:

@mjadczak
Copy link

I'm working on the sangria-akka-streams PR right now (see also sangria-graphql/sangria-akka-streams#2 )

@pjfanning
Copy link

@travisbrown
Copy link
Contributor

Thanks @pjfanning! Any chance you'd want to go ahead and add sbt-release and sbt-mima to those as well?

@pjfanning
Copy link

@travisbrown I added the mima-check on sangria-play-json and it fails - any suggestion appreciated.

The 2 json4s projects are sbt 0.13 based so it might take a bit longer to upgrade their sbt plugins.

It might take me a few days to get back to the PRs.

@travisbrown
Copy link
Contributor

@pjfanning Thanks! And it's definitely fine if MiMa fails, if the breakage is necessary or intentional—the bincompat report is useful info for setting the next release version and writing the release notes.

@yanns
Copy link
Contributor

yanns commented Oct 28, 2019

https://github.com/sangria-graphql-org/sangria-json4s-jackson is done

@yanns
Copy link
Contributor

yanns commented Oct 29, 2019

@yanns
Copy link
Contributor

yanns commented Nov 1, 2019

https://github.com/sangria-graphql-org/sangria-slowlog/releases/tag/v2.0.0-M1

@travisbrown
Copy link
Contributor

@yanns I'm publishing sangria-msgpack 2.0.0 now (I updated it a few days ago but haven't published it yet). We're still waiting on RxScala to support 2.13 to publish sangria-rxscala (which is otherwise updated, without needing any significant changes).

I could go ahead and update sangria-relay now, unless you've already started? That's the last.

@yanns
Copy link
Contributor

yanns commented Nov 1, 2019

I have not started sangria-relay. You can pick it. Thx! ❤️

@travisbrown
Copy link
Contributor

@yanns Great! sangria-msgpack is published and here's the sangria-relay PR: sangria-graphql-org/sangria-relay#6

@nickhudkins
Copy link
Contributor

I just checked, and all of the packages support 2.13 now 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants