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

Automatically remove relevant repo_depends entries for official packages #17

Merged
merged 5 commits into from
Jun 18, 2020
Merged

Automatically remove relevant repo_depends entries for official packages #17

merged 5 commits into from
Jun 18, 2020

Conversation

yan12125
Copy link
Member

Tested with the following cases

  • cub
  • mxnet-git (involved with split packages)
  • lxqt-build-tools, libqtxdg-git (multiple packages)

A sample commit for the last test case can be found at https://github.com/yan12125/repo/commit/49ab72085b3a0c0c9827cff1889feefdb5d14708

Note that a new dependency python-ruamel-yaml is introduced in this pull request.

@yan12125
Copy link
Member Author

Oh, issuebot should reject orphan requests with packages that are in repo_depends of other packages, too. Too lazy to finish them today.

@yan12125 yan12125 marked this pull request as draft May 27, 2020 15:34
issuebot Show resolved Hide resolved
issuebot Outdated Show resolved Hide resolved
issuebot Outdated Show resolved Hide resolved
issuebot Outdated Show resolved Hide resolved
@lilydjwg
Copy link
Member

Oh, issuebot should reject orphan requests with packages that are in repo_depends of other packages, too.

Maybe mention maintainers in a comment whose repo_depends is going to break? What to do afterwards then? Do we check everyday if the packages could be removed?

@yan12125
Copy link
Member Author

Maybe mention maintainers in a comment whose repo_depends is going to break? What to do afterwards then? Do we check everyday if the packages could be removed?

Here is my original plan: when the orphan request is created, listing packages that are used by other packages, and when ORPHANING_WAITING_TIME is due, simply skipping packages that are still used. Maybe maintainership is transferred during the period, or depending packages are also orphaned. If nothing happens, to-be-orphaned packages will still be maintained by the original maintainers. Another orphan request is needed if the dependency is resolved after ORPHANING_WAITING_TIME is due.

@lilydjwg
Copy link
Member

to-be-orphaned packages will still be maintained by the original maintainers

I don't think this is a good idea. When a maintainer orphans packages, they mean to stopping maintaining them. No maintainer should be forced to maintain packages.

I think there are two ways:

  1. Keep the orphaning packages but without maintaners. It'll break eventually and depending packages will break.
  2. Remove the orphaning packages anyway. Depending packages will break.

When depending packages break, their maintainers are expected to fix them.

Given the same eventual outcome, I prefer 2 for simplicity. We notify depending-package maintainers in the orphaning issue so they can keep up.

@yan12125
Copy link
Member Author

yan12125 commented Jun 5, 2020

Remove the orphaning packages anyway. Depending packages will break.

If we go that way and archlinuxcn/repo#1574 is merged, CI tests will be red for some time and everyone pushes to the repo during that period will receive mails about build failures. That sounds not good to me, either.

An extreme case is lib32-libmng. It is orphaned and then removed on May 20, 2019. After that date, lib32-qt4 is broken until lib32-libmng is re-added on Apr 10, 2020 [2].

No maintainer should be forced to maintain packages.

Indeed that makes more sense. How about transfer maintainership automatically? For example, if A is orphaned, and B and C repo_depends on A, then maintainers of A will become union of maintainers of B and C.

[1] archlinuxcn/repo@dedbaec
[2] archlinuxcn/repo@8f535d9

@lilydjwg
Copy link
Member

lilydjwg commented Jun 8, 2020

Ah yes.

How about transfer maintainership automatically?

Maybe create a vote for this to collect options?

One option is to transfer, the other is to keep without maintainers. The former may make responsibility vague because of multiple non-cooperative maintainers. What issues may the latter have? If an orphaned package A caused B to fail, maintainers of B are expected to look into the issue and they may decide to take over A or drop B.

@yan12125
Copy link
Member Author

What issues may the latter have?

I guess no. Nevertheless, it's still better to collect opinions from more package maintainers, so I created archlinuxcn/repo#1676.

@yan12125 yan12125 marked this pull request as ready for review June 16, 2020 10:37
issuebot Outdated Show resolved Hide resolved
Chih-Hsuan Yen added 2 commits June 17, 2020 17:15
* Mention repo_depends in commit messages
* Use lilac2.lilacyaml.iter_pkgdir
@yan12125
Copy link
Member Author

This time I only tested the third case: lxqt-build-tools, libqtxdg-git (multiple packages)

@lilydjwg lilydjwg merged commit 5491277 into archlinuxcn:master Jun 18, 2020
@yan12125 yan12125 deleted the auto-remove-repo-depends branch June 20, 2020 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants