public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman
@ 2019-09-09  6:23 Michał Górny
  2019-09-09 15:38 ` Alec Warner
  0 siblings, 1 reply; 3+ messages in thread
From: Michał Górny @ 2019-09-09  6:23 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2003 bytes --]

Hi,

This is something I'd like to pass to the Council for the next meeting.

TL;DR: I'd like to allow using pkgcheck instead of repoman because it's
5-26 times faster and more convenient to use.


The current policy requires you to test your packages with repoman prior
to committing.  However, repoman is both pretty inconvenient, unreadable
and slow.  For example, for the cleanup of old versions in 4 packages I
have staged right now:

$ time sh -c '(for x in $(git diff --name-only origin | cut -d/ -f1-2 | uniq); do ( cd $x && repoman full -d ); done)'

RepoMan scours the neighborhood...
RepoMan sez: "If everyone were like you, I'd be out of business!"

RepoMan scours the neighborhood...
RepoMan sez: "If everyone were like you, I'd be out of business!"

RepoMan scours the neighborhood...
  repo.eapi-deprecated          1
   media-libs/stops/stops-0.3.0-r1.ebuild: 5
RepoMan sez: "You're only giving me a partial QA payment?
              I'll take it this time, but I'm not happy."

RepoMan scours the neighborhood...
RepoMan sez: "If everyone were like you, I'd be out of business!"

real	1m46,236s
user	1m38,524s
sys	0m7,818s


For comparison, pkgcheck:

$ time pkgcheck scan --git-disable $(git diff origin --name-only | cut -d/ -f1-2 | sort -u)
media-libs/stops
  DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5

real	0m4,408s
user	0m3,985s
sys	0m0,559s


Note that this is with warm profile cache.  Without it:

$ time pkgcheck scan --profile-cache false --git-disable $(git diff origin --name-only | cut -d/ -f1-2 | sort -u)
media-libs/stops
  DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5

real	0m18,791s
user	0m16,279s
sys	0m0,611s


PkgCheck implements most of the checks currently in repoman,
and implements some more (e.g. for bad SRC_URI filenames).  It finally
had new releases recently, and I think it's matured enough for basic
development work.

WDYT?

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman
  2019-09-09  6:23 [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman Michał Górny
@ 2019-09-09 15:38 ` Alec Warner
  2019-09-09 15:44   ` Michał Górny
  0 siblings, 1 reply; 3+ messages in thread
From: Alec Warner @ 2019-09-09 15:38 UTC (permalink / raw
  To: Gentoo Dev

[-- Attachment #1: Type: text/plain, Size: 2677 bytes --]

On Sun, Sep 8, 2019 at 11:24 PM Michał Górny <mgorny@gentoo.org> wrote:

> Hi,
>
> This is something I'd like to pass to the Council for the next meeting.
>
> TL;DR: I'd like to allow using pkgcheck instead of repoman because it's
> 5-26 times faster and more convenient to use.
>
>
> The current policy requires you to test your packages with repoman prior
> to committing.  However, repoman is both pretty inconvenient, unreadable
> and slow.  For example, for the cleanup of old versions in 4 packages I
> have staged right now:
>
> $ time sh -c '(for x in $(git diff --name-only origin | cut -d/ -f1-2 |
> uniq); do ( cd $x && repoman full -d ); done)'
>
> RepoMan scours the neighborhood...
> RepoMan sez: "If everyone were like you, I'd be out of business!"
>
> RepoMan scours the neighborhood...
> RepoMan sez: "If everyone were like you, I'd be out of business!"
>
> RepoMan scours the neighborhood...
>   repo.eapi-deprecated          1
>    media-libs/stops/stops-0.3.0-r1.ebuild: 5
> RepoMan sez: "You're only giving me a partial QA payment?
>               I'll take it this time, but I'm not happy."
>
> RepoMan scours the neighborhood...
> RepoMan sez: "If everyone were like you, I'd be out of business!"
>
> real    1m46,236s
> user    1m38,524s
> sys     0m7,818s
>
>
> For comparison, pkgcheck:
>
> $ time pkgcheck scan --git-disable $(git diff origin --name-only | cut -d/
> -f1-2 | sort -u)
> media-libs/stops
>   DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
>
> real    0m4,408s
> user    0m3,985s
> sys     0m0,559s
>
>
> Note that this is with warm profile cache.  Without it:
>
> $ time pkgcheck scan --profile-cache false --git-disable $(git diff origin
> --name-only | cut -d/ -f1-2 | sort -u)
> media-libs/stops
>   DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
>
> real    0m18,791s
> user    0m16,279s
> sys     0m0,611s
>
>
> PkgCheck implements most of the checks currently in repoman,
> and implements some more (e.g. for bad SRC_URI filenames).  It finally
> had new releases recently, and I think it's matured enough for basic
> development work.
>

Generally speaking if stuff passes CI I'm happy, and if it doesn't I'm
unhappy. That being said, do we think there any critical repoman checks
that pkgcore does not implement?

Is there a plan for continued maintenance? E.g. when EAPI-next comes out I
suspect repoman will get it (via portage), but pkgcore struggled to pick up
new EAPIs as quickly. You mentioned pkgcheck had some releases; do we
expect this to continue?

-A


> WDYT?
>
> --
> Best regards,
> Michał Górny
>
>

[-- Attachment #2: Type: text/html, Size: 3485 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman
  2019-09-09 15:38 ` Alec Warner
@ 2019-09-09 15:44   ` Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2019-09-09 15:44 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 3553 bytes --]

On Mon, 2019-09-09 at 08:38 -0700, Alec Warner wrote:
> On Sun, Sep 8, 2019 at 11:24 PM Michał Górny <mgorny@gentoo.org> wrote:
> 
> > Hi,
> > 
> > This is something I'd like to pass to the Council for the next meeting.
> > 
> > TL;DR: I'd like to allow using pkgcheck instead of repoman because it's
> > 5-26 times faster and more convenient to use.
> > 
> > 
> > The current policy requires you to test your packages with repoman prior
> > to committing.  However, repoman is both pretty inconvenient, unreadable
> > and slow.  For example, for the cleanup of old versions in 4 packages I
> > have staged right now:
> > 
> > $ time sh -c '(for x in $(git diff --name-only origin | cut -d/ -f1-2 |
> > uniq); do ( cd $x && repoman full -d ); done)'
> > 
> > RepoMan scours the neighborhood...
> > RepoMan sez: "If everyone were like you, I'd be out of business!"
> > 
> > RepoMan scours the neighborhood...
> > RepoMan sez: "If everyone were like you, I'd be out of business!"
> > 
> > RepoMan scours the neighborhood...
> >   repo.eapi-deprecated          1
> >    media-libs/stops/stops-0.3.0-r1.ebuild: 5
> > RepoMan sez: "You're only giving me a partial QA payment?
> >               I'll take it this time, but I'm not happy."
> > 
> > RepoMan scours the neighborhood...
> > RepoMan sez: "If everyone were like you, I'd be out of business!"
> > 
> > real    1m46,236s
> > user    1m38,524s
> > sys     0m7,818s
> > 
> > 
> > For comparison, pkgcheck:
> > 
> > $ time pkgcheck scan --git-disable $(git diff origin --name-only | cut -d/
> > -f1-2 | sort -u)
> > media-libs/stops
> >   DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
> > 
> > real    0m4,408s
> > user    0m3,985s
> > sys     0m0,559s
> > 
> > 
> > Note that this is with warm profile cache.  Without it:
> > 
> > $ time pkgcheck scan --profile-cache false --git-disable $(git diff origin
> > --name-only | cut -d/ -f1-2 | sort -u)
> > media-libs/stops
> >   DeprecatedEAPI: version 0.3.0-r1: uses deprecated EAPI 5
> > 
> > real    0m18,791s
> > user    0m16,279s
> > sys     0m0,611s
> > 
> > 
> > PkgCheck implements most of the checks currently in repoman,
> > and implements some more (e.g. for bad SRC_URI filenames).  It finally
> > had new releases recently, and I think it's matured enough for basic
> > development work.
> > 
> 
> Generally speaking if stuff passes CI I'm happy, and if it doesn't I'm
> unhappy. That being said, do we think there any critical repoman checks
> that pkgcore does not implement?

Nope, critical definitely not.  FWIK radhermit doesn't consider any of
the missing repoman checks useful.

> Is there a plan for continued maintenance? E.g. when EAPI-next comes out I
> suspect repoman will get it (via portage), but pkgcore struggled to pick up
> new EAPIs as quickly. You mentioned pkgcheck had some releases; do we
> expect this to continue?

Well, I expect so.  radhermit is doing great work.  As for EAPIs,
usually partial support is sufficient for pkgcheck, and last time
I didn't have a major problem doing the necessary work for CI.

That said, I dare say pkgcheck has much lower entry barrier right now
than repoman.  Repoman was never convenient to work with, and the last
refactoring made contributing even harder (more resembling working with
Windows) than before.  PkgCheck is very pythonic in comparison (even if
you account for ferringb's weird past work, it usually doesn't affect
you).

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 618 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-09-09 15:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-09  6:23 [gentoo-dev] [RFC] Allowing pkgcheck as a replacement for repoman Michał Górny
2019-09-09 15:38 ` Alec Warner
2019-09-09 15:44   ` Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox