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

homebrew package dependencies versions log #113

Open
shipmints opened this issue Oct 1, 2024 · 4 comments
Open

homebrew package dependencies versions log #113

shipmints opened this issue Oct 1, 2024 · 4 comments

Comments

@shipmints
Copy link

shipmints commented Oct 1, 2024

I've been using your Emacs 29.4 build. There have been bug fixes to the tree-sitter library since 29.4 was built. I can't find a log of what homebrew package versions for library dependencies (or even which specific gcc which can be critical due to compiler bugs) were used in a build.

I'd like to suggest that you add a build artifact to the pipeline with documentation for homebrew versions.

Further, I wonder if there's value in using a Brewfile with pinned versions for "production" builds and adding an extra build indicator; e.g. rather than just Emacs-29.4, they could be labeled as Emacs-29.4-jimeh-1 or -2 or -3 where each build has specific dependencies documented.

I understand you've experimented with nix. Looks like the Caldwell build uses nix https://github.com/caldwell/build-emacs https://github.com/caldwell/build-emacs/blob/15bf567e3b816928b84d241efed1908188b9d18a/dependencies.nix if that makes anything easier.

@jimeh
Copy link
Owner

jimeh commented Oct 1, 2024

Thanks for raising this. Yes I definitely want to do this, and ideally I’d like to switch to Nix as well. I had not realized caldwell is using Nix, so that might be a good reference.

I’ll see if I can get a list of exact relevant homebrew package versions generated as part of the build. I can’t promise a timeline at the moment, but I’m hoping I’ll enough spare time soon and get it sorted.

The next phase I’d like to focus on after that would be Nix :)

@shipmints
Copy link
Author

At the very least, could add the build artifact that shows the homebrew versions of the downloaded dependencies. When weird things arise, it'll be a reference that saves us all time.

@jimeh
Copy link
Owner

jimeh commented Dec 1, 2024

This is somewhat addressed with the switch to Nix, as that locks all built-time deps to exact versions via the flake.lock file. And for the sake of visibility I have a Makefile target that also dumps all package names and versions into flake.pkgs.

Ultimately though, I want to have a look at GitHub's Artifact Attestations at some point and see if I can add it for builds produced by the workflows in jimeh/emacs-builds.

@shipmints
Copy link
Author

Indeed, nix > homebrew. I greatly dislike homebrew's total lack of reproducibility across systems and across time and coupled with homebrew's very early deprecation of platform support (Monterey not supported any longer despite it being the most widely used production macOS that I'm aware of where people have a choice), it makes hb a pain in the arse. If nix (better with guix, for sure) was a bit more accessible, I'd strongly consider it for home use. I rabbit hole I might have to dive into soon.

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

No branches or pull requests

2 participants