-
Notifications
You must be signed in to change notification settings - Fork 16
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
feat: migrate to Nix Flake build system #33
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I have very less understanding here.
Taskfile->Makefile->Nix Flakes You do like rewrites 😉 |
Haha, not really, but I like writing maintainable code, meaning code that anyone can pick up if I’m no longer around. The current build system is more improvised than professional, and even I’m hesitant to update dependencies or modify the Makefile, so I can’t imagine what that’s like for someone else unfamiliar with it!
It’s definitely better, and for two main reasons: sandboxing and reproducibility. Those were goals I had from the beginning, but I lacked the know-how. Now we can maintain full control over the versions used, with macOS versioning being the only variable left, and its variability has close to zero impact. This setup also brings significant maintenance ease thanks to Nix, which is a programming language with many essential features out of the box. Maintaining a Makefile, on the other hand, requires using an unreadable or confusing syntax to implement features not originally intended. For example,
Do you mean you preferred having all versions centralized in
I’ve made sure to use the tools available in
For both tools, I ensured they retain the same CLI syntax so anyone already familiar with |
Hi everyone,
Having switched to Nix Darwin two weeks ago, I’ve fallen in love with this project, as it perfectly matched my requirements for rewriting the build system from scratch, which I've accomplished with this PR ^^
Here’s a summary of the main changes:
default.nix
libpng
has officially been added as a dependency. I discovered it was previously downloaded and compiled alongsidefreetype
as a subprojectI haven’t modified any package versions or performed updates to ensure no regressions have been introduced.
@alexmercerind, @moffatman, @23doors I’m waiting your feedback or comments about this major migration. Additionally, please check from your side that no regressions have been introduced if this migration meets your approval.
Pros:
Cons:
I started from scratch rather than pushing all of my local work because I was learning Nix simultaneously, so the commits were a bit… chaotic ^^