-
Notifications
You must be signed in to change notification settings - Fork 3
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
Which ocaml versions to ultimately provide in docker-coq? #12
Comments
To follow-up my previous post and that of coq/coq#12757 (comment), regarding docker-coq-action's
so that docker-coq-action-based CI configuration of existing projects could be kept as is (the only breaking change would be that @Zimmi48 does this look good to you regarding docker-coq-action? |
Finally and manually speaking (using CLI), users could still fetch single-switch docker-coq images by doing: maybe:
I'd tend to say 1., but feel free to react if you disagree! |
For some extra context, I think one of the main arguments for dropping 4.05.0 support is the parallel make compilation bug for Coq plugins (or any combined Coq+OCaml projects) that we have tried to squash for a long time in the Coq opam repository. This bug is completely gone in 4.07.1. More on this can be seen in, e.g., coq/opam#1346 (comment). |
Wouldn't changing the default version be sufficient to achieve this? It seems a bit weird to drop support for |
Good point @Zimmi48. To address @palmskog's point, maybe Coq should consider dropping or deprecating support for the offending OCaml versions, subject to the appropriate guidelines (whatever they are). Then docker-coq's policy would default to a "recommended" OCaml version and also offer the minimal and maximal OCaml versions for use by CI of plugins. |
To be clear, as much grief as 4.05.0 has caused, I don't mind if there is a switch with 4.05.0 in the Coq Docker images as long as it's not the default switch, i.e., it's not the default OCaml version you get. Indeed, some unlucky plugin developers may require 4.05.0 for some reason. Also, if Docker images become single switch, please don't make 4.05.0 the default OCaml you get when requesting a Coq docker image. Force people to request an image with 4.05.0 manually. |
@Blaisorblade Have we ever been hit by this problem of testing only the bounds? We've adopted 4.05 as this is what is available in Debian stable today. We could relax this constraint but I believe that Emilio wanted to bump to 4.08 directly at some point but 4.08 is problematic for other reasons. |
Supporting Debian stable is an excellent argument — just not for making this a default.
I was only thinking of Coq itself, for flambda/native-related issues. No clue on plugins, so I was turning that question to you people — it seems unlikely, but I figured I should ask anyway because of Murphy's law 😅 |
My point of view here is that it doesn't make a lot of sense to bump the minimal OCaml version unless we need some features from newer OCaml. This was the case in the past [we really wanted 4.02.3 and 4.05], but for now, no pressing need seems to be around. |
Hi all, we have just discussed further this topic with @Zimmi48, and we agreed on the following plan, with the aim to keep backward-compatibility as much as possible, answer the needs to have ocaml 4.10 for 8.12.0 (cf. this request on Zulip), while limiting the number of ocaml versions prebuilt for each version of Coq:
|
Sounds very good, IMHO not a lot of value providing 4.08/4.09 indeed. Those with special needs can always build their own docker images, maybe worth adding a small section on how to do this? |
Indeed, why not! just to recap the two ways to do this:
|
…EDGE' * This patch is a backward-compatible change * Related: - coq-community/docker-coq#7 - coq-community/docker-coq#12 (comment)
Closed as addressed by PR #7 I will post a related announce on Discourse to recap the main changes (which are backward-compat. during the migration phase). |
…EDGE' * This patch is a backward-compatible change * Related: - coq-community/docker-coq#7 - coq-community/docker-coq#12 (comment)
This meta-issue is a follow-up of this Zulp discussion (login required, but excerpts pasted below).
Also, it is somewhat related to coq/coq#12757 (in particular, the comments below assume coq/coq#12757 has been implemented, thereby providing a new dummy package
coq-native
) and it is less urgent than finalizing #7Zulip excerpts
@erikmd:
@palmskog:
@erikmd:
Currently, given the new infrastructure to build the images, it is much easier than before to maintain 3+ different flavors of the images with different compilers etc.
So the goal of this issue is to discuss what'd be the best choices for the ocaml versions to put forth in docker-coq / docker-coq-action, and with which options (i.e. Coq's native-compiler, +flambda…).
My current position is that:
we could change the "default version" to
4.07.1+flambda
soon (instead of getting 4.05.0), without coq-native (by "default version" I mean that we should get that (single-switch) config if we dodocker pull coqorg/coq:8.12
)also, another switch with the most recent supported version of ocaml could be made avaiable for each Coq version (not necessarily 4.09.1+flambda, but e.g. 4.10 or 4.10+flambda when using Coq 8.11.1+) for users that specifically need a recent ocaml besides coq.
if you agree with the two points above, several questions arise though:
should we remove 4.05.0 from docker-coq soon? (even if it is still the minimal supported version of ocaml by coq.dev, and it is also one of the versions tested by opam-coq-archive's CI)
which switch / images should be added with some coq-native support? maybe a 4.07.1 regular switch (without flambda)?
what should be the new values of docker-coq-action's ocaml_version? (maybe
4.07-native, 4.07-flambda, edge
ifminimal
is removed?)Opinions on that?
(Cc @Zimmi48 @ejgallego @SkySkimmer @palmskog @clarus @Blaisorblade @liyishuai @anton-trunov @tchajed @JasonGross @CohenCyril @silene @proux01 FYI)
The text was updated successfully, but these errors were encountered: