nixos-apple-silicon
nixos-apple-silicon copied to clipboard
Community transition of nixos-apple-silicon
I have been the sole maintainer of the nixos-apple-silicon project since its inception in late 2021 (before Asahi Linux's first alpha!), and I have been treating it as a personal side project with all the benefits and drawbacks that entails. For a variety of reasons, I have decided it is (past) time to transition the project to NixOS community ownership.
I am extremely grateful for the many users (and >1K stargazers) who use the project, leave feedback, help solve issues, and gave me the opportunity to build something to share and enjoy. I am not leaving the NixOS or Apple Silicon community, and I plan to continue to test and improve as I am able, but I am ready to expand the project beyond myself. My goal isn't to create a big observable change. This issue is to serve as a checkpoint, centralize the discussion, and solicit some feedback (even if it's just a thumbs up) to help guide this next step.
Reasons for the change:
- My time available to address issues and improve the project has been variable, but is overall dwindling due to job demands and personal priorities, and this will not reverse course soon
- I build and test for me, and don't have other machines, nor a way to engage feedback or make consensus decisions. Others who use the project differently (e.g. with flakes, on stable releases) ran into problems I didn't have time to address. I lacked the habit of incorporating the community fully.
- The Asahi Linux project itself is changing
- Big features like the x86 emulation stack I simply don't have time to implement myself; small features slipped by
- They themselves have changed to a more distributed model: https://asahilinux.org/2025/02/passing-the-torch/
- There are new guidelines for distros to be formally associated, which essentially require a community: https://asahilinux.org/docs/alt/policy/
- There are willing volunteers who would like to step up and help shoulder responsibility
- I never actually daily drove the project! 99% of my NixOS on Apple Silicon needs were met by a VM in macOS. Given the accomplished goal of Asahi Linux to be a daily-drivable distro (and this project supporting that), myself being the community leader is questionable on its face.
Immediate next steps to address this issue, after which it will be closed:
- Discuss opportunities for the future and potential problems with this plan
- Allow a week for my next big work trip to conclude
- Transition the repository to the nix-community organization
- Update docs to the new location
- Add @flokli and @yuyuyureka as maintainers. They stepped up, have made significant contributions, have hardware, and are established members of the NixOS community. They will be able to merge fixes, address issues, and do releases.
Personal goals for the project I'd like to keep in mind:
- Benefit NixOS as a whole
- I liked this project as a way to demonstrate what NixOS is capable of, even for oddball systems and without significant resources. Anyone could clone the repo and exactly build the installer with one command (and have a starting place for tweaks) and I'm really proud of that.
- This was my way to keep tabs on the state of cross-compilation, as it's very relevant to me personally and for work projects. Testing each release allowed me to identify and fix breakages.
- The project was motivation for me to help address important NixOS aarch64 fixes, like page size issues, and moving past GCC 9
- Provide high quality resources and documentation on Apple Silicon in general
- Despite the dreams of Asahi Linux, these machines will always be a little bit special. Large parts of the guide are not NixOS-specific and could apply to installation of any ISO.
- Having tested and accurate sections on repair, maintenance, and uninstallation has been helpful as an easy reference for people needing help in the Apple Silicon community.
- The guide probably does need a re-test and refresh as a whole
- Test and document each release
- Every release was built on both aarch64 and x86_64. I built each installer, booted from it, and performed a re-installation to detect problems with booting, networking, and stuff essential to the new user experience.
- Every release was booted and important features were tested before tagging it
- The guide needs continual revision (e.g. foibles around booting off USB in U-Boot)
- I still believe tagged and CI-built releases, including the associated nixpkgs commit, are critical as an on-ramp and reference for testing and diagnosis
- Be stable and reliable at the core, with potential options of dramatic and experimental
Possible new goals to add (this list is for discussion, both additive and subtractive):
- Increase main branch velocity for fixes and improvements, keeping in mind the goal to avoid breakage and provide consistent (though perhaps less frequent) releases
- Personally participate via PRs instead of committing from "on high" and developing partially in private
- Incorporate contributions from forks
- Develop and document a release process, at least somewhere other than my brain (this issue is a good start)
- Add and maintain a stable release according to the official NixOS timelines; this has been a popular request
- Clean up internal cruft, do option deprecations, test features (perhaps including development resources) better
- Open more official avenues of communication with nixpkgs, Asahi Linux, and users
- Work with upstream nixpkgs to move packages as appropriate
- Address Asahi Linux distro guidelines and eventually become an official recommendation and/or be subsumed into Linux as a whole like they aim to be
Discussion is also available on Matrix at #asahi:nixos.org (created by @nrabulinski ) .
- There are new guidelines for distros to be formally associated, which essentially require a community: https://asahilinux.org/docs/alt/policy/
Your project to implement Apple Silicon support in your distro of choice must be directly supported - or otherwise acknowledged - by your distro's official maintainers. This may vary depending on your distro's policy and organisational structure, however typically this will take the form of an official taskforce/group endorsed by the distro, e.g. the Fedora Asahi SIG, Gentoo Asahi Project, or Debian's Team Bananas.
It says official maintainers, I wonder who exactly would represent that and how we could move in and be qualified. Would nix-community quality, is that official enough? Or would it have to be something like nixos-hardware which is in the NixOS org and is an official repo of NixOS for specific vendor and hardware support.
- There are new guidelines for distros to be formally associated, which essentially require a community: https://asahilinux.org/docs/alt/policy/
Your project to implement Apple Silicon support in your distro of choice must be directly supported - or otherwise acknowledged - by your distro's official maintainers. This may vary depending on your distro's policy and organisational structure, however typically this will take the form of an official taskforce/group endorsed by the distro, e.g. the Fedora Asahi SIG, Gentoo Asahi Project, or Debian's Team Bananas.
It says official maintainers, I wonder who exactly would represent that and how we could move in and be qualified. Would nix-community quality, is that official enough? Or would it have to be something like nixos-hardware which is in the NixOS org and is an official repo of NixOS for specific vendor and hardware support.
IMHO nix-community would fall under the "otherwise acknowledged" part. Popular projects like home-manager and disko are maintained there, as is a NixOS-WSL for example.
The official Nix projects now follow a constitution that defines what is official:
[The SC] has the following responsibilities: [...]
- Management of Official Resources:
- Decide which resources are considered official
- [...]
- As of the establishment of the SC, official resources and access details are listed in the repository.
That is, official is what's defined in the org repo, and the SC can make changes to what's official.
So to make something official: Open a PR against the org repo to document something as official and request a review from @NixOS/steering, who can then majority-approve and merge it.
Considering this exists, I don't think nix-community would be sufficient, unless nix-community itself were made official (which I like the idea of!).
I checked with the Asahi folks before this issue and at that time there was no list of official alternate distros yet. I suspect it might take some time to materialize and I don't think the rules there are hard and fast. So I think at this time nix-community is a better idea, certainly more than my personal account.
The transfer has been completed. Next step is to add and sync up the new maintainers. Thanks for everyone who read and reacted and discussed!
We have released with the new process, hopefully next time one of the other maintainers can spearhead that :)