Skip to content

Initial support for MacOS Monterey using homebrew#118

Closed
tmcgilchrist wants to merge 5 commits intoocurrent:masterfrom
tmcgilchrist:macos_monterey
Closed

Initial support for MacOS Monterey using homebrew#118
tmcgilchrist wants to merge 5 commits intoocurrent:masterfrom
tmcgilchrist:macos_monterey

Conversation

@tmcgilchrist
Copy link
Copy Markdown
Member

No description provided.

Comment thread src-opam/distro.ml Outdated
Comment thread src-opam/distro.ml
`Deprecated
| `Cygwin v -> win10_docker_status `ServerCore v
| `Windows (_, v) -> win10_docker_status `Windows v
| `Macos _ -> `Active `Tier3 (** TODO What does this Tier level mean? Matches Windows Tier3 *)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Tier level is used to get a grouping on a set of distributions so they can have different properties:

  • Tier 1 will have all the different variants and architectures and should be tested thoroughly
  • Tier 2 are less supported but still important distributions to test as extra
  • Tier 3 are new or badly supported distributions in opam-repository. Those are usually disabled in ocaml-ci (otherwise it would fail too often) and enabled in opam-repo-ci for example (to ensure its support can get better over time)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The plan is to support macOS Monterey on x86_64 with a small range of OCaml versions (4.14 and 5.0). That sounds like a Tier2 to me?

In future we would look at supporting Apple Silicon as that is clearly the future for macOS developer tools, but that is planned to come after macOS x86_64 and Windows support is rolled out. We will get more benefit for the effort from hitting macOS and Windows, over an additional architecture that is partially tested on Linux ARM64.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Either Tier2 or Tier3 is fine for me (the macos support in opam-repo-ci isn't flowless yet)

Comment thread src-opam/distro.ml Outdated
Comment thread src-opam/distro.ml Outdated
@@
match os_family with
| `Linux | `Cygwin -> cmd "bash"
| `Linux | `Cygwin | `Macos -> cmd "bash" (* TODO Should we use zsh since that is the default now in MacOS? *)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't think it would change much given this setting is only used for the dockerfile itself not really the underlying setup (which can't really be tested in CI)

Comment thread src-opam/dockerfile_opam.ml Outdated
Copy link
Copy Markdown
Member

@avsm avsm left a comment

Choose a reason for hiding this comment

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

There's no explanation as to what this PR is actually for. There's no upstream support for native macOS in Docker, so what is this actually doing?

tmcgilchrist and others added 4 commits October 14, 2022 09:02
Co-authored-by: Kate <kit.ty.kate@disroot.org>
Co-authored-by: Kate <kit.ty.kate@disroot.org>
Co-authored-by: Kate <kit.ty.kate@disroot.org>
Co-authored-by: Kate <kit.ty.kate@disroot.org>
@tmcgilchrist
Copy link
Copy Markdown
Member Author

@avsm This is relying on the obuilder / ocluster support for running a docker like environment. We are currently using this to submit opam-repo-ci jobs to test macos-homebrew (Monterey). My intention is to add this support into ocaml-ci and move the workarounds in opam-repo-ci back into this repository.

There is a point to be made about no official native docker support on MacOS and this not being usable outside of obuilder. I could move it into another module with clear documentation saying only for obuilder.
Do you think this is being used by outside of our CI use case?

ocurrent/ocluster#193
ocurrent/obuilder#122

@avsm
Copy link
Copy Markdown
Member

avsm commented Oct 17, 2022

Thanks @tmcgilchrist. On reflection, I don't think it's appropriate to put this into ocaml-dockerfile, as there isn't a macOS port. It's probably a good idea to expose something slightly higher level for the purposes of OCaml-ci -- you will run across the same problem for a future *BSD support there. Proposals welcome for what that library might look like: it would be nice to be able to express a CI strategy that is portable across obuilder and Docker and other mechanisms in the future as we develop them.

@tmcgilchrist
Copy link
Copy Markdown
Member Author

I agree @avsm. Closing this in favour of an obuilder spec based library.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants