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
Ensure coqide.opam
actually installs coqide
#16505
Conversation
Probably naive, but worth an attempt.
https://gitlab.com/coq/coq/-/jobs/3043744428 fails with
so I now explicitly skip building |
This should be dropped if we change the default in the template (or if you prefer), but it seems `configure` will auto-enable coqide if dependencies are available.
9387fbd
to
8baf88a
Compare
This passed at least |
Windows build seems to have failed. |
I assume not: That’s the same error I got at first (and fixed) on 32bit, so we should disable that as well. Or install the dependency if possible (32bit has a comment clarifying it's not possible for now). FWIW, there’s a potential regression: the commit messages I linked suggest maybe something was still built and tested in the coqide packages? I haven’t checked, but even if that's the case, that stuff should move elsewhere. I'm sure I miss something, but "coqide might not include coqide" is too confusing. |
If coqide was not built on windows, that was a bug in the CI configuration. |
@Blaisorblade : in Coq Platform, where opam takes care that all dependencies are there, CoqIDE builds fine on all platforms (MacOS, Linux, Windows). I didn't have much of a look at the "outside of opam" builds. Afaik the CoqIDE opam file is dune based. |
@MSoegtropIMC The problem was in the CI for the dev platform. AFAICT:
|
Cool, this is passing CI — up to unimath's hopefully unrelated time out. |
coqide
non-optionalcoqide.opam
actually installs coqide
BTW: dune regeneration also suggests adding an |
@Blaisorblade That's fine to ignore it for now. The OCaml documentation generated by dune relies on odoc which is why you are seeing it. |
Why not move coqide's to its own CI job? |
This MR attempts (and I think succeeds) at an obvious fix for a clear bug. I don't personally use Splitting coqide seems a separate question: while it avoids ~3 lines of shell code, it requires adding and maintaining 5 new jobs, since there are 6 jobs building coq and only 1 of those skips coqide. That seems a regression to me, but that's not my call. Either way, I admit I don't think I have time for it — so it's fine if this MR is turned down. |
I think the PR makes sense, but indeed the shell code looks a bit hackish, the problem is that I don't understand shell well :) I'd be nice if we can find a quick way to not to use this hack, so I was thinking that maybe another job could do the trick, OMMV. |
Let's keep this fix for now, splitting the job is a separate future concern. |
@SkySkimmer I wouldn't mind another pair of eyes if you don't mind |
I don't think we should split the jobs, I expect the coqide jobs would be dominated by docker/VM boot overhead. |
- dev/ci/gitlab-section.sh end coq.build | ||
|
||
- dev/ci/gitlab-section.sh start coq.install coq.install | ||
- dune install --prefix="$(pwd)/_install_ci" coq-core coq-stdlib coqide-server coqide coq | ||
- dune install --prefix="$(pwd)/_install_ci" $(sed -e 's/,/ /g' <<< ${PKGS}) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This idiom isn't that hard if you know, but it is gratuitous obfuscation:
- dune install --prefix="$(pwd)/_install_ci" $(sed -e 's/,/ /g' <<< ${PKGS}) | |
- dune install --prefix="$(pwd)/_install_ci" $(echo ${PKGS} | sed -e 's/,/ /g') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(This shouldn't block merge, but is motivated by @ejgallego 's comment and will help some people read it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we are talking about more concise and possibly more readable alternatives, I suggest ${PKGS//,/ }
.
The choice of skipping the build of CoqIDE in the 32 bit job was made 5 years ago in the initial version of the GitLab CI configuration. Has someone checked that it is still necessary? If this is the only job skipping it and there's actually no need to skip it, it would save a lot of logical complexity. |
This MR definitely failed before I implemented the skipping. Maybe one could install the missing library, I can at least try in the job (but I have no idea/privileges how to patch it in the Docker image). |
Let's defer that to a separate PR for now I think. |
@Blaisorblade Are you happy for me to merge? |
@Alizter Very happy with merging! We can defer all the other improvements. |
@coqbot merge now |
I assume not: That’s the same error I got at first (and fixed) on 32bit, so
we should disable that as well.
FWIW, there’s a potential regression: the commit messages I linked suggest
maybe something was still built and tested in the coqide packages? I
haven’t checked, but even if that's the case, that stuff should move
elsewhere. I'm sure I miss something, but "coqide might not include
coqide" is too confusing.
On Sat 17. Sep 2022 at 18:04, Ali Caglayan ***@***.***> wrote:
Windows build seems to have failed. I wonder if we were ever actually
building CoqIDE on windows before?
—
Reply to this email directly, view it on GitHub
<#16505 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACGZKEE24DV22L2JKJHKRLV6XT2RANCNFSM6AAAAAAQPA3ZPQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
Paolo G. Giarrusso
|
Naive, but worth an attempt. I encourage people to take over or open new PRs if this is useful.
Without this change,
dune build coqide.install
fails silently when dependencies are missing. With this patch,dune build coqide-server.install
still succeeds whiledune build coqide.install
reports the missing deps: