-
Notifications
You must be signed in to change notification settings - Fork 59
2.12 build: retrieve pre-built Scala instead of building it ourselves #274
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
Comments
Adriaan's WIP commits on this:
|
in Adriaan's WIP the publish-core-built Scala was used everywhere as the extraction version, but I think it's better to use STARR so dbuild doesn't think it needs to re-extract every project every time |
if we don't have jenkins.properties we need to get the Scala version from somewhere. I suggest we use |
in Adriaan's WIP we are still using the "assemble" build system to pull JARs (for scala-library, scala-compiler, scala-reflect) even though we aren't using it to build anything. perhaps that's not actually necessary? I'm not sure. leaving it that way for now anyway |
my WIP branch: https://github.com/SethTisue/community-builds/commits/anticide . test run https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-integrate-community-build/539/consoleFull failed with a bunch of these errors: here's the Scala JARs being retrieved and republished:
and then it tries to build the first project:
so far so good, the versions match but then:
it's looking for is there a clue here?
|
oh, it's not normal that compiler, library, and reflect all have different dbuild-rewritten Scala version numbers. if you look at any recent green community build run you see e.g.
where it's |
hmm, maybe getting rid of the whole "system: assemble" thing would fix it. we don't need dbuild to rewrite Scala version numbers at all, do we? just leave the Scala version as e.g. |
http://typesafehub.github.io/dbuild/0.9.5/dbuild.html#assemble-specific-options recommends (in bright yellow!) not using "assemble" at all: "It is therefore advisable to adopt a regular (non-cyclic) build as soon as that is feasible". so yeah, I'll try just getting rid of it |
looking at the RP build, it looks like another approach could be to use |
getting somewhere with
taking a cue from the RP build again, it looks like we need |
holy circularity Batman!
|
Adriaan took a stab at it in 2.12.x...adriaanm:scala-resolve — looks like the key difference is to get scala-xml (and other modules? maybe only scala-xml is necessary?) via Aether. test run @adriaanm: "We'll need to run it against a build that publishes sources of the core for scala-js to work, otherwise it seems to be working" |
I confused myself a bit, but that approach works. scala-js just needed a patch or two (see scala-js/scala-js#2580) I'm hopeful this one will be green: https://scala-ci.typesafe.com/view/scala-2.12.x/job/scala-2.12.x-integrate-community-build/553 |
@SethTisue could you clean up my scala-resolve branch and make the necessary changes in the Jenkins jobs to run this downstream from release-main? @szeiger is working on the bootstrap script / sbt support to pass down version numbers |
We should also be able to trigger the community build job to consume the artifacts produced by publish-core (it will have to publish sources for scala-js to succeed, but otherwise good to go) when we don't need to bootstrap. |
Adriaan's changes for cleaning-up are at #275; his green test run was https://scala-ci.typesafe.com/job/scala-2.12.x-integrate-community-build/556/ |
As I said on Slack, I'd like you to adopt & polish #275 along with the needed changes to the jenkins jobs (variable renames, incorporate into release-main flow). Please coordinate with Stefan for the sbt changes to propagate version from the release/nightly/publish-core jobs to the community build job. |
#309 means we'll still be using the "assemble" build system, to resolve the scala/scala-xml circularity. ultimately we'd like to cut that circularity altogether (by having scala-xml implement an API), then we won't need "assemble" anymore. someday. |
the basic thing is done. the Jenkins/Chef part is now scala/scala-jenkins-infra#189 |
build's "scala" build system is ant-based and isn't really worth updating to use sbt, because there's no need anymore to "address the case in which a cycle exists between the core (library/compiler) and the modules" within dbuild — we can just let
scripts/jobs/validate/publish-core
do it for us and consume the artifacts it producesonce this is done, scala/scala#5311 can be merged, bye forever Ant!
The text was updated successfully, but these errors were encountered: