Skip to content
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: force MacOS jobs to use Intel runners (macos-13) #9949

Merged
merged 3 commits into from
Apr 29, 2024

Conversation

ulysses4ever
Copy link
Collaborator

@ulysses4ever ulysses4ever commented Apr 28, 2024

GitHub just switched macos-latest to the ARM chips (now aliasing macos-14), and it brings a bunch of problems.

  • First of all, GHC's 8.8 and 8.6 don't exist there.
  • ghcup and llvm are unavailable

For the time being, let's stay on the previous version of the runner.


Template Β: This PR does not modify cabal behaviour (documentation, tests, refactoring, etc.)

Include the following checklist in your PR:

  • Patches conform to the coding conventions.
  • Is this a PR that fixes CI? If so, it will need to be backported to older cabal release branches (ask maintainers for directions).

Copy link
Collaborator

@geekosaur geekosaur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still needs work to fix the missing ghcup and LLVM on the new image.

@ulysses4ever ulysses4ever force-pushed the ci-fix-macos-jobs branch 2 times, most recently from 6b38d7b to 45183fc Compare April 28, 2024 18:01
@ulysses4ever ulysses4ever changed the title Fix macos jobs for older GHC that don't work on ARM chips CI: force MacOS jobs to use Intel runners (macos-13) Apr 28, 2024
@geekosaur geekosaur added merge me Tell Mergify Bot to merge merge delay passed Applied (usually by Mergify) when PR approved and received no updates for 2 days attention: needs-backport 3.12 labels Apr 28, 2024
@geekosaur
Copy link
Collaborator

*** Exception: nroff: readCreateProcessWithExitCode: posix_spawnp: does not exist (No such file or directory)

@ulysses4ever
Copy link
Collaborator Author

I have no clue! It tries to run man and fails? They don't have man on new macos runners? What a conundrum...

@ulysses4ever
Copy link
Collaborator Author

@geekosaur suggests it's nroff that's missing. Disabling the test on Mac seems the easiest.

@Mikolaj Mikolaj force-pushed the ci-fix-macos-jobs branch from bb69e40 to 77b5820 Compare April 29, 2024 01:34
Copy link
Member

@Mikolaj Mikolaj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much. However, once the new runners are not as broken in a couple of months, I'd propose to switch to them completely, reviving #9947 as needed. Or even remove the two oldest OSX jobs already, because they will keep slowing down our CI whatever we do.

@ulysses4ever
Copy link
Collaborator Author

@Mikolaj thanks! I'm open to suggestions after this current emergency PR merges. I should note:

  • I don't see how moving the MacOS jobs to the old-ghcs part of the pipeline helps anything. It will still be taking CI time and only decrease parallelism, I think. I'm probably misunderstanding something. Most importantly: I've never seen semantics of the old-ghcs job documented anywhere, so I'm very fuzzy on its goals.

  • I am not against removing the MacOS jobs altogether in principle. It will win some time, perhaps. I doubt that CI times are prohibitive or severely harmful currently. For one, flakiness seems like a bigger issue, and it manifests across the board over al jobs, I think. More importantly, though, I'm afraid that this move, while mildly improving dev experience, will worsen users' experience. For long time Haskell ecosystem had bad rep when it comes to Windows development. I'm afraid that this proposed step may move towards that (arguably, bad) direction on MacOS.

@geekosaur
Copy link
Collaborator

For one thing, "validate old ghcs" only runs on Ubuntu, not MacOS or Windows.

@ulysses4ever
Copy link
Collaborator Author

So, this effectively drops support for these GHCs on MacOS although they're in our support window. I put equality between not having a configuration in the CI and dropping support for the configuration, although it's a stretch. But I think this is not very different: we'll miss some bugs that way, and we kinda say we don't care by choosing to remove the configuration.

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.
@Mikolaj Mikolaj force-pushed the ci-fix-macos-jobs branch from 146ef78 to 326a1f6 Compare April 29, 2024 15:22
@Mikolaj
Copy link
Member

Mikolaj commented Apr 29, 2024

Yeah, in principle, agreed, but in practice, in the past weeks on the channel we had a few OSX jobs that took an hour to two hours, maybe more, stressing out the PR authors, because that looked like they got stuck. We also had, quite regularly, OSX validate jobs running a long time, I think over an hour longer than all other validate jobs. That's why I was commenting on the channel that I intend to disable some of them and nobody objected. Then I decided to wait, when it turned out the ARM jobs are going to be deployed soon.

For regular PRs this may not be such a problem, people may wait overnight, but for a series of urgent PRs, this is terrible.

Edit: also note that some jobs don't start until validate completes, so you can't ignore just the laggard OSX jobs.

@geekosaur
Copy link
Collaborator

This may be the time to consider #9934, specifically the revised version that runs a nightly job instead. So we move the slow Mac validate jobs there.

@mergify mergify bot merged commit d57f725 into haskell:master Apr 29, 2024
49 checks passed
@Mikolaj
Copy link
Member

Mikolaj commented Apr 29, 2024

@mergify backport 3.12

Copy link
Contributor

mergify bot commented Apr 29, 2024

backport 3.12

✅ Backports have been created

@ulysses4ever ulysses4ever deleted the ci-fix-macos-jobs branch April 29, 2024 19:10
mergify bot added a commit that referenced this pull request Apr 29, 2024
…#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

# Conflicts:
#	.github/workflows/validate.yml

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
geekosaur added a commit that referenced this pull request Apr 29, 2024
…#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>
Mikolaj added a commit that referenced this pull request May 1, 2024
3.12 changelog fixup (#9922)

* Incorporate Brandon’s suggestions

See #9920.

* Incorporate Artem’s suggestions

See #9920.

* Do not repeat yourself

* Fix release notes grammar (#9924)

* Fix release notes grammar

See #9920.

* Fix whitespace

* Support GHC 9.12

(cherry picked from commit da6bdef)

* Fix changelog/readme (backport #9935) (#9936)

* Fix changelog/readme

(cherry picked from commit ea0f464)

* Remove previous release date

---------

Co-authored-by: Francesco Ariis <[email protected]>

* Tell zlib not to use pkg-config in GitLab CI.

(cherry picked from commit 62c74fe)

* Revert "Mark ForeignLibs test as broken with ghc-8.4.4"

This reverts commit a90d44f.

(cherry picked from commit d0a690b)

* CI: drop validation of GHC 7

Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml

* fix validate.yml conflicts

How is this backport conflicting with _itself_?

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

* CI: force MacOS jobs to use Intel runners (macos-13) (backport #9949) (#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>

* Merge branch '3.12' into mergify/bp/3.12/pr-9886

* Update validate.yml

github nicely decided to ~revert~ the OS X validate fix when I rebased on top of it.

* make validate.yml consistent with master
mergify bot added a commit that referenced this pull request May 1, 2024
3.12 changelog fixup (#9922)

* Incorporate Brandon’s suggestions

See #9920.

* Incorporate Artem’s suggestions

See #9920.

* Do not repeat yourself

* Fix release notes grammar (#9924)

* Fix release notes grammar

See #9920.

* Fix whitespace

* Support GHC 9.12

(cherry picked from commit da6bdef)

* Fix changelog/readme (backport #9935) (#9936)

* Fix changelog/readme

(cherry picked from commit ea0f464)

* Remove previous release date

---------

Co-authored-by: Francesco Ariis <[email protected]>

* Tell zlib not to use pkg-config in GitLab CI.

(cherry picked from commit 62c74fe)

* Revert "Mark ForeignLibs test as broken with ghc-8.4.4"

This reverts commit a90d44f.

(cherry picked from commit d0a690b)

* CI: drop validation of GHC 7

Changes:
- bump GHC_FOR_RELEASE to 9.4.8
- bump action versions
- uniform quoting style
- satisfy actionlint
- fix order: setup Haskell before cache restore (uses setup.haskell-outputs)
- use `--ignore-project` in `cabal install hackage-repo-tool`
- use GHC_FOR_RELEASE also in validate-old-ghcs
- closes #8858: deleted comment
- closes #9858 by dropping container and using ghcup to setup ghcs

GHCs that do not install on ubuntu-22.04 with GHCup are dropped, meaning we only keep GHC 8.0.2 and up.

(cherry picked from commit 29dc53c)

# Conflicts:
#	.github/workflows/validate.yml

* fix validate.yml conflicts

How is this backport conflicting with _itself_?

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

* CI: force MacOS jobs to use Intel runners (macos-13) (backport #9949) (#9956)

* CI: force MacOS jobs to use Intel runners (`macos-13`)

GitHub just switched macos-latest to the ARM chips (now alisasing
`macos-14`), and it brings a bunch of problems.

- First of all, GHC's 8.8 and 8.6 don't exist there.
- ghcup and llvm are unavailable

For the time being, lets stay on the previous version of the runner.

(cherry picked from commit d36e0d0)

* CI: GitHub MacOS runners lost ghcup since 2024-04-27, so use haskell-action/setup instead

(cherry picked from commit 082d952)

* fixup! more compat with new macos runners

(cherry picked from commit 326a1f6)

* !fixup resolve conflicts

* copy an import list from #9551

because `System.Process.Internals` just (like, within the past
hour or so) started exporting a name we are using.

---------

Co-authored-by: Artem Pelenitsyn <[email protected]>
Co-authored-by: brandon s allbery kf8nh <[email protected]>

* Merge branch '3.12' into mergify/bp/3.12/pr-9886

* Update validate.yml

github nicely decided to ~revert~ the OS X validate fix when I rebased on top of it.

* make validate.yml consistent with master

Co-authored-by: Mikolaj <[email protected]>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge delay passed Applied (usually by Mergify) when PR approved and received no updates for 2 days merge me Tell Mergify Bot to merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants