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

Added FreeBSD #230

Merged
merged 3 commits into from
Aug 8, 2023
Merged

Added FreeBSD #230

merged 3 commits into from
Aug 8, 2023

Conversation

mtelvers
Copy link
Member

@mtelvers mtelvers commented Aug 7, 2023

Tested with opam-repo-ci-local.

@kit-ty-kate
Copy link
Contributor

LGTM, pushed to live to see if it works.

Copy link
Contributor

@kit-ty-kate kit-ty-kate left a comment

Choose a reason for hiding this comment

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

Could also add the "(experimental)" inscription that macos has in the web ui?

service/pipeline.ml Outdated Show resolved Hide resolved
@kit-ty-kate
Copy link
Contributor

Let's merge this tomorrow if the CI isn't caught in an infinite loop by then (looks good so far)

@kit-ty-kate
Copy link
Contributor

It looks very stable. Thanks a lot @dustanddreams and @mtelvers!

There is a couple of minor visual issues but i’ll follow up on that elsewhere and it’s not related to opam-repo-ci so merging.

@kit-ty-kate kit-ty-kate merged commit 6c6fcd9 into ocurrent:master Aug 8, 2023
1 of 2 checks passed
@kit-ty-kate
Copy link
Contributor

cc @hannesm we’re now testing FreeBSD in opam-repository

@hannesm
Copy link
Contributor

hannesm commented Aug 8, 2023

@kit-ty-kate great to hear. Congratulations.

@hannesm
Copy link
Contributor

hannesm commented Aug 8, 2023

It may be useful to record not only FreeBSD, but as well the major.minor thereof (IIUC this is 13.2 in your current setup). Also, I don't quite understand "ocurrent" in depth, but are there mechanisms in place to upgrade the system packages eventually / regularly (i.e. gmake / git / ..)? And the OS itself (freebsd-update is a great utility for binary updates)?

@mtelvers
Copy link
Member Author

mtelvers commented Aug 8, 2023

The initial deployment was on 12.4; however, these have been upgraded to 13.2 this morning.

The machine(s) will be managed via Ansible scripts. These are under development. They use freebsd-update to update the OS and build the base images.

@tmcgilchrist
Copy link
Member

ocurrent/obuilder#109

@hannesm
Copy link
Contributor

hannesm commented Aug 22, 2023

Thanks for your work. I'm curious why FreeBSD is considered experimental, i.e. what is the process to be considered stable (is there anything I can help with)?

@kit-ty-kate
Copy link
Contributor

The two reasons are:

  • the way the CI machinery has been done for FreeBSD is all brand new code and behaviour (jails on FreeBSD vs. runc on Linux vs. ZFS shenanigans on macOS). We've already had bugs to fix (e.g. networking was not working as expected)
  • opam-repository was never properly tested for FreeBSD so some packages might not be compatible and things might fail unexpectedly outside of the control of one's PR. So this is basically a way of telling the users "if you see failure on that system, it might be normal"

For example macOS is still tagged as experimental mainly for the first reason but also packages are less tested so reason 2 is also at play.
I personally would expect FreeBSD to do a lot better than macOS and to be untagged as experimental much sooner (a month or two maybe)

@hannesm
Copy link
Contributor

hannesm commented Aug 22, 2023

Thanks for your reply @kit-ty-kate. If you see strange FreeBSD issues in CI, feel free to tag me. But certainly a availble: os != "freebsd" is fine for some packages as well (if nobody bothers / it is too hard to fix).

@tmcgilchrist
Copy link
Member

Agreeing with the reasons that @kit-ty-kate has posted, 1-2 months while we work through the setup seems right.
We have 1 main server running FreeBSD 13.2 that is handling the load quite nicely but it is early days and we want to keep it out of the main loop for opam-repo. So marking it as experimental makes sense. There are some setup improvements we still need to make around the hardware to avoid killing as many NVME drives.

Right now we support 4.14 and 5.0 on FreeBSD 13.2 x86. When 5.1 comes out will would swap 5.0 for that and continue with the 4.14 LTS and latest 5.* version. Do you think it is worth providing more OCaml versions?

So far the performance of FreeBSD obuilder is roughly inline with Linux runc implementation, which is very nice. Unlike macOS and Windows 😞

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.

4 participants