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

[RFC 0180] Remove broken and unmaintained leaf packages #180

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Mic92
Copy link
Member

@Mic92 Mic92 commented Jul 14, 2024

@Mic92 Mic92 force-pushed the removal-rfc branch 2 times, most recently from 3fd8a73 to 2e5572a Compare July 14, 2024 05:12
@Mic92 Mic92 changed the title [RFC 0178] Remove broken and unmaintained leaf packages [RFC 0180] Remove broken and unmaintained leaf packages Jul 14, 2024
@Mic92 Mic92 force-pushed the removal-rfc branch 3 times, most recently from 0082dff to 215d264 Compare July 14, 2024 05:25
Copy link
Member

@dotlambda dotlambda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be a rule to notify e.g. everyone who touched the package expression in the past before removal.

rfcs/0180-broken-package-removal.md Outdated Show resolved Hide resolved
rfcs/0180-broken-package-removal.md Show resolved Hide resolved
@Frontear
Copy link
Member

Frontear commented Jul 14, 2024

There are some packages with no maintainer yet don't exactly "become outdated" (an example is the intel-microcode package). How are we going to handle those?

@Mic92
Copy link
Member Author

Mic92 commented Jul 14, 2024

There are some packages with no maintainer yet don't exactly "become outdated" (an example is the intel-microcode package). How are we going to handle those?

I am sure that someone wants to become a maintainer of a package like this, once we actually become serious about removing it, because their hardware won't function without it. However we leave the decision what to do in this case up to the person merging the pull request i.e. waiting for a reasonable amount of time depending on the importance package.

rfcs/0180-broken-package-removal.md Outdated Show resolved Hide resolved
rfcs/0180-broken-package-removal.md Show resolved Hide resolved
rfcs/0180-broken-package-removal.md Outdated Show resolved Hide resolved
@AndersonTorres
Copy link
Member

There are some packages with no maintainer yet don't exactly "become outdated" (an example is the intel-microcode package). How are we going to handle those?

There are some of those packages that are very critical. Ideally they should be kept by a team.

@Mic92 Mic92 force-pushed the removal-rfc branch 2 times, most recently from 849ea46 to 086cb9a Compare July 14, 2024 06:02
@Mic92
Copy link
Member Author

Mic92 commented Jul 14, 2024

There are some packages with no maintainer yet don't exactly "become outdated" (an example is the intel-microcode package). How are we going to handle those?

There are some of those packages that are very critical. Ideally they should be kept by a team.

I think having this RFC in place, will make actually possible to find instances like this and hopefully improve the maintenance of these packages. I could see the security team for example maintaining microcode package.

@AndersonTorres
Copy link
Member

I could see the security team for example maintaining microcode package.

Or the nixos-hardware team (when they become a NixOS team :D )

@Aleksanaa
Copy link
Member

I hope the problem infrastructure or something like it can be implemented first, so we can add warnings to end users like "foo is deprecated and is subject to removal because ...", and guide them to give feedback. If they give reasonable reasons, we will cancel or postpone the removal.

We can divide the deprecation of a package into three stages:

  1. Throws a warning to end users but still builds on hydra
  2. Make a mark similar to insecure. If the user needs to use it, it needs to be manually allowed and it will not be built on hydra.
  3. Completely remove related expressions.

Each of these stages can last three to six months, giving everyone plenty of time to react and plenty of reason to remove it.

@Frontear
Copy link
Member

Additionally going back to maintainerless packages, I think itd be best to do a broad sweep and find which packages are still orphans and find them a team, especially for critical packages like the microcode package. Once this is done anything left behind would be non essential stuff, which can follow the removal procedure

@8573
Copy link

8573 commented Jul 14, 2024

Each of these stages can last three to six months, giving everyone plenty of time to react

Wouldn't anything shorter than six months per stage not be enough time for users of stable channels to notice before the removal process may move on to the next stage?

@AndersonTorres
Copy link
Member

About orphaning, we also need to deal with the silent retirement. There are a truckload of maintainers that did not maintain their codes from a long span of time.

I suggested to do a soft deletion of silent retired maintainers at NixOS/nixpkgs#310759.

Regardless the above:

We have the infamous Zero Hydra Failures event. We can do something similar around the months 3 and 9 in order to mark and sweep unmaintained packages.

@Mic92
Copy link
Member Author

Mic92 commented Jul 15, 2024

I hope the problem infrastructure or something like it can be implemented first, so we can add warnings to end users like "foo is deprecated and is subject to removal because ...", and guide them to give feedback. If they give reasonable reasons, we will cancel or postpone the removal.

We can divide the deprecation of a package into three stages:

1. Throws a warning to end users but still builds on hydra

2. Make a mark similar to insecure. If the user needs to use it, it needs to be manually allowed and it will not be built on hydra.

3. Completely remove related expressions.

Each of these stages can last three to six months, giving everyone plenty of time to react and plenty of reason to remove it.

I don't see really enough benefit in step 2, it just creates more work for us. Removing packages should not be more work than adding packages.

@Bot-wxt1221
Copy link
Member

Some old packages that no longer update should be considered. Maybe we should add a tag to point out it shouldn't be deleted.

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/rfcsc-meeting-2024-08-05/50170/1

@asymmetric asymmetric added the status: open for nominations Open for shepherding team nominations label Aug 19, 2024
@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/rfcsc-meeting-2024-08-19/50831/1

@kevincox
Copy link
Contributor

kevincox commented Sep 2, 2024

RFCSC:

This RFC has not acquired enough shepherds. This typically shows lack of interest from the community. In order to progress a full shepherd team is required. Consider trying to raise interest by posting in Discourse, talking in Matrix or reaching out to people that you know.

If not enough shepherds can be found in the next month we will close this RFC until we can find enough interested participants. The PR can be reopened at any time if more shepherd nominations are made.

See more info on the Nix RFC process here

@nixos-discourse
Copy link

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:

https://discourse.nixos.org/t/rfcsc-meeting-2024-09-02/51514/1

@Mic92
Copy link
Member Author

Mic92 commented Sep 3, 2024

RFCSC:

This RFC has not acquired enough shepherds. This typically shows lack of interest from the community. In order to progress a full shepherd team is required. Consider trying to raise interest by posting in Discourse, talking in Matrix or reaching out to people that you know.

If not enough shepherds can be found in the next month we will close this RFC until we can find enough interested participants. The PR can be reopened at any time if more shepherd nominations are made.

See more info on the Nix RFC process here

When I was on the RFC steering committee, we used to find shepherds based on the people involved in the discussion. Is this no longer the case and I should nominate people? There are enough people that participated in the discussion but the since the topic is not super controversial and the RFC is kept intentionally short, there is not a lot discussion needed.

@kevincox
Copy link
Contributor

kevincox commented Sep 3, 2024

Please nominate anyone you think is suitable. The whole community is welcome to nominate shepherds (including themselves).

Sometimes members of the RFC Steering Committee will make nominations but IIUC it isn't the role of the steering committee as an entity to do so. The ability to nominate is available to everyone and not centralized in the committee.

@AndersonTorres
Copy link
Member

I would like to see the Problem Infrastructure implemented before taking action, since it will provide the framework for doing this programatically.

@emilazy
Copy link
Member

emilazy commented Sep 3, 2024

Are you going to drive the work of getting the problems infrastructure into Nixpkgs? Per #180 (comment) it’s currently stalled out, and I don’t think we should block this improvement on the status quo on an unspecified person appearing to fix that.

@Mic92
Copy link
Member Author

Mic92 commented Sep 3, 2024

I would like to see the Problem Infrastructure implemented before taking action, since it will provide the framework for doing this programatically.

This is already happening: NixOS/nixpkgs#338267
I don't think we should block starting discussion on this PR for this reason, since this RFC is just about policies and not about implementation. Also we already have warnings/errors for "no maintainers" and "broken", so I don't see what this problem infrastructure should add new.

@Mic92
Copy link
Member Author

Mic92 commented Sep 3, 2024

I would like to nominate @emilazy for as a shepherd for this PR.

@emilazy
Copy link
Member

emilazy commented Sep 3, 2024

I walked into that one :)

I haven’t served as an RFC shepherd before, so I’m not too familiar with the exact process, and my availability at specific hours is erratic, so I am worried that I would likely miss scheduled meetings. Other than that I’d be happy to do what I can to get this merged.

@Mic92
Copy link
Member Author

Mic92 commented Sep 4, 2024

I also would like to nominate @preisi

@preisi
Copy link

preisi commented Sep 4, 2024

I'm accepting the nomination (and the chance to contribute to NixOS :))

@Mic92
Copy link
Member Author

Mic92 commented Sep 4, 2024

And finally I would like to nominate @jopejoe1

@jopejoe1
Copy link
Member

jopejoe1 commented Sep 4, 2024

And finally I would like to nominate @jopejoe1

I haven't served as an RFC Shepherd yet either, but I hope that with accepting this nomination, I can help with getting this merged and implemented.

@Mic92
Copy link
Member Author

Mic92 commented Sep 4, 2024

I haven’t served as an RFC shepherd before, so I’m not too familiar with the exact process

Don't worry, I was on the steering committee for a few years and several RFCs, so I know the process.

@emilazy
Copy link
Member

emilazy commented Sep 4, 2024

If doing the shepherd meetings over Matrix text chat works for everyone else I can probably squeeze in the time and would be happy to try to shepherd this.

@Mic92
Copy link
Member Author

Mic92 commented Sep 4, 2024

If doing the shepherd meetings over Matrix text chat works for everyone else I can probably squeeze in the time and would be happy to try to shepherd this.

Invite sent.

@AndersonTorres
Copy link
Member

I don't think we should block starting discussion on this PR for this reason, since this RFC is just about policies and not about implementation.

Makes sense.
I was thinking about implementation and avoiding reinvent the wheel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: open for nominations Open for shepherding team nominations
Projects
None yet