-
Notifications
You must be signed in to change notification settings - Fork 94
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
Upgrade to sbt 1 #338
base: master
Are you sure you want to change the base?
Upgrade to sbt 1 #338
Conversation
Things to do still (before a 2.0.0 release at least):
|
@pfn I found some time over the weekend to pull this thread. This is a pretty large change, so no rush on a review. I'd appreciate feedback from anyone else interested as well! |
@jeffboutotte the main problem at this moment, is that CI is broken, and has been for a long time |
@sideeffffect let me take a look - I don't have much experience with travis, but I'm happy to learn what I can :D I'll take a look and see if I can figure something out. This week is a bit busy for me, but I'll see if I can get some time in the evenings or over the weekend to dig in. |
@sideeffffect I ended up with some time to dig in this evening and ended up figuring it out. My branch is here if you want to pull my commit into your PR to keep things there since that's where I started from. |
great news @jeffboutotte ! 🎉 |
@sideeffffect thanks for letting me know! I just merged in the travis fixes and pushed up a change. We'll see if travis likes it. |
Looks like the tests on travis are hovering right around that 50 minute timeout. There may be some things we can do to improve build time, I'll see what I can find out... |
@jeffboutotte Let me know if there's anything I can help with. |
@shea-hawkins thanks for the offer - I'd love some help! Things have been a bit busy the past couple of weeks so I haven't had much time to dig in. Since we're pretty close to the timeout my initial thought was to leverage the travis build matrix feature to parallelize enough to get the tests under. One natural split might be to run the |
Actually, here are some recommendations from the sbt reference manual - https://www.scala-sbt.org/1.x/docs/Travis-CI-with-sbt.html#More+things. It looks like we could even possibly parallelize the |
@shea-hawkins I just looked into the performance of individual tests quickly and it looks like it's just |
Looks like splitting scripted tests as |
I think (hope) that last commit should get the build working. The sbt plugin automatically installs the targeted android platform but the gradle build plugin does not (since it's meant to port a gradle build to sbt). I think it's a safe assumption that a gradle build works before someone tries to use this plugin to convert from gradle to sbt. A side effect of parallelizing the build is that the gradle plugin tests don't have any sbt tests run beforehand that install the various versions of the android platform those tests used. The last commit updates the gradle plugin tests to use the android version that travis installs, that way the gradle build has the version it needs to work already. |
@jeffboutotte build is green, those are great news! 🎉 |
Very much looking forward to this change :) Just curious, what's left to be done before this PR can be merged? Is it advisable to use this branch in production over master in the meantime? |
@jeffboutotte is there anything left? Or can this be merged? |
I think this PR is ready to be merged, just waiting on a review. Anyone who wants to review and give feedback or ask questions is definitely welcome and encouraged to do so! As for an official 2.0.0 version (not a snapshot) I think there are a couple of outstanding items that would be good follow ons to this PR. They don't really have to do with sbt 1.x, but are minor things we would probably want before publishing a v2 of this plugin. They are listed in my first comment on this PR:
|
I'm not involved in Scala anymore; given the size of this change I think @pfn would be the best person to review it. Maybe try pinging him on gitter? |
Upgrade the build to sbt 1.2.8 in order to support the release of an sbt 1.x version of this plugin.
Bump the version to 2.0.0-SNAPSHOT and remove most things deprecated in the 1.x releases of the plugin.
Parallelize build across scripted tests so build time on Travis isn't pushing the 50 minute limit.
Huge props to @soc for doing a bunch of work to get this started.