[gentoo-dev] [PATCH] glep-0068: Add new element

2020-09-15 Thread Michał Górny
Signed-off-by: Michał Górny 
---
 glep-0068.rst | 62 ---
 1 file changed, 59 insertions(+), 3 deletions(-)

diff --git a/glep-0068.rst b/glep-0068.rst
index d8fc379..5b7e2b9 100644
--- a/glep-0068.rst
+++ b/glep-0068.rst
@@ -4,10 +4,10 @@ Title: Package and category metadata
 Author: Michał Górny 
 Type: Standards Track
 Status: Final
-Version: 1.1
+Version: 1.2
 Created: 2016-03-14
-Last-Modified: 2020-05-06
-Post-History: 2016-03-16, 2018-02-20
+Last-Modified: 2020-09-16
+Post-History: 2016-03-16, 2018-02-20, 2020-09-16
 Content-Type: text/x-rst
 Requires: 67
 Replaces: 34, 46, 56
@@ -149,6 +149,10 @@ element can contain, in any order:
   languages (at most one for each language), as detailed
   in `Slot descriptions`_.
 
+- at most one  element containing version
+  constraints used to determine stabilization candidates, as detailed
+  in `Stabilization candidates`_.
+
 - zero or more  elements, possibly restricted
   to specific package versions (at most one for each version) whose presence
   indicates that the appropriate ebuilds are suitable for simultaneously
@@ -199,6 +203,25 @@ The  element can contain the following 
elements:
 - at most one  element describing the role of subslots (all
   of them) as text.
 
+Stabilization candidates
+
+Each  element describes version
+constraints used to determine package versions eligible
+for stabilization.  Should this element be missing, the tooling assumes
+a default of any version with any keywords present (i.e. the equivalent
+of ``>=0``).
+
+The  element can contain the following
+elements:
+
+- one or more  elements, each containing a version
+  constraint in the format matching EAPI 0 dependency specification
+  with the package category and name parts omitted, e.g. ``<1.7``.
+  The tooling considers any ebuild version that satisfies the constraint
+  and has any keywords.  If multiple constraints are provided, every one
+  of them is matched separately, and multiple stabilization candidates
+  can be reported.
+
 USE flag descriptions
 ~
 Each  element describes USE flags of a package (in specific
@@ -378,6 +401,39 @@ package version restrictions and maintainer descriptions 
were also implicitly
 allowed on them. Since neither of the two was allowed by GLEP 46, this
 specification disallows them.
 
+Stabilization candidates
+
+Version 1.2 of the specification adds stabilization candidate versions.
+The primary goal of this is to provide a more fine-grained control
+of tooling reporting stabilization candidates.  Previously, pkgcheck
+reported only the newest keyworded version that was eligible for
+stabilization according to the 30-day testing period.  This had two
+limitations.
+
+Firstly, it did not account for development branches properly
+and reported them as stabilization candidates.  While we could
+technically blacklist ``_alpha``, ``_beta``, ``_rc`` versions,
+this would not work for all packages.  Some GNOME and XFCE packages use
+odd numbers in minor version to indicate development branch.
+On the other hand, there are stagnant packages that stay in pre-release
+state for months, and stabilizing these versions also makes sense.
+
+Secondly, it did not account for software maintaining multiple parallel
+stable branches.  As soon as the newer version became eligible
+for stabilization, new releases of the older branches were not reported.
+In some cases, users are bound to old versions because of dependencies
+(e.g. on Python 2.7).
+
+The proposed ‘whitelist-override’ syntax aims to help with both cases.
+The default preserves current behavior.  A single override such
+as ``<1.7`` can be used to explicitly ignore development branch,
+and request stabilization candidates from earlier versions.  Multiple
+version constraints (say, ``<5.9`` and ``<5.5``) can be used to request
+monitoring multiple upstream branches.
+
+This information can also be consumed by users to opt-out of development
+versions and keep their systems running potential stable candidates.
+
 
 Backwards Compatibility
 ===
-- 
2.28.0




Re: [gentoo-dev] rfc: kubernetes packaging

2020-09-15 Thread William Hubbs
On Mon, Sep 14, 2020 at 12:30:48PM +0200, Marc Schiffbauer wrote:
> * William Hubbs schrieb am 14.09.20 um 00:39 Uhr:
> > All,
> > 
> > I would like to get some thoughts on kubernetes packaging.
> > 
> > When I started maintaining it in Gentoo, it was packaged as 7 ebuilds
> > (one per executable), and only one of them was marked stable.
> > 
> > Since we normally do not split up monorepos into separate packages, I
> > started moving everything over to one kubernetes ebuild.
> > Now a bug has
> > been opened which has a good case for kubeadm being a package on its
> > own, so I have done that [1].
> > 
> > I need to know the best way to proceed, so I'll throw out a couple
> > of questions:
> > 
> > 1) should I bring back the split packages and lastrites
> > sys-cluster/kubernetes?
> > 
> > 2) should I just bring back other split packages that need to be split
> > as I find them?
> > 
> > What do folks think would be the best way for us to package Kubernetes?
> 
> 
> Interesting.
> 
> So it seems like at least kubeadm and kube-apiserver need to be in 
> seperate packages.
> 
> I am not a kubernetes guy, but would SLOTting be an option? Like 
> postgresql for example where you need both versions, old a new to do 
> database migration.

I'm not really interested in slotting; that becomes complicated really
quickly -- renaming all of the binaries to version-specific names
writing an eselect module, etc.

> If this is not an option I would say this is a case for split package 
> and perhaps a meta-package bringing all of them together.

Thinking about it more, the split packages are going to be the best
setup. However, a meta package would only be valuable if all parts of
kubernetes are needed on the same machine, and that isn't the case most
of the time from what I've been told.

If folks think that single case justifies one, let me know.
My thought is that the meta package, if I create one, should only have a
two level version number and use * dependencies to match all package
versions in that range.

What do others think? is it worth a meta package for the case of having
all kubernetes binaries on one machine? If so, what do you think about
my suggestion of the minor versions for the meta package?

William



signature.asc
Description: PGP signature


[gentoo-dev] Last rites: dev-python/matplotlib-python2

2020-09-15 Thread Michał Górny
All revdeps are already masked for removal, so let's add it to their
pmask:

# Michał Górny  (2020-07-13)
# Python 2 dev-python/pillow revdeps with extended removal time.
# Also the only revdeps of dev-python/matplotlib-python2.
# Removal in 90 days.  Bug #729672.
dev-python/matplotlib-python2

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part


[gentoo-dev] Last rites: sys-fs/ufsutils

2020-09-15 Thread Sam James
# Sam James  (2020-09-15)
# No longer exists upstream, stuck on long-obsolete EAPI 4,
# and fails to build with glibc-2.32.
# Vestige of Gentoo/FreeBSD.
# bug #715506, #737892, #740916, #547244.
sys-fs/ufsutils


signature.asc
Description: Message signed with OpenPGP


[gentoo-dev] Last rites: net-nntp/sn

2020-09-15 Thread sultan
# Stephan Hartmann  (2020-09-15)
# Stuck on EAPI 4, does not build, homepage gone, no maintainer.
# Removal in 30 days. See bugs #717188, #725212, #736607,
# #742158.
net-nntp/sn



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Stabilisation of app-admin/ansible-2.10.0

2020-09-15 Thread Piotr Karbowski
Hi,

The current state is that the Ansible in tree is not working due to fact
that it misses core modules.

I'd say 2.10.0 should be masked, as ~arch or stable arch, it does not
work, then revbump to use bundle package, not ansible-base. If
maintainer want to split it into ansible-base + separated ebuilds for
modules, then maintainer should prepare a news item, as the update
replaces working Ansible with something that cannot work by itself, and
there's no interfaces to take in rest of needed parts as by now.

-- Piotr.



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Stabilisation of app-admin/ansible-2.10.0

2020-09-15 Thread Louis Sautier
On 15/09/2020 12:03, Marek Szuba wrote:
> Dear Matthew,
> 
> I notice that you have recently stabilised app-admin/ansible-2.10.0 in
> Gentoo. Ansible upstream has introduced in that version major changes to
> their project structure [1] which given the current state of Ansible
> packaging in Gentoo can be considered severely breaking for our users.
> Therefore, please:
>  1. Revert stabilisation of 2.10.0, and
>  2. Either
>* by no means remove 2.9.12 from the tree for the time being, and
> before attempting to stabilise 2.10+ again either prepare a news item
> warning the users about upcoming breaking changes or package a suitable
> set of formerly-core modules; or
>* simply pull the current incarnation of 2.10.0 from the tree and
> only reintroduce it once the ansible (*not* ansible-base) on PyPI has
> actually been upgraded to 2.10.
> 
> 
> Explanation for the ML:
> 
> Starting with version 2.10, the upstream package previously known as
> ansible is formally known as "ansible-base" and only provides the bare
> minimum of functionality - the core programs, some documentation, and a
> tiny subset of modules and plugins to allow for a functioning
> controller. All the other modules which were previously part of core
> ansible (see [2]) are now independent modules.
> 
> Note that this only pertains to upstream packages of Ansible released on
> GitHub. On PyPI, "ansible" will continue to bundle the "core" modules;
> this is explicitly mentioned in several places in [1]. The problem is,
> =app-admin/ansible-2.10.0 has quietly replaced pypi:ansible with
> pypi:ansible-base in SRC_URI. This may or may not have had something to
> do with the fact pypi:ansible has not been updated to 2.10.0 yet (for
> now it's only pre-releases for that branch).
> 
> References:
> 
> [1] https://github.com/ansible-collections/overview/blob/main/README.rst
> [2]
> https://github.com/ansible-community/ansible-build-data/blob/main/2.10/ansible.in
> 
If they are indeed going to release a "normal" version with core
modules, I'm in favour of separating ansible and ansible-base, which is
what upstream did in its PPA.

That would mean removing ansible 2.10 from the tree and re-adding it as
ansible-base 2.10.



signature.asc
Description: OpenPGP digital signature


[gentoo-dev] Stabilisation of app-admin/ansible-2.10.0

2020-09-15 Thread Marek Szuba
Dear Matthew,

I notice that you have recently stabilised app-admin/ansible-2.10.0 in
Gentoo. Ansible upstream has introduced in that version major changes to
their project structure [1] which given the current state of Ansible
packaging in Gentoo can be considered severely breaking for our users.
Therefore, please:
 1. Revert stabilisation of 2.10.0, and
 2. Either
   * by no means remove 2.9.12 from the tree for the time being, and
before attempting to stabilise 2.10+ again either prepare a news item
warning the users about upcoming breaking changes or package a suitable
set of formerly-core modules; or
   * simply pull the current incarnation of 2.10.0 from the tree and
only reintroduce it once the ansible (*not* ansible-base) on PyPI has
actually been upgraded to 2.10.


Explanation for the ML:

Starting with version 2.10, the upstream package previously known as
ansible is formally known as "ansible-base" and only provides the bare
minimum of functionality - the core programs, some documentation, and a
tiny subset of modules and plugins to allow for a functioning
controller. All the other modules which were previously part of core
ansible (see [2]) are now independent modules.

Note that this only pertains to upstream packages of Ansible released on
GitHub. On PyPI, "ansible" will continue to bundle the "core" modules;
this is explicitly mentioned in several places in [1]. The problem is,
=app-admin/ansible-2.10.0 has quietly replaced pypi:ansible with
pypi:ansible-base in SRC_URI. This may or may not have had something to
do with the fact pypi:ansible has not been updated to 2.10.0 yet (for
now it's only pre-releases for that branch).

References:

[1] https://github.com/ansible-collections/overview/blob/main/README.rst
[2]
https://github.com/ansible-community/ansible-build-data/blob/main/2.10/ansible.in

-- 
Marecki



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] How to stabilize packages with frequent release cycles?

2020-09-15 Thread Kent Fredric
On Tue, 15 Sep 2020 09:12:58 +0200
Toralf Förster  wrote:

> However this doesn't cover bugs filed a while ago and are not be fixed in 
> current stable.

A mitigation would be it wouldn't file a stabilization req if there was
already one open.

Basically means as soon as there's one stable req, it reverts to
"manual mode", as you either fix the problem that blocked
stabilization, or you ship a new one and re-point the stabilization
request to that instead.


pgpFSehgOrpfp.pgp
Description: OpenPGP digital signature


Re: [gentoo-dev] How to stabilize packages with frequent release cycles?

2020-09-15 Thread Toralf Förster
On 9/15/20 8:42 AM, Michał Górny wrote:
> Do you have any suggestions how we could improve this?
A (naive) approach would be to have something like auto_stable_after_x_days=n 
somewhere and a bot which checks whether a bug was opened related to the last 
version.

However this doesn't cover bugs filed a while ago and are not be fixed in 
current stable.


-- 
Toralf
PGP 23217DA7 9B888F45



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] How to stabilize packages with frequent release cycles?

2020-09-15 Thread Joonas Niilola

On 9/15/20 9:42 AM, Michał Górny wrote:
> Hi,
>
> The regular stabilization workflow works for the majority of packages.
>  However, it makes little sense for packages with frequent release
> cycles.  Examples of these are boto3/botocore (daily release cycle) or
> hypothesis (upstream conflates commits with releases).
>
> When the latest release remains 'latest ~arch' for less than 3 days,
> stabilizing it after 30 days makes little sense.  After all, people with
> frequent upgrade cycle will test it for no more than that, and people
> with infrequent upgrade cycle may miss the version entirely.

Isn't the 30 days just a recommendation, not a strict rule?


>
> In the end, we stabilize an entirely arbitrary version at an arbitrary
> point in time, and even if users were willing to give it better testing,
> they can't guess which version will be the next stable candidate.
>
> Do you have any suggestions how we could improve this?

Just use maintainer's discretion on them. For example, see how
youtube-dl and vivaldi are stabilized, both having frequent releases. In
vivaldi's case the security updates make fast-stabilization a mandatory
step pretty much and for youtube-dl you want to keep it compatible with
"today". Anyway, that's one way.

Not like every stable version in the tree works either.

-- juippis




signature.asc
Description: OpenPGP digital signature


[gentoo-dev] How to stabilize packages with frequent release cycles?

2020-09-15 Thread Michał Górny
Hi,

The regular stabilization workflow works for the majority of packages.
 However, it makes little sense for packages with frequent release
cycles.  Examples of these are boto3/botocore (daily release cycle) or
hypothesis (upstream conflates commits with releases).

When the latest release remains 'latest ~arch' for less than 3 days,
stabilizing it after 30 days makes little sense.  After all, people with
frequent upgrade cycle will test it for no more than that, and people
with infrequent upgrade cycle may miss the version entirely.

In the end, we stabilize an entirely arbitrary version at an arbitrary
point in time, and even if users were willing to give it better testing,
they can't guess which version will be the next stable candidate.

Do you have any suggestions how we could improve this?

-- 
Best regards,
Michał Górny



signature.asc
Description: This is a digitally signed message part