-
Notifications
You must be signed in to change notification settings - Fork 265
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Scala: Crossbuild with 2.13.1 #60
Conversation
Hm, fetching the source dependencies seems to fail for scala |
Thank you @felixbr , looking! |
@felixbr thanks for the contribution. Dodo is explained here: http://github.com/twitter/dodo. You will likely run into issues until all of Finagle is building with 2.13.x since it is a dependency and it is not completely moved yet (hence we have not moved TwitterServer yet). That is, in order to build TwitterServer for 2.13.x we need Finagle building with 2.13.x, the graph is very crudely, util -> finagle -> scrooge -> twitter-server (there's a circular dependency between parts of finagle and parts of scrooge but we'll ignore that for now). This is why the TravisCI build fails for 2.13.x, as Dodo is unable to build all of Finagle for 2.13.x and thus the necessary deps to build TwitterServer for 2.13.x are not in the ivy cache and building fails. |
Is there any chance to get this merged soon? All relevant If you don't think this can be merged because Our services at work are ready to upgrade to Scala 2.13.x and have only been blocked by Also, I can rebase this branch onto the current develop branch if that makes it easier for you to work with. |
I rebased it onto the previous As I said, I can rebase it onto |
@felixbr thanks for the updates -- just to clarify, as mentioned in the CONTRIBUTING documentation, we don't publish snapshots. They are generated by the TravisCI build (via the Dodo script) for each project. Please rebase onto the Thanks! |
Ok, I rebased onto Afterwards I verified that |
Codecov Report
@@ Coverage Diff @@
## develop #60 +/- ##
===========================================
- Coverage 66.42% 66.38% -0.04%
===========================================
Files 73 73
Lines 1787 1791 +4
Branches 121 112 -9
===========================================
+ Hits 1187 1189 +2
- Misses 600 602 +2
Continue to review full report at Codecov.
|
Codecov Report
@@ Coverage Diff @@
## develop #60 +/- ##
===========================================
- Coverage 66.42% 66.38% -0.04%
===========================================
Files 73 73
Lines 1787 1791 +4
Branches 121 112 -9
===========================================
+ Hits 1187 1189 +2
- Misses 600 602 +2 Continue to review full report at Codecov.
|
@felixbr I know why TravisCI is failing to build correctly for Scala 2.13.1 here. Our util code is still cross building against 2.13.0 and TravisCI caches builds by exact Scala version. Hence when we try to build TwitterServer with Scala 2.13.1 it cannot find the previously built and cached items in the dependency graph as they're Scala 2.13.0. Let me update our other projects to Scala 2.13.1. We should be able to remove the allowed failures workaround after updating all projects to Scala 2.13.1. |
Should I rebase onto edit: I'll just do it 🙂 |
I think I messed up the PR, but I noticed you put the changes onto |
Don't worry too much about it 😅 I'm just happy that it can land in 20.3.0 |
Thanks for taking the time to change it |
@felixbr of course! Sorry I flubbed this the first time. |
No worries, it might not have been your fault anyway, as GitHub seems to have changed their business logic for attribution around recently: https://twitter.com/greybaker/status/1235660378304131072 🙂 |
Problem
I would like to update our projects at work to Scala 2.13 but
twitter-server
is one of the missing dependencies and this made me sad. In order to not be sad anymore I want to do the update myself. 🙂Solution
After adding the
2.13.1
version to the build I ran into a couple of compile-errors. I mostly replacedmutable.MutableList
withmutable.ArrayBuffer
and used.toSeq
and.toList
where needed to make the code compatible with 2.11, 2.12, and 2.13.There were a few failing tests with 2 main causes:
.mapValues
on a Map produces a lazy collection prior to 2.13 and aMapView
in 2.13. The latter is serialized incorrectly by Jackson which can be fixed by a call to.toMap
after.mapValues
. I only found one occurrence in the whole project, so I opted for the local fix instead of a more general solution.I tried to keep the changes minimal without really changing the semantic and style of the code (for example I would not use mutable collections so freely, but I kept it as is). I also only refactored the tests that failed instead of the whole test suite.
I hope this helps 🎉
Cheers
~ Felix