-
-
Notifications
You must be signed in to change notification settings - Fork 72
Opinions about scaling down nixpkgs #98
Comments
I think scaling down would have to be discussed a bit. Removing packages would kill one of the selling points of making it easy to add packages you need. A more viable approach could be the linux kernel way with trees. So one tree (maybe even repo if then merged in the default eval way) for modules and a tree for packages, or some other way it's split. (Though github is not to much build for that workflow, not sure how viable it would be in the end, so more a possible idea) |
In general, no. I would be much more in favor of automating and streamlining the maintenance of these things (like through I wouldn't be against a cleanup of some parts of Nixpkgs, though. Removing unmaintained (whether by us or upstream) leaf packages would assist in reducing long term "tech debt", as well as help us save on resources with things like Hydra and the binary cache -- https://www.github.com/NixOS/nixpkgs/issues/346385 is something recent that comes to mind which follows this idea |
First off, I think the SC should be establishing a permanent Nixpkgs Core team to provide more focused thoughts and plans for such a question, but until then... I'll walk through my thought process. Significantly scaling down Nixpkgs one-by-one doesn't really seem feasible. As you clean up, you will also create lots of breakage and impact users who may not be able to work around the removals. We do a bit of this during Zero Hydra Failure when for many packages we just admit defeat and mark them broken. Perhaps policies where if something has been broken for X time, it can be removed by anyone, not just the stated maintainer. There are some experiments with splitting up Nixpkgs that are interesting. One can imagine some language ecosystems becoming their own repos and depend on a core Nixpkgs, this is one of the high-level/long-term motivations behind flakes (making this a reality would take more time+work). This is also related to the idea of having an in-repo shared set of language-specific lockfile entries, good for application and system-level consistency; but we would probably need lots of exceptions and fixes, which then re-raises the maintenance burden. Some things we can do along the lines of "Automation over process and toil".
An example of a project where we scaled down was with the deprecation of NixOps. The Team Representatives group discussed and came to conclusion that we should notify people that it would no longer be maintained and is "use at your own risk". Many other similar tools have been created recent years and the need to keep it around+maintained was not worth it. Side-note: there is an effort and some funding to create a new version: NixOps4 - creative naming, I know. |
I think most of the general sentiment above, but I would push for more aggressively removing broken packages and unmaintained upstreamed packages as well. I think we should keep the scope of nixpkgs and can even include nightly software if we have great automation as well (we already package some packages like that in firefox-* packages). |
While I think more detail planning needs a team effort by nixpkgs-architecture or a new team, I think scaling down nixpkgs in terms of both code to maintain and eval time/disk size of nixos instances is a valuable goal per se. I'd advocate for the following ideas (and be open to new ones of course ;)):
So we should allow scaling down, primarily because it enables quicker iteration on alternative distros to be spun-off nixos and better results to e.g. build disk images for appliances. |
We have sufficient means to better deal with the volume of packages, briefly:
As far as I know, not spending enough is currently still a bigger issue than funding. |
If anything, I think nixpkgs should be scaled up, and recent nixpkgs architecture developments like by-name are a great step towards facilitating that. As noted in my answer to #97, the issue is rather one of logistics: at all times, we must effectively allocate our resources to accomplish as many of the most impactful goals as possible. |
People in the community create packages and modules mostly based on their own needs, so I think people are going to continue to maintain our modules and packages on that basis, and I don't think trying to narrow our scope on those things will help us much. I think maybe spinning out specific language ecosystems, so that they can be still accessed through nixpkgs, but do not have to all live in the same repository might make sense, to enable more specialized workflows and innovation in language-specific packaging, but do not know how we should do this. I agree with @tomberek that establishing a nixpkgs team would be a good idea. |
Question
Do you think we should scale down nixpkgs or other Nix projects, for example fewer packages, modules, or anything that has maintenance costs? What would be your plan of action?
Candidates I'd like to get an answer from
No response
Reminder of the Q&A rules
Please adhere to the Q&A guidelines and rules
The text was updated successfully, but these errors were encountered: