-
Notifications
You must be signed in to change notification settings - Fork 59
zinc failing #480
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
Is this "just" a matter of bumping the version of SBT used in this community build? Seems to be on
I added the scare quotes above in anticipation of finding this
|
Hopefully will work after the fixes in sbt/sbt#1523. Fixes scala#480
Yeah I think you're right. But sbt/sbt#1523 is fixed with sbt/sbt#1531 which shipped in v0.13.6-RC1, so you shouldn't hit that issue. |
I will resolve this by just freezing zinc at the last green commit. The 2.11 community build is basically unmaintained at this point — it's full of freezes and forks, and Scala 2.11.x development more generally is coming to an end. A likely future (and not very distant, either) is that we freeze all of the projects in the 2.11 community build, not just this one. Note that zinc (either typesafehub/zinc or sbt/zinc) isn't currently in the 2.12/2.13 community builds at all. I'm happy to help with including sbt and/or typesafehub/zinc and/or sbt/zinc and/or pieces thereof in the 2.12 community build if there's interest in that, when the time comes. See previous discussions at #264 and #290. At the time we said "to be revived at a later date". @adriaanm and I discussed this a bit yesterday and he was concerned that we should probably have some kind of backstop against accidental breakage in the compiler interface. I've never worked in that area so I don't really have anything intelligent to say about what might be possible there. |
fixes scala#480
Basically there could be ancient, deprecated APIs in the compiler/interpreter/scaladoc/etc that sbt still calls for whatever reason. And a well-intentioned person might remove them, breaking sbt. Fortunately a few, an unknown-percentage-of-the-whole, are commented in the scala/scala repo: e.g https://github.com/scala/scala/search?l=Scala&p=6&q=sbt&type=Code&utf8=%E2%9C%93 |
so what would our strategy be for catching that? (is the community build the right venue?) |
If the Scala team feels like it wants to change the API in the near future then we should definitely have all sbt 1 + modules up and running in the 2.12 and 2.13 community builds, probably using tags to start with, while we continue to faff about refactoring and breaking compatibilities between our own repos. Then the team would have to make a judgement call if they want to check it before merging a compiler API changing PR, or just merge and let the community build check it. I guess technically one could tweak the sbt build so it had source dependency to the scala project, but I'm pre-coffee atm and I don't even want to think about the mind-blowing dogfooding/cyclical dependencies with such a setup :) As an aside, do the community builds run nightly or on pushes (e.g PR merges) to the various stable branches (2.12.x/2.13.x/etc)? |
@SethTisue Thinking more about this, while dealing with differences in the compiler API between versions in sbt/zinc, I think we're doing the work twice. The compiler is holding on to APIs "for sbt" while sbt is dealing with version differences in the compiler. I would have to go back and check what's going on in sbt 0.13, but I think some of those compiler APIs could be removed now. Also, related, I think with a some coordination and effort between the Scala team and direct compiler API users (sbt, paradise, probably ensime, etc) I think both sides could reap benefits. What I'm thinking is if we created a compiler-compat project (ala macro-compat), which was reviewed, blessed and co-maintained (or owned) by the compiler team, then the tools community would have a tool they could trust and request features or fixes, and the compiler team could refactor their API with more ease by putting the necessary shims in compiler-compat. WDYT? |
+1 we have so many *BackCompat mixins and implicit classes |
@SethTisue Just did some comparing-and-contrasting between sbt/sbt incremental compiler sources and sbt/zinc. sbt/sbt (i.e sbt 0.13) is using the deprecated sources. In sbt/zinc there are 2.11+ sources and 2.10 sources, where the 2.11+ sources use the modern APIs (like enteringPhase instead of atPhase). |
Dale — good thoughts, may I suggest you copy/paste into a new ticket and let's discuss further there? either here or scala-dev, whichever you think is more appropriate |
in https://scala-ci.typesafe.com/view/scala-2.11.x/job/scala-2.11.x-integrate-community-build/516/console
This is due to this change: typesafehub/zinc#108
/cc @retronym @eed3si9n
The text was updated successfully, but these errors were encountered: