-
Notifications
You must be signed in to change notification settings - Fork 161
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
CI: Do not install readline for macOS job #4378
Conversation
Note that the CI here will probably fail until #4377 is merged, but even when it fails, the macOS job should succeed enough that we can see that readline is being properly used. This is something of personal preference, but I'd like to see the names of CI jobs be rearranged to put the OS first (at least for the non-Ubuntu jobs, where the fact that the OS is not Ubuntu is probably the most important fact about the job – I already did this for the Cygwin job). Often I struggle (in the PR view and in the GitHub Actions tab) to work out which job is the macOS job, because these interfaces typically focus on the first part of the name. This is the macOS job in this PR: I realise this is all 'nitpicking' etc, but seeing as we spend a lot of time looking at the result of CI runs, I think it's worth discussing how to make this as frictionless as possible 🙂. I'd be happy to make the changes myself, but I suppose I'd like to see if we can reach some sort of consensus before trying. |
b4f8644
to
bb5c866
Compare
There are several different libraries called Since both libraries have the same name, Homebrew cannot just install them in a place where every software sees them, because it would e.g. break things that want the "native" readline. Note that on M1 macs, Homebrew installs into See also issue #1945 |
Probably it was me who added the Improving the experience for Homebrew users on macOS would be nice, see issue #1945; it gets a bit more urgent perhaps with M1 macs Finally, regarding renaming the CI tasks and the resulting issue with branch protection rules: This can be fixed by simply assigning a name to each task manually; the current "automatic names" were simply the quickest way to get going, but they are a bit unwieldy anyway. So, we can just define a
by something like
Patches welcome ;-). |
bb5c866
to
940e811
Compare
I've updated this PR to remove the installation of I hope to make a PR making 'nicer' names for the CI jobs - we'll see how I get on with that. |
b31e16c
to
fc7f00e
Compare
readline was not being linked anyway, so it was a waste of time to install it. This way, we are explicitly making the macOS job be one that tests compiling and using GAP without readline.
fc7f00e
to
4ff4440
Compare
I added an issue for the issues of changing CI job names, see #4388 |
Thanks for doing that. |
Homebrew (currently) installs the readline stuff into
/usr/local/opt/readline
, but GAP does not know about this directory by default, and hence it was being compiled without readline – see https://github.com/gap-system/gap/runs/2288444515 for an example:This is presumably counter to the intentions of whoever added the macOS job, because homebrew is being explicitly told to install readline. By adding this directory to
CONFIGFLAGS
, GAP compiles and starts with readline. Note thatCONFIGFLAGS
contains--enable-debug
in the workflow file by default, so I've explicitly added it back in to not change that aspect of the job.I have created this PR more as an issue than a request, because I think there's a high probability that I am not going about this in the best way, so I am hoping that someone will suggest a cleaner way. For instance: would it be better (and if so, how?) to somehow "install" Homebrew's readline so that GAP doesn't need to be told about it? (Note: I would expect
brew link readline
to do the job, but it fails on my computer because apparently macOS already provides readline. If so, why doesn't GAP see it?). I know almost nothing about compilation/build systems/what readline even is.This also raises an administrative point: some of the CI jobs are required to pass in order for a PR to be merged. This feature uses the names of certain jobs. The macOS job is one of those, however I am changing its name in this PR (the name of a job currently includes the value of any 'extra' variables). Therefore, the CI on this PR will not pass (notwithstanding #4377) until someone changes the branch protection rules for
gap-system/gap
to not require the currently-named macOS job. This is a slight annoyance and it would be good if we could come up with a solution that both provides useful and descriptive information in the GitHub interface, but which isn't as sensitive to changes like this PR contains. This of course might be impossible.