I would like Gentoo developers to stop using repoman and switch to better tooling (pkgdev, mgorny's dev scripts). I've started a discussion on gentoo-dev@. See https://archives.gentoo.org/gentoo-dev/message/93df9e7a2ad9d8d33e0cc83b50556d51 The devmanual has already been updated to contain information about pkgdev, in March 2021. See https://gitweb.gentoo.org/proj/devmanual.git/log/?qt=grep&q=pkgdev I have opened a devmanual pull request to remove references to repoman that might suggest that it is still an appropriate tool to use. See https://github.com/gentoo/devmanual/pull/274 The next steps once the devmanual change is committed, I think, are - Give the wiki similar treatment as the devmanual, replacing and removing references to repoman that would suggest it is an appropriate tool to use. - Modify repoman to emit a warning informing users of its deprecation - After some period of time, maybe 6 months, give last rites to repoman - Delete repoman from portage.git (and of course adding any features/behaviors we find lacking in pkgdev, et al)
With a vote of 6-0, the Council approved the following motion: > pkgcheck is now considered the primary Gentoo tool for ebuild QA. repoman is > no longer considered sufficient. Council condones the deprecation and removal > of repoman by the portage team. There was resistance to the idea of making repoman print a deprecation warning when executed, so I will drop that idea from the plan. Re-assigning to dev-portage@.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=c2c0b163b73c53d8aa65ed6403bdf8f116ef45b8 commit c2c0b163b73c53d8aa65ed6403bdf8f116ef45b8 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2022-03-11 21:12:26 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2022-03-14 17:05:41 +0000 Remove references to repoman Bug: https://bugs.gentoo.org/835013 Closes: https://github.com/gentoo/devmanual/pull/274 Signed-off-by: Matt Turner <mattst88@gentoo.org> appendices/common-problems/text.xml | 2 +- appendices/editor-configuration/emacs/text.xml | 4 +-- ebuild-maintenance/git/text.xml | 39 +++++++++++--------------- ebuild-maintenance/new-ebuild/text.xml | 8 +++--- ebuild-writing/common-mistakes/text.xml | 4 +-- ebuild-writing/file-format/text.xml | 6 ++-- ebuild-writing/misc-files/metadata/text.xml | 2 +- eclass-writing/text.xml | 3 +- general-concepts/ebuild-revisions/text.xml | 5 ++-- general-concepts/manifest/text.xml | 7 ++--- keywording/text.xml | 12 +------- tools-reference/text.xml | 3 -- 12 files changed, 35 insertions(+), 60 deletions(-)
I've updated all pages on the wiki that I think needed to be updated. This excluded: - Pages marked as archived/deprecated - Pages specifically about repoman - Team meeting minutes - Old GSoC pages - Translations See https://wiki.gentoo.org/wiki/Special:Contributions/Mattst88 I could have missed something. If I did, it was not an intentional, nefarious plot. Please just be a pal and update the page if you find something.
(In reply to Matt Turner from comment #0) > - After some period of time, maybe 6 months, give last rites to repoman > > - Delete repoman from portage.git I think the plan is to do this in the other order, since some portage clean ups are more or less blocked on repoman's removal (to avoid needing to modify repoman just to see it deleted soon after). To that end, I've opened a pull request to remove the repoman code from portage here: https://github.com/gentoo/portage/pull/819
I don't understand that eagerness to remove working code from Portage, at a point when pkgcheck's features aren't yet a superset of repoman's. For example, just a few days ago I had a case where repoman reported an unquoted ${FILESDIR} variable which pkgcheck hasn't caught (in dev-java/fop-2.7, before commit 8a1a75d34f4c). So, I certainly agree with the long-term goal. Why are we in such a hurry, however?
I'm not sure this bug is a great place for discussion. Let's move the discussion somewhere else if this comment doesn't wrap it up. (In reply to Ulrich Müller from comment #5) > I don't understand that eagerness to remove working code from Portage, at a > point when pkgcheck's features aren't yet a superset of repoman's. > [cut] > So, I certainly agree with the long-term goal. Why are we in such a hurry, > however? I don't feel like we're in a hurry or are rushing anything. At the same time, I don't think there's value in repoman remaining in the master branch, but it is going to increase the work required for refactors to portage. I see that as sufficient reason to go ahead with its removal. If in the case we need to fix something in repoman, we can always create a branch from the point immediately before its removal and tag another release from there. The code's removal from the master branch is unconnected to removing app-portage/repoman from ::gentoo. [paste] > For example, just a few days ago I had a case where repoman reported an > unquoted ${FILESDIR} variable which pkgcheck hasn't caught (in > dev-java/fop-2.7, before commit 8a1a75d34f4c). Please file an issue for pkgcheck if you haven't already. These were the kinds of things I was hoping to learn from the discussion thread I started on gentoo-dev@.
(In reply to Matt Turner from comment #6) > > For example, just a few days ago I had a case where repoman reported an > > unquoted ${FILESDIR} variable which pkgcheck hasn't caught (in > > dev-java/fop-2.7, before commit 8a1a75d34f4c). > > Please file an issue for pkgcheck if you haven't already. These were the > kinds of things I was hoping to learn from the discussion thread I started > on gentoo-dev@. Bug 839849 now.
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=3ec97d8f0cd427b7b9874b05f55d1aec5a1df8b0 commit 3ec97d8f0cd427b7b9874b05f55d1aec5a1df8b0 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2022-02-21 20:59:34 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2022-05-02 18:44:51 +0000 repoman: Remove RepoMan sez: So long and thanks for all the fish! I'll be enjoying my retirement now. Haven't I done enough to deserve that? Bug: https://bugs.gentoo.org/835013 Signed-off-by: Matt Turner <mattst88@gentoo.org> .github/workflows/black.yml | 2 +- .gitignore | 2 - cnf/make.globals | 2 +- lib/_emerge/Package.py | 5 +- lib/_emerge/depgraph.py | 2 +- lib/portage/dbapi/__init__.py | 12 - lib/portage/dbapi/porttree.py | 6 +- .../test_lazy_import_portage_baseline.py | 2 +- lib/portage/tests/resolver/ResolverPlayground.py | 10 - man/ebuild.5 | 6 +- man/make.conf.5 | 8 +- man/portage.5 | 42 +- repoman/.repoman_not_installed | 0 repoman/MANIFEST.in | 4 - repoman/NEWS | 14 - repoman/README | 49 -- repoman/RELEASE-NOTES | 213 ------ repoman/TEST-NOTES | 45 -- repoman/bin/repoman | 56 -- repoman/cnf/linechecks/linechecks.yaml | 34 - repoman/cnf/metadata.xsd | 548 -------------- repoman/cnf/qa_data/qa_data.yaml | 139 ---- repoman/cnf/repository/linechecks.yaml | 248 ------ repoman/cnf/repository/qa_data.yaml | 163 ---- repoman/cnf/repository/repository.yaml | 76 -- repoman/lib/repoman/__init__.py | 103 --- repoman/lib/repoman/_portage.py | 26 - repoman/lib/repoman/_subprocess.py | 58 -- repoman/lib/repoman/actions.py | 828 --------------------- repoman/lib/repoman/argparser.py | 388 ---------- repoman/lib/repoman/check_missingslot.py | 39 - repoman/lib/repoman/checks/__init__.py | 0 repoman/lib/repoman/config.py | 172 ----- repoman/lib/repoman/copyrights.py | 143 ---- repoman/lib/repoman/errors.py | 21 - repoman/lib/repoman/gpg.py | 73 -- repoman/lib/repoman/main.py | 255 ------- repoman/lib/repoman/metadata.py | 89 --- repoman/lib/repoman/modules/__init__.py | 0 repoman/lib/repoman/modules/commit/__init__.py | 0 repoman/lib/repoman/modules/commit/manifest.py | 122 --- repoman/lib/repoman/modules/commit/repochecks.py | 44 -- repoman/lib/repoman/modules/linechecks/__init__.py | 0 .../modules/linechecks/assignment/__init__.py | 27 - .../modules/linechecks/assignment/assignment.py | 38 - repoman/lib/repoman/modules/linechecks/base.py | 115 --- repoman/lib/repoman/modules/linechecks/config.py | 149 ---- .../lib/repoman/modules/linechecks/controller.py | 164 ---- .../repoman/modules/linechecks/depend/__init__.py | 21 - .../repoman/modules/linechecks/depend/implicit.py | 38 - .../modules/linechecks/deprecated/__init__.py | 46 -- .../modules/linechecks/deprecated/deprecated.py | 35 - .../modules/linechecks/deprecated/inherit.py | 67 -- .../lib/repoman/modules/linechecks/do/__init__.py | 21 - repoman/lib/repoman/modules/linechecks/do/dosym.py | 20 - .../repoman/modules/linechecks/eapi/__init__.py | 51 -- .../lib/repoman/modules/linechecks/eapi/checks.py | 79 -- .../repoman/modules/linechecks/eapi/definition.py | 35 - .../repoman/modules/linechecks/emake/__init__.py | 27 - .../lib/repoman/modules/linechecks/emake/emake.py | 25 - .../modules/linechecks/gentoo_header/__init__.py | 21 - .../modules/linechecks/gentoo_header/header.py | 56 -- .../repoman/modules/linechecks/helpers/__init__.py | 21 - .../repoman/modules/linechecks/helpers/offset.py | 21 - .../repoman/modules/linechecks/nested/__init__.py | 21 - .../repoman/modules/linechecks/nested/nested.py | 14 - .../repoman/modules/linechecks/nested/nesteddie.py | 9 - .../repoman/modules/linechecks/patches/__init__.py | 21 - .../repoman/modules/linechecks/patches/patches.py | 22 - .../repoman/modules/linechecks/phases/__init__.py | 40 - .../lib/repoman/modules/linechecks/phases/phase.py | 188 ----- .../repoman/modules/linechecks/portage/__init__.py | 27 - .../repoman/modules/linechecks/portage/internal.py | 32 - .../repoman/modules/linechecks/quotes/__init__.py | 27 - .../repoman/modules/linechecks/quotes/quoteda.py | 15 - .../repoman/modules/linechecks/quotes/quotes.py | 92 --- .../lib/repoman/modules/linechecks/uri/__init__.py | 21 - repoman/lib/repoman/modules/linechecks/uri/uri.py | 30 - .../lib/repoman/modules/linechecks/use/__init__.py | 21 - .../repoman/modules/linechecks/use/builtwith.py | 9 - .../repoman/modules/linechecks/useless/__init__.py | 27 - .../lib/repoman/modules/linechecks/useless/cd.py | 24 - .../repoman/modules/linechecks/useless/dodoc.py | 17 - .../modules/linechecks/whitespace/__init__.py | 27 - .../repoman/modules/linechecks/whitespace/blank.py | 24 - .../modules/linechecks/whitespace/whitespace.py | 20 - .../modules/linechecks/workaround/__init__.py | 21 - .../modules/linechecks/workaround/workarounds.py | 11 - repoman/lib/repoman/modules/scan/__init__.py | 0 .../lib/repoman/modules/scan/depend/__init__.py | 43 -- .../repoman/modules/scan/depend/_depend_checks.py | 260 ------- .../lib/repoman/modules/scan/depend/_gen_arches.py | 67 -- repoman/lib/repoman/modules/scan/depend/profile.py | 427 ----------- .../repoman/modules/scan/directories/__init__.py | 53 -- .../lib/repoman/modules/scan/directories/files.py | 99 --- .../lib/repoman/modules/scan/directories/mtime.py | 30 - repoman/lib/repoman/modules/scan/eapi/__init__.py | 28 - repoman/lib/repoman/modules/scan/eapi/eapi.py | 50 -- .../lib/repoman/modules/scan/ebuild/__init__.py | 66 -- repoman/lib/repoman/modules/scan/ebuild/ebuild.py | 263 ------- .../lib/repoman/modules/scan/ebuild/multicheck.py | 62 -- .../lib/repoman/modules/scan/eclasses/__init__.py | 49 -- repoman/lib/repoman/modules/scan/eclasses/live.py | 77 -- repoman/lib/repoman/modules/scan/eclasses/ruby.py | 49 -- repoman/lib/repoman/modules/scan/fetch/__init__.py | 37 - repoman/lib/repoman/modules/scan/fetch/fetches.py | 205 ----- .../lib/repoman/modules/scan/keywords/__init__.py | 37 - .../lib/repoman/modules/scan/keywords/keywords.py | 179 ----- .../lib/repoman/modules/scan/manifest/__init__.py | 34 - .../lib/repoman/modules/scan/manifest/manifests.py | 56 -- .../lib/repoman/modules/scan/metadata/__init__.py | 89 --- .../repoman/modules/scan/metadata/description.py | 44 -- .../modules/scan/metadata/ebuild_metadata.py | 84 --- .../repoman/modules/scan/metadata/pkgmetadata.py | 221 ------ .../lib/repoman/modules/scan/metadata/restrict.py | 58 -- .../lib/repoman/modules/scan/metadata/use_flags.py | 103 --- repoman/lib/repoman/modules/scan/module.py | 127 ---- .../lib/repoman/modules/scan/options/__init__.py | 28 - .../lib/repoman/modules/scan/options/options.py | 27 - repoman/lib/repoman/modules/scan/scan.py | 67 -- repoman/lib/repoman/modules/scan/scanbase.py | 79 -- repoman/lib/repoman/modules/vcs/None/__init__.py | 32 - repoman/lib/repoman/modules/vcs/None/changes.py | 50 -- repoman/lib/repoman/modules/vcs/None/status.py | 52 -- repoman/lib/repoman/modules/vcs/__init__.py | 12 - repoman/lib/repoman/modules/vcs/bzr/__init__.py | 32 - repoman/lib/repoman/modules/vcs/bzr/changes.py | 77 -- repoman/lib/repoman/modules/vcs/bzr/status.py | 72 -- repoman/lib/repoman/modules/vcs/changes.py | 170 ----- repoman/lib/repoman/modules/vcs/cvs/__init__.py | 32 - repoman/lib/repoman/modules/vcs/cvs/changes.py | 134 ---- repoman/lib/repoman/modules/vcs/cvs/status.py | 134 ---- repoman/lib/repoman/modules/vcs/git/__init__.py | 32 - repoman/lib/repoman/modules/vcs/git/changes.py | 145 ---- repoman/lib/repoman/modules/vcs/git/status.py | 80 -- repoman/lib/repoman/modules/vcs/hg/__init__.py | 32 - repoman/lib/repoman/modules/vcs/hg/changes.py | 109 --- repoman/lib/repoman/modules/vcs/hg/status.py | 68 -- repoman/lib/repoman/modules/vcs/settings.py | 113 --- repoman/lib/repoman/modules/vcs/svn/__init__.py | 32 - repoman/lib/repoman/modules/vcs/svn/changes.py | 156 ---- repoman/lib/repoman/modules/vcs/svn/status.py | 151 ---- repoman/lib/repoman/modules/vcs/vcs.py | 145 ---- repoman/lib/repoman/profile.py | 94 --- repoman/lib/repoman/qa_data.py | 210 ------ repoman/lib/repoman/qa_tracker.py | 46 -- repoman/lib/repoman/repos.py | 377 ---------- repoman/lib/repoman/scanner.py | 484 ------------ .../06B3A311BD775C280D22A9305D90EA06352177F6.rev | 37 - .../8DEDA2CDED49C8809287B89D8812797DDF1DD192.rev | 37 - .../273B030399E7BEA66A9AD42216DE7CA17BA5D42E.key | Bin 2055 -> 0 bytes .../C99796FB85B0C3DF03314A11B5850C51167D6282.key | Bin 2055 -> 0 bytes repoman/lib/repoman/tests/.gnupg/pubring.kbx | Bin 2774 -> 0 bytes repoman/lib/repoman/tests/.gnupg/trustdb.gpg | Bin 1360 -> 0 bytes repoman/lib/repoman/tests/__init__.py | 328 -------- repoman/lib/repoman/tests/__test__.py | 0 repoman/lib/repoman/tests/changelog/__init__.py | 2 - repoman/lib/repoman/tests/changelog/__test__.py | 0 .../lib/repoman/tests/changelog/test_echangelog.py | 169 ----- repoman/lib/repoman/tests/commit/__init__.py | 2 - repoman/lib/repoman/tests/commit/__test__.py | 0 repoman/lib/repoman/tests/commit/test_commitmsg.py | 155 ---- repoman/lib/repoman/tests/runTests.py | 85 --- repoman/lib/repoman/tests/simple/__init__.py | 2 - repoman/lib/repoman/tests/simple/__test__.py | 0 repoman/lib/repoman/tests/simple/test_simple.py | 512 ------------- repoman/lib/repoman/utilities.py | 590 --------------- repoman/man/repoman.1 | 478 ------------ repoman/runtests | 189 ----- repoman/setup.py | 523 ------------- tox.ini | 3 +- 171 files changed, 32 insertions(+), 15135 deletions(-)
Support was removed in portage-3.0.31. I think the only real remaining work is to make sure our documentation on a pkgdev & pkgcheck workflow is good (not the same thing as making sure we simply change references). I might just write a new wiki page on it.
(In reply to Sam James from comment #9) > Support was removed in portage-3.0.31. > > I think the only real remaining work is to make sure our documentation on a > pkgdev & pkgcheck workflow is good (not the same thing as making sure we > simply change references). I might just write a new wiki page on it. Done: - https://wiki.gentoo.org/wiki/Pkgcheck - https://wiki.gentoo.org/wiki/Pkgdev - https://wiki.gentoo.org/wiki/Standard_git_workflow
Actually, I suppose there's... > - Modify repoman to emit a warning informing users of its deprecation > > - After some period of time, maybe 6 months, give last rites to repoman > which we still need to handle.
Checking all ebuilds in an overlay repo became unnecessarily convoluted: Repoman: cd /your/repo repoman Pkgcheck: cd /your/repo pkgcheck scan */*/*.ebuild # undocumented, of course Simply running "pkgcheck scan" in the top-level dir does nothing, says nothing, exits with a zero status code. No talk of directory traversal in the man page, the GitHub repo, the Gentoo wiki, etc.
(In reply to Ștefan Talpalaru from comment #12) > Checking all ebuilds in an overlay repo became unnecessarily convoluted: > > Repoman: > > cd /your/repo > repoman > > Pkgcheck: > > cd /your/repo > pkgcheck scan */*/*.ebuild # undocumented, of course > > Simply running "pkgcheck scan" in the top-level dir does nothing, says > nothing, exits with a zero status code. No talk of directory traversal in > the man page, the GitHub repo, the Gentoo wiki, etc. You don't actually need to do that though? sam@mop ~/git/musl $ pkgcheck scan gentoo -- updating eclass cache: flag-o-matic gentoo -- updating git cache: commit date: 2022-07-26 gentoo -- updating profiles cache: riscv sys-apps/intel-sa-00075-tools DeprecatedChksum: version 1.0: 'intel-sa-00075-tools-1.0.tar.gz' has deprecated checksums: sha256, whirlpool dev-util/dwarves PythonCompatUpdate: version 1.17-r2: PYTHON_COMPAT updates available: python3_9, python3_10, python3_11 UnusedInherits: version 1.17-r2: unused eclass: multilib [...] Please file a _new_ bug if you think you've found an issue. You certainly don't have to glob various ebuilds to make it work.
Upstream issue submitted: https://github.com/pkgcore/pkgcheck/issues/418
The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=267fccffaf76fc32f22d597d4b08c77931994df3 commit 267fccffaf76fc32f22d597d4b08c77931994df3 Author: Mike Gilbert <floppym@gentoo.org> AuthorDate: 2022-09-12 18:26:21 +0000 Commit: Mike Gilbert <floppym@gentoo.org> CommitDate: 2022-09-12 18:26:21 +0000 profiles: mask app-portage/repoman for removal Bug: https://bugs.gentoo.org/835013 Signed-off-by: Mike Gilbert <floppym@gentoo.org> profiles/package.mask | 6 ++++++ 1 file changed, 6 insertions(+)
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b9330123bcab42d384d28fc7a78067aecc1011a6 commit b9330123bcab42d384d28fc7a78067aecc1011a6 Author: Matt Turner <mattst88@gentoo.org> AuthorDate: 2022-11-15 03:02:05 +0000 Commit: Matt Turner <mattst88@gentoo.org> CommitDate: 2022-11-15 03:02:05 +0000 app-portage/repoman: Delete Closes: https://bugs.gentoo.org/835013 Signed-off-by: Matt Turner <mattst88@gentoo.org> app-portage/repoman/Manifest | 4 -- app-portage/repoman/metadata.xml | 12 ----- app-portage/repoman/repoman-3.0.3-r2.ebuild | 80 ----------------------------- profiles/package.mask | 6 --- 4 files changed, 102 deletions(-)