Skip to content
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

Add Package project status attribute? #296646

Open
davidak opened this issue Mar 17, 2024 · 3 comments
Open

Add Package project status attribute? #296646

davidak opened this issue Mar 17, 2024 · 3 comments
Labels
architecture Relating to code and API architecture of Nixpkgs

Comments

@davidak
Copy link
Member

davidak commented Mar 17, 2024

Issue description

I noticed that we have some packages where the upstream project is officially unmaintained or had no activity for 8 years. I think it would be helpful for package maintainers and users to mark such packages.

We would have to add a new meta attribute like:

meta.project-status (one word would be preferred)

that can have several states

maintained (default)
unmaintained (official upstream statement)

example: qsyncthingtray (last release 5 years ago, unmaintained)

abandoned (no update for X years)

example: syncthing-tray (last release 8 years ago)

I think we can keep such packages (like we do right now) for those that are still using them, but remove when they become broken or insecure. A package lifecycle diagram might be nice for the documentation.

We can show the project status in the search with a colored label: green, orange, blue

We could also include broken and insecure packages and show a big warning, so users know the packages exist and need some work.

With the new meta attribute, we can also add options like allowBroken:

allowUnmaintained = true;
allowAbandoned = true;

(default true, so the behavior does not change. users can change that)

Also the option to allow single packages:

permittedUnmaintainedPackages = [];
permittedAbandonedPackages = [];

We can create a script to check how long a package (definition) had no update and check the upstream status.

We have to think about the wording to not conflict the project status with out package maintainership status. Many packages have no maintainer set, so they are technically unmaintained.

What do you think?

@davidak davidak added the architecture Relating to code and API architecture of Nixpkgs label Mar 17, 2024
@MinerSebas
Copy link
Contributor

This sounds like something covered by/can be integrated into NixOS/rfcs#127, but I have no idea of the Implementation Status of the RFC.

@piegamesde
Copy link
Member

Also, I'd explicitly call it "upstreamMaintained" or something, to make the distinction clear

@lolbinarycat
Copy link
Contributor

since i have a bit of experience with adding meta attributes, i would name this abandoned and make it a boolean set to false by default.

the documentation would say "this package has been officially abandoned by the upstream maintainers"

however, i'm not entirely sure how useful this would be, since you can always just check the repo to see how long it's been since the last commit.

maybe i'll implement this if my other metadata PRs get accepted (otherwise i would have to deal with a fair few merge conflicts)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
architecture Relating to code and API architecture of Nixpkgs
Projects
None yet
Development

No branches or pull requests

4 participants