-
-
Notifications
You must be signed in to change notification settings - Fork 78
feat: Nix support for reproducible builds and dev shell #630
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
Conversation
|
I am going to make some changes so that people can use this within their Sorry I am still getting used to the whole system 😅 |
|
I had to do some workarounds for fvp (specifically mdk-sdk, I believe there was a discussion to remove this #500), and mimalloc which were not getting fetched automatically |
|
Sorry for the late response. While I appreciate the implementation and can only assume it works for using this on nix. This would probably only satisfy a small community, but would require a quite a bit of up-keep. Especially given that I have no way of testing it. Probably better to keep specific install instructions like this in a separate repository. |
Pull Request Description
This pull request adds comprehensive Nix support for the project, introducing a Nix flake for reproducible builds, a development shell, and automation for updating dependency hashes. The changes enable easier development and packaging on Nix-based systems, automate hash management for dependencies, and improve the developer onboarding experience.
Nix Flake and Build Infrastructure:
flake.nixfile that defines the project as a Nix flake, specifying package builds, dependency pinning, and custom source builders formedia_kitand related plugins. This allows reproducible and declarative builds of the Flutter application on NixOS and compatible systems.fvpplugin (nix/fvp.nix) andmedia_kit_libs_linux(nix/media_kit_libs_linux_donutware.nix), ensuring all required native dependencies are fetched and built in a fully reproducible manner.Development Environment:
shell.nixfile that sets up a complete development environment with all necessary build tools, libraries, and environment variables for Flutter and Linux desktop development. This streamlines onboarding and ensures consistency across developer machines..envrcto automatically use the flake-based environment if Nix is installed, improving developer experience for those usingdirenv.Automation and CI:
.github/workflows/update-nix-hashes.yml) that automatically updates Nix hashes formedia_kitwhenpubspec.lockchanges, and creates a pull request with the updated hashes. This reduces manual maintenance and keeps builds reproducible.Issue Being Fixed
N/A
Screenshots / Recordings
Checklist