-
Notifications
You must be signed in to change notification settings - Fork 48
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
Setup sbt-typelevel #434
Setup sbt-typelevel #434
Conversation
Amazing, thank you so much. It's cool that the new build even appears somewhat simpler than the old one. I have only a few (hopefully not too stupid) questions:
From my side we can immediately run a release after this is merged. If you want, you can also trigger it yourself, in case you want to observe something about the sbt-typelevel RC. Regarding the warnings, I only get one for Scala 2.12/2.13, which is the deprecation warning for |
Yes, to re-generate the YAML use
Yes, exactly. The exact logic is here.
Yes, that's right.
Yes, the plugin looks at previous tags in the repo to determine the previous artifcacts for MiMa. So long as there are no stable 1.x tags (i.e. Ms and RCs do not count) there is nothing to compare against. As soon as you tag
Yeah, it is common and unfortunate 😕 see some discussion in typelevel/sbt-typelevel#215. tl;dr is that projects such as Cats, Cats Effect, and http4s are going to be stuck on JDK 8 for a while, although maybe in the future we can run their builds on a newer JDK while continuing to run the tests on JDK 8. This is relevant because Laika is mostly a build-time dependency. If you want, we can:
The YAML declares that CI should run in three situations:
So if you push to a branch on the repo and then use that same branch to open a PR, you actually get two CI jobs: one for the branch push, and one for the PR push, which effectively doubles your CI consumption. This is exactly the situation the Typelevel Steward is in i.e. it creates an update branch in the repo, not in a fork, and then opens a PR. So to mitigate this we disable CI on pushes to the The Btw, this is all configurable: you can decide that you want to disable CI on all branches except for e.g. 0.19 and main, so the only way to get CI is to open a PR against one of those.
Yes, that's right. The
Yes, that's right. Actually as soon as this PR merges it will attempt to publish a snapshot, as a sort of semi-dry run of publishing. Assuming you are okay with that—if you don't like snapshots, we can disable that too.
If the snapshot publishes ok, then good chances are everything will be working fine, and you can run the proper release whenever you are ready. I will of course keep an eye on it for mishaps 😅
Yes, it's part of the standard Typelevel scalac settings. I think that's all your questions, let me know if you have more or I missed anything. Thanks for looking so quickly! |
Many thanks for all the explanations. I'm just responding to the few remaining unresolved topics:
If you think it's generally advisable I'm fine with adding JDK 17, but ideally only for JVM/2.12 and not the plugin axis if that is possible. Given how excessively slow the step is and that it's only 2% of the code base I feel like this step should be fairly safe to run only on one JVM version.
I think I'm still missing something. I interpreted the YAML as to also exclude any PRs created from an
I don't mind publishing snapshots, but also personally don't feel like I need them. Happy to just follow recommendations in this regard.
Ok, I will run a release then as soon as this lands. |
Sure, let's add it :)
Nope. Branches listed under |
Closes #430.
plugin/scripted
runs as its own cell in the matrix, and we also parallelize on platform (JVM/JS) and Scala version.docs/mdoc
anddocs/laikaSite
run as part of the JVM/2.12 job.I made minimal changes required for source code to compile under the new compiler flags, but disabled fatal warnings for now (mostly unused imports I think). I suppose these can be addressed in a follow-up PR?