feat: Nix support for reproducible builds and dev shell#630
Closed
schembriaiden wants to merge 27 commits intoDonutWare:developfrom
Closed
feat: Nix support for reproducible builds and dev shell#630schembriaiden wants to merge 27 commits intoDonutWare:developfrom
schembriaiden wants to merge 27 commits intoDonutWare:developfrom
Conversation
Contributor
Author
|
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 😅 |
Contributor
Author
|
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 |
2 tasks
Collaborator
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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