* On 2025-03-07 at 11:05 GMT, Benny Siegert wrote:
At the macro level, what would help with this is if pkgsrc had CI. CI that is more granular than running full bulk builds and seeing that things started failing. Some system that would check each commit for breakage, with some sort of consequences. But that would require a very different development model. Something like each commit being on a branch and only being merged after testing.
Something like this? https://github.com/drecklypkg/dreckly/actions Here's briefly how it works:- Every push to trunk (as well as manual triggers) builds any requested packages on all systems, provides build logs on failure, and saves the binary packages to a server I've set up. If any files in the bootstrap path are touched, we also perform a fresh bootstrap.
- Every push to a branch named ci/*, or a pull-request, triggers a build for any touched packages, using BINPKG_SITES and DEPENDS_TARGET=bin-install to speed things up. These builds are not saved (important, we don't want them overwriting trunk).
- Builds on macOS, Ubuntu, Linux and Cygwin (yes, really) are performed on native GitHub runners. These are the fastest and can be spun up in parallel to handle multiple commits at once.
- FreeBSD and OpenBSD are done in qemu sessions on Ubuntu on GitHub runners. While these can run in parallel, they are quite a bit slower and less manageable. - I've written up a Jenkins integration so that for any other builds that aren't supported by GitHub runners, a build is triggered on the instance I've set up at https://ci.dreckly.dev/ which will then build the commit on any arbitrary OS I can run in MNX (currently CentOS, SmartOS, and NetBSD).
It's not perfect, and I'm still improving it, but yes we test every single commit to dreckly on macOS (arm64 and x86_64), Ubuntu, Cygwin, FreeBSD, OpenBSD, SmartOS, CentOS and NetBSD. And of course I'm still running my daily bulk builds on NetBSD, SmartOS and macOS to find any wider issues.
-- Jonathan Perkin pkgsrc.smartos.org Open Source Complete Cloud www.tritondatacenter.com