Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-22 Thread Kent Fredric
On Thu, 21 Dec 2017 12:25:11 -0600
William Hubbs  wrote:

> I think there's some confusion here. I'm not trying to change the bar
> for ~arch, just trying to understand what that bar is supposed to be.

The bar for ~arch is "end users should have reasonable expectations
that it mostly works for most purposes, especially those that can be
trivially checked for by its maintainer"

~arch will however be imperfect, and there will be issues from time to time.

However, the goal is that those issues are not the "easy to find and
obvious" kind, but the subtle and hard to stumble into.

And I see that as why we have the time interval: Because it gives a
good opportunity for actual real world usage patterns to discover the
sorts of problems that you can't discover by actively looking for them,
the rumsfeldian "unknown unknowns".

Because realistically speaking, ~arch is the stable of tomorrow.

The goal is for it to be stable today.

And when it proves itself ready to be the stable of today, it becomes
the stable of today.


pgpLBmGG4qGK7.pgp
Description: OpenPGP digital signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-21 Thread William Hubbs
On Thu, Dec 21, 2017 at 03:03:21PM +, Roy Bamford wrote:
> > So, I guess this means that the quality of the ~arch tree is supposed
> > to
> > be somewhat lower than the quality of the stable tree.
> > 
> > William
> > 
> > 
> 
> William,
> 
> I've been running ~arch everywhere since May 2002 and had exactly 
> two major issues. They were :-
> Xorg going modular ... which I was aware of before it happened and
> expat which came as a surprise while I was dealing with modular
> Xorg.
> 
> There have been some minor inconviences along the way too but
> problems running ~arch have reduced over the years.
> 
> Nobody should run Gentoo at all in production unless they build
> and test packages offline before pushing the binaries to production.
> Then they can run whatever they want.
> Every Gentoo install is different and very few possible 
> combinations are actually tested.
> 
> By all means lower the bar for ~arch. Say, to "builds and works for 
> me, needs more testing".  The down side is that it will create more
> bug reports and more work, so it may only exchange one problem
> for another.

I think there's some confusion here. I'm not trying to change the bar
for ~arch, just trying to understand what that bar is supposed to be.

William



signature.asc
Description: Digital signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-21 Thread Roy Bamford
On 2017.12.21 00:35, William Hubbs wrote:
> On Wed, Dec 20, 2017 at 07:12:45PM -0500, Michael Orlitzky wrote:
> > On 12/20/2017 06:58 PM, William Hubbs wrote:
> > > 
> > > There already is an overlay for dying packages, it is called
> graveyard,
> > > but no one is putting things there.
> > > 
> > > This email conflates old dying packages with new versions, which
> are a
> > > completely separate issue.
> > > 
> > 
> > Lack of new versions *is* dying. But I can make a package not-dying
> in a
> > few seconds by merging a PR, so long as you don't expect me to do
> the
> > (relatively high) level of QA required for ~arch.
> > 
> > 
> > > If a new version of a package is known to cause wide scale
> breakage, it
> > > goes in package.mask until the breakage is resolved. Otherwise,
> putting
> > > it in ~ is fine. I don't see the need for another level of
> keywords.
> > 
> > The quality of ~arch is its own worst enemy; these days, stable
> packages
> > are just old ~arch packages. Users and developers expect ~arch to
> work,
> > and we have no real policy or documentation stating that it won't.
> Many
> > people will tell you that ~arch works better than stable, because it
> > gets fixed faster.
> 
> ~arch *will* have breakages from time to time, sometimes major
> breakages, until they are masked or fixed. We are not supposed to
> leave
> major breakages there, but ~arch is definitely not for the faint of
> heart. If you are using ~arch, you are expected to be a power user at
> leasst and be able to recover if your system breaks. Production
> servers
> should not be running ~arch at all. That's the whole reason ~arch
> exists.
> 
> Yes, ~arch gets fixed faster than stable, but that is to be expected.
> However, it is definitely not a good reason to put your production
> system on
> full ~arch.
> 
> So, I guess this means that the quality of the ~arch tree is supposed
> to
> be somewhat lower than the quality of the stable tree.
> 
> William
> 
> 

William,

I've been running ~arch everywhere since May 2002 and had exactly 
two major issues. They were :-
Xorg going modular ... which I was aware of before it happened and
expat which came as a surprise while I was dealing with modular
Xorg.

There have been some minor inconviences along the way too but
problems running ~arch have reduced over the years.

Nobody should run Gentoo at all in production unless they build
and test packages offline before pushing the binaries to production.
Then they can run whatever they want.
Every Gentoo install is different and very few possible 
combinations are actually tested.

By all means lower the bar for ~arch. Say, to "builds and works for 
me, needs more testing".  The down side is that it will create more
bug reports and more work, so it may only exchange one problem
for another.

-- 
Regards,

Roy Bamford
(Neddyseagoon) a member of
elections
gentoo-ops
forum-mods


pgp1acaAGrvTc.pgp
Description: PGP signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-21 Thread Francesco Riosa


On 12/21/17 15:11, Rich Freeman wrote:
> Part of me wonders if issues with stable are causing issues with
> ~arch.  If stable is regarded as stale that is going to push people
> into ~arch who really intend to have stable systems.  That said you do
> want testing systems to have a reasonably low bug count because it is
> kind of hard to test the latest chromium beta when X11 isn't working.
>
Don't wonder anymore, this already happened, however it has to be noted
that different part of the tree are different.
Most famous server packages (apache, nginx, postfix, mysql posgrees) are
in good shape, stable here is pretty usable and working well.

When the target is a desktop system however things change and you are
pushed to a partially ~arch system and soon thereafter to a full
unstable install.

This is only partially imputable to the (lack of) manpower, increased
number of installed packages, infinitely bigger use flag permutation and
functionality,  in short complexity make very difficult to have a stable
system that stay stable.

Stable has to be stable in different point in times, and it's not enough
to wait a month of user test, that's a good start, but it should be
constantly  monitored in a changing environment. This is very difficult
when thare are 2000pkgs installed instead of 500.



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-21 Thread Rich Freeman
On Thu, Dec 21, 2017 at 6:01 AM, Thomas Deutschmann  wrote:
> On 2017-12-21 01:35, William Hubbs wrote:
>> ~arch *will* have breakages from time to time, sometimes major
>> breakages, until they are masked or fixed. We are not supposed to leave
>> major breakages there, but ~arch is definitely not for the faint of
>> heart. If you are using ~arch, you are expected to be a power user at
>> leasst and be able to recover if your system breaks. Production servers
>> should not be running ~arch at all. That's the whole reason ~arch
>> exists.
>
> If you add something to
> the repository which is keyworded you should at least know that it
> builds and works in the default USE flag configuration.

FWIW, this is a higher standard of quality than what is being proposed
right now for stable keywords (roughly).  Granted, stable would
benefit from being in ~arch for 30 days, and would also benefit from
any testing it took to get the package into ~arch.  However, the
current proposal is that there will be no runtime testing at all of
many packages with stable dependencies.

Ultimately we can define the quality standards however we want and
users can decide what quality level they wish to run.  However, the
obvious goal would be to choose reasonable standards that are useful
to as many as possible.

Do we want more packages just dumped into ~arch and let the users
running ~arch report runtime failures?  Or do we want packages in
~arch to be more stale?

Part of me wonders if issues with stable are causing issues with
~arch.  If stable is regarded as stale that is going to push people
into ~arch who really intend to have stable systems.  That said you do
want testing systems to have a reasonably low bug count because it is
kind of hard to test the latest chromium beta when X11 isn't working.

-- 
Rich



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-21 Thread Thomas Deutschmann
On 2017-12-21 01:35, William Hubbs wrote:
> ~arch *will* have breakages from time to time, sometimes major
> breakages, until they are masked or fixed. We are not supposed to leave
> major breakages there, but ~arch is definitely not for the faint of
> heart. If you are using ~arch, you are expected to be a power user at
> leasst and be able to recover if your system breaks. Production servers
> should not be running ~arch at all. That's the whole reason ~arch
> exists.

I don't agree with this.

Yes, ~arch can break sometimes so you should be familiar with masking.

But on the other hand: ~arch isn't a minefield. If you add something to
the repository which is keyworded you should at least know that it
builds and works in the default USE flag configuration. If you don't
know and there's a chance to break something badly, drop keywords or add
it with a mask.

Breaking ~arch because a dev was unable to test for some reason is IMHO
unacceptable -- even for ~arch. That's the whole reason why
keywords/p.mask exist ;-)


-- 
Regards,
Thomas Deutschmann / Gentoo Linux Developer
C4DD 695F A713 8F24 2AA1 5638 5849 7EE5 1D5D 74A5



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread William Hubbs
On Wed, Dec 20, 2017 at 07:12:45PM -0500, Michael Orlitzky wrote:
> On 12/20/2017 06:58 PM, William Hubbs wrote:
> > 
> > There already is an overlay for dying packages, it is called graveyard,
> > but no one is putting things there.
> > 
> > This email conflates old dying packages with new versions, which are a
> > completely separate issue.
> > 
> 
> Lack of new versions *is* dying. But I can make a package not-dying in a
> few seconds by merging a PR, so long as you don't expect me to do the
> (relatively high) level of QA required for ~arch.
> 
> 
> > If a new version of a package is known to cause wide scale breakage, it
> > goes in package.mask until the breakage is resolved. Otherwise, putting
> > it in ~ is fine. I don't see the need for another level of keywords.
> 
> The quality of ~arch is its own worst enemy; these days, stable packages
> are just old ~arch packages. Users and developers expect ~arch to work,
> and we have no real policy or documentation stating that it won't. Many
> people will tell you that ~arch works better than stable, because it
> gets fixed faster.

~arch *will* have breakages from time to time, sometimes major
breakages, until they are masked or fixed. We are not supposed to leave
major breakages there, but ~arch is definitely not for the faint of
heart. If you are using ~arch, you are expected to be a power user at
leasst and be able to recover if your system breaks. Production servers
should not be running ~arch at all. That's the whole reason ~arch
exists.

Yes, ~arch gets fixed faster than stable, but that is to be expected.
However, it is definitely not a good reason to put your production system on
full ~arch.

So, I guess this means that the quality of the ~arch tree is supposed to
be somewhat lower than the quality of the stable tree.

William



signature.asc
Description: Digital signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Michael Orlitzky
On 12/20/2017 06:58 PM, William Hubbs wrote:
> 
> There already is an overlay for dying packages, it is called graveyard,
> but no one is putting things there.
> 
> This email conflates old dying packages with new versions, which are a
> completely separate issue.
> 

Lack of new versions *is* dying. But I can make a package not-dying in a
few seconds by merging a PR, so long as you don't expect me to do the
(relatively high) level of QA required for ~arch.


> If a new version of a package is known to cause wide scale breakage, it
> goes in package.mask until the breakage is resolved. Otherwise, putting
> it in ~ is fine. I don't see the need for another level of keywords.

The quality of ~arch is its own worst enemy; these days, stable packages
are just old ~arch packages. Users and developers expect ~arch to work,
and we have no real policy or documentation stating that it won't. Many
people will tell you that ~arch works better than stable, because it
gets fixed faster.

The new level of keyword would avoid screwing all of those ~arch users
at once, by not suddenly murdering the quality of their tree. From the
outset, the new level of keyword would have to have a description like
"only use this if you are stupid" to fulfill its intended role.



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread William Hubbs
On Wed, Dec 20, 2017 at 06:33:21PM -0500, Michael Orlitzky wrote:
> On 12/20/2017 02:41 PM, Virgil Dupras wrote:
> > 
> > Maybe some kind of official overlay for packages needing love? We
> > could send outdated packages there to die or to be born again if the
> > right person picks it up.
> > 
> > The overlay could have more relaxed rules (not malicious and looking
> > good? no need to test this, merge!) for PR merging. If the package
> > degrades through bad PRs, fine, let's let it die. If it improves,
> > good, it can be born again.
> > 
> > ...
> > 
> > (my apologies if this idea is not new, I haven't been following the
> > ML for very long.)
> 
> It's not a bad idea, but personally I'd like to see it as a third level
> of stability in the tree for users to opt into with ACCEPT_KEYWORDS.

There already is an overlay for dying packages, it is called graveyard,
but no one is putting things there.

This email conflates old dying packages with new versions, which are a
completely separate issue.

If a new version of a package is known to cause wide scale breakage, it
goes in package.mask until the breakage is resolved. Otherwise, putting
it in ~ is fine. I don't see the need for another level of keywords.

William


signature.asc
Description: Digital signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Michael Orlitzky
On 12/20/2017 02:41 PM, Virgil Dupras wrote:
> 
> Maybe some kind of official overlay for packages needing love? We
> could send outdated packages there to die or to be born again if the
> right person picks it up.
> 
> The overlay could have more relaxed rules (not malicious and looking
> good? no need to test this, merge!) for PR merging. If the package
> degrades through bad PRs, fine, let's let it die. If it improves,
> good, it can be born again.
> 
> ...
> 
> (my apologies if this idea is not new, I haven't been following the
> ML for very long.)

It's not a bad idea, but personally I'd like to see it as a third level
of stability in the tree for users to opt into with ACCEPT_KEYWORDS.
Right now ~arch means,

  * I've built and tested this

and, because of how our package manager works,

  * I think this is more reliable than the previous ~arch version

Often that's a pretty high bar to meet.

For example, we have a pull request open right now[0] that adds an alpha
version of dev-php/xdebug-client to get php-7.2 support. It's probably
fine. The ebuild contains some minor, expected changes. Whatever, it
probably works. But, I don't use xdebug-client, and I don't think the
other member of the PHP team does either. Building php-7.2 takes a
while, and I'd have to do that and figure out how to do a basic "does
this work" test on the package to make sure it doesn't die immediately,
because otherwise the alpha version is going to ruin life for the people
who are using php-7.1 with the existing ~arch version.

But it's probably fine! It would be great if there was a third level of
stability called "whatever, it probably works." Then I could just merge
that PR and let the crazy people who have that in their ACCEPT_KEYWORDS
tell me if it breaks. Instead, it has to wait until one of two people
has the time to test/review it.


[0] https://github.com/gentoo/gentoo/pull/6586



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Ilya Tumaykin
qlist -Iv $(portageq --repo gentoo --orphaned)

On Wednesday, 20 December 2017 23:54:27 MSK Christopher Head wrote:
> On December 20, 2017 8:49:03 AM PST, "Michał Górny"  wrote:
> >Ad. 1. We currently have over 1650 m-n packages [1] and the list keeps
> >growing. The advantage of this type is that we have an explicit list
> >and everyone clearly sees that the packages need a new maintainer. We
> >also have some dedicated people who try to help fixing worst issues
> >but they're obviously not capable of doing all the work themselves.
> 
> Is there an easy way to check whether any packages I have installed on my 
> system are m-n? I checked “man q” and “man equery” but neither seemed to 
> support searching by maintainer. The closest I found was “equery meta”, but 
> that requires a specific package name on the command line.
> 
> I read the last rites and it’s quite easy to notice if a package I actively 
> use is shown there, but that doesn’t help with the hundreds of libraries and 
> other dependencies whose names I don’t even really recognize but I have 
> installed.
> 
-- 
Best regards.
Ilya Tumaykin.



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Christopher Head
On December 20, 2017 8:49:03 AM PST, "Michał Górny"  wrote:
>Ad. 1. We currently have over 1650 m-n packages [1] and the list keeps
>growing. The advantage of this type is that we have an explicit list
>and everyone clearly sees that the packages need a new maintainer. We
>also have some dedicated people who try to help fixing worst issues
>but they're obviously not capable of doing all the work themselves.

Is there an easy way to check whether any packages I have installed on my 
system are m-n? I checked “man q” and “man equery” but neither seemed to 
support searching by maintainer. The closest I found was “equery meta”, but 
that requires a specific package name on the command line.

I read the last rites and it’s quite easy to notice if a package I actively use 
is shown there, but that doesn’t help with the hundreds of libraries and other 
dependencies whose names I don’t even really recognize but I have installed.
-- 
Christopher Head

signature.asc
Description: PGP signature


Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Virgil Dupras
On Wed, 20 Dec 2017 17:49:03 +0100
Michał Górny  wrote:

> So does anyone have any ideas on what we could realistically do right
> now to improve things?

Maybe some kind of official overlay for packages needing love? We could send 
outdated packages there to die or to be born again if the right person picks it 
up.

The overlay could have more relaxed rules (not malicious and looking good? no 
need to test this, merge!) for PR merging. If the package degrades through bad 
PRs, fine, let's let it die. If it improves, good, it can be born again.

I'm under the impression that such an overlay could release pressure on 
proxy-maint, allow treecleaners to clean more aggressively while keeping users 
happy.

As a bonus, it could be an interesting path to becoming a gentoo developer. 
More relaxed rules could mean that anyone could assume maintainership of a 
dying package without having to wait for someone from proxy-maint to review 
every little change. This allows the would-be developer to be bolder with 
changes and prove herself better.

(my apologies if this idea is not new, I haven't been following the ML for very 
long.)

Regards,
Virgil Dupras



Re: [gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread nado
Hi,

December 20, 2017 5:46 PM, "Michał Górny"  wrote:

> E. Some of the unmaintained packages are dependencies of other
> maintained packages in Gentoo. However, developers usually don't want
> to take them, even if their package is the only revdep.
> 
> F. We are usually treecleaning packages as they become severely outdated
> and broken. However, that takes serious amount of work too and usually
> results in a lot of hostility from other developers (who don't want to
> maintain the package in question) and users.
> 
> G. In the past, I've attempted to evaluate the status of projects and to
> clean some dead up. However, it's a lot of manual labor and it meets
> with hostility from some of the Gentoo developers.
> 
> H. For most things related to determining developer inactivity, we have
> little to no automation. It's easy to tell when a developer stops
> committing altogether but we have no special help in e.g. determining
> that some packages are effectively unmaintained (and that would of
> course meet with hostility).

I believe there was some work in progress about automating check for new 
upstream version (via
repology api I think).
Couldn't this be used to check for maintainer abandon? Some bugs can't always 
be solved easily, so
you can't take that into account to check for inactivity, but not adding new 
versions is, IMO, a
sign that the maintainer doesn’t check often enough for updates.
We could also send automatic mail a month (arbitrary choice) after a new 
version has been released
upstream to the maintainer for the related ebuild with such a system, so that 
maintainers don't
have to bother about that part anymore.

I can't remember what was called the project but what's its current status?
I don't know if a solution like that would change much to the situation, but I 
believe it should
give us better insights about the state of the tree.

Best regards,
--
Corentin “Nado” Pazdera



[gentoo-dev] The problem of unmaintained packages in Gentoo

2017-12-20 Thread Michał Górny
Hello, everyone.

Jalus Bilieyich has submitted the following for the last Council
meeting:

| Discuss the lack of enough package maintainers to update ebuilds. Many
| ebuilds in the Portage tree can be easily marked outdated.

Given that the item didn't see any real discussion in the mailing lists,
and that it is a non-trivial problem, the Council has decided to bounce
it back to the mailing lists in a separate discussion thread.


The problem
===

The problem could be summarized shortly: the ebuilds need much more love
than they are given right now. This results in some packages being
outdated, half-broken and/or using obsolete constructs. In the end, some
of the packages start effectively blocking other developers from doing
their job (e.g. they can't solve one problem without fixing some other
pile of existing problems first).

I think we can list a few kinds of packages that need help in Gentoo:

1. Packages explicitly listed as not having a maintainer
   (maintainer-needed) [1].

2. Packages whose maintainer is MIA (including 'dead' projects).

3. Packages whose maintainer is not interested in maintaining them
   (or in some cases even unaware that he is the maintainer).

4. Packages whose maintainer is not capable of maintaining them 
   properly (or unwilling to, in some cases).

Now, for some details:

Ad. 1. We currently have over 1650 m-n packages [1] and the list keeps
growing. The advantage of this type is that we have an explicit list
and everyone clearly sees that the packages need a new maintainer. We
also have some dedicated people who try to help fixing worst issues
but they're obviously not capable of doing all the work themselves.

Ad. 2. This is somewhat problematic, developers usually notice
inactivity after some time and sometimes help out but things are rather
suboptimal right now. It can take 3-6 months from developer's
disappearance before his packages are announced 'up for grabs'
and someone actually interested can take them.

Things are even harder when the packages are maintained by projects
whose developers are no longer active.

Ad. 3. Sometimes developers lose interest or otherwise forget that they
maintain some package. This may result in some degradation but the
developer usually notices that when a new bug is reported and abandons
the package. This is the easier part.

The harder part is when packages are maintained by projects who aren't
really interested in them. This is especially a problem in herd-style
projects that collect large number of packages by a specific topic but
the individual project members are really interested in only a subset of
them.

Ad. 4. This is the hardest part. We have some packages which are
maintained but whose maintainers can't really keep up with work. In this
case it's usually hard to determine that the maintainer needs help with
a specific package, and/or whether he wishes to accept it.

What's even worse, there were historical cases when maintainers
'claimed' packages but were rather interested in prevented others
from  the maintenance work ('breaking them') or removing them.
At the same time weren't really interested in fixing bugs or updating
the packages.


Solutions?
==

So does anyone have any ideas on what we could realistically do right
now to improve things? Few notes from what I've seen:

A. Recruiters process new recruits quite smoothly but we don't have many
candidates interested in package management. Even then, I don't see
every new recruit taking 50+ packages...

B. Proxy-maint constantly lacks manpower to process contributions.
However, once again we can't expect a lot of packages per maintainer,
and we need to account for doubled manpower cost.

C. We have a lot of overlays. Some of their maintainers are quite
capable. Can we do something about that?

D. All above considered, we still haven't dealt with the copyright
issues. The work on last draft was stalled one year ago [2].

E. Some of the unmaintained packages are dependencies of other
maintained packages in Gentoo. However, developers usually don't want
to take them, even if their package is the only revdep.

F. We are usually treecleaning packages as they become severely outdated
and broken. However, that takes serious amount of work too and usually
results in a lot of hostility from other developers (who don't want to
maintain the package in question) and users.

G. In the past, I've attempted to evaluate the status of projects and to
clean some dead up. However, it's a lot of manual labor and it meets
with hostility from some of the Gentoo developers.

H. For most things related to determining developer inactivity, we have
little to no automation. It's easy to tell when a developer stops
committing altogether but we have no special help in e.g. determining
that some packages are effectively unmaintained (and that would of
course meet with hostility).


[1]:https://qa-reports.gentoo.org/output/maintainer-needed.html
[2]:https://wiki.gentoo.org/wiki/U