Skip to content

Commit 215d264

Browse files
committed
[RFC 0180] Remove broken and unmaintained leaf packages
1 parent 62d1245 commit 215d264

1 file changed

Lines changed: 85 additions & 0 deletions

File tree

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
feature: broken-package-removal
3+
start-date: 2024-07-14
4+
author: Jörg "Mic92" Thalheim
5+
co-authors:
6+
shepherd-team:
7+
shepherd-leader:
8+
related-issues:
9+
---
10+
11+
# Summary
12+
13+
[summary]: #summary
14+
15+
This RFCs defines under what conditions we remove broken and unmaintained leaf packages.
16+
The RFC does not have the ambition to define all reasons to remove a package but
17+
instead focuses on simple rules that can be automated.
18+
19+
# Motivation
20+
21+
[motivation]: #motivation
22+
23+
Broken and unmaintained packages still cost us valuable time.
24+
Broken packages still have to be evaluated to some extend
25+
and unmaintained packages might still have to rebuild when one of their dependencies changes.
26+
Removing unmaintained/unused code hopefully increases the overall package quality and helps us
27+
to save resources.
28+
Because it is easy to add packages, it should be also easy to remove them, ideally automated.
29+
30+
# Detailed design
31+
32+
[design]: #detailed-design
33+
34+
## Broken Packages
35+
36+
Packages that are marked as broken unconditionally platforms should be removed after one full NixOS release cycle.
37+
If the package had dependencies, those dependencies are also marked as indirectly broken.
38+
If they are not functional without the broken package, they should be removed as well.
39+
40+
## Unmaintained packages
41+
42+
Packages with an empty maintainer field that does not have packages depending on it, should
43+
be removed after 2 months. Ideally we have an automation or semi-automation that creates pull requests for that.
44+
45+
If a NixOS module depends on any of removed package, this module gets removed as well, if it is non-functional without the package.
46+
47+
# Examples and Interactions
48+
49+
[examples-and-interactions]: #examples-and-interactions
50+
51+
-
52+
53+
# Drawbacks
54+
55+
[drawbacks]: #drawbacks
56+
57+
Some maintained packages might still have users that won't be able to use the package,
58+
but the hope is that the removal of unmaintained package will lead to these people
59+
stepping up as a maintainer. Recovering from the git history should be easy in that case.
60+
61+
# Alternatives
62+
63+
[alternatives]: #alternatives
64+
65+
Keep all packages.
66+
67+
# Prior art
68+
69+
[prior-art]: #prior-art
70+
71+
- Most Linux distributions have rules around removing unmaintained packages i.e. Debian.
72+
- [Nixpkgs eval time is increasing too fast](https://github.com/NixOS/nixpkgs/issues/320528):
73+
This issue discusses how we can improve the evaluation time.
74+
75+
# Unresolved questions
76+
77+
[unresolved]: #unresolved-questions
78+
79+
?
80+
81+
# Future work
82+
83+
[future]: #future-work
84+
85+
?

0 commit comments

Comments
 (0)