[gentoo-dev] Gentoo Staffing Needs page is out of date
-BEGIN PGP SIGNED MESSAGE- Hash: SHA512 Hi all, The Staffing Needs page on the wiki [0] seems a little out of date, there are still mentions of "herds". I invite project leads and members to update it. We added a reference to it in the Mentors wiki page [1] and hoping to get more attention to it. Thanks, [0] https://wiki.gentoo.org/wiki/Project:Gentoo/Staffing_Needs [1] https://wiki.gentoo.org/wiki/Project:Mentors -BEGIN PGP SIGNATURE- iQEcBAEBCgAGBQJYNSnHAAoJEIT4AuXAiM4zNPEH/iSRgDAR41bDftZwOeGmr8mI BzMG3tPF/5qk1TW6mEYX3JZo6Kn6Af1F+5eKRGZJz1WZtn+qrCccQWm7Jf/o2C6w OvfjoF9jQJCFPlK/rwxx9w0D5WsBiqf/Debw33Cli63vVIx3BOEFaNSV9Wxn6ZUj RuIeANX91XoLWy6QOqPq8NVZZJ5yYRRQx3zmiR8BJzgiTfGl0BsjbwHJhGau3e+T frd4hfhF6Lm78fIQe7/ga/2AQvK9E6TFgZB1BNmVg/9I9iIuoyp+DiYO+91mQykX vkNXKg8T1ZFVAVZSAleSwWDFcuICd8f12FnbMuuO/inMyCX2O2njH+arT33qvlA= =b+yy -END PGP SIGNATURE-
Re: [gentoo-portage-dev] [PATCH v2] dep_zapdeps: make package selections internally consistent (bug 600346)
On 11/22/2016 08:21 AM, Brian Dolbec wrote: > On Sun, 20 Nov 2016 15:56:54 -0800 > Zac Medicowrote: > >> When selecting packages to determine which choices have upgrades >> or downgrades relative to other choices, make the package selections >> internally consistent by choosing a package that satisfies all atoms >> in the choice which match a package in the same slot. >> >> Also, fix the Atom.match() method to handle _pkg_str instances, >> since dep_zapdeps can pass in _pkg_str instances instead of Package >> instances. >> >> X-Gentoo-Bug: 600346 >> X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=600346 >> --- >> [PATCH v2] fixes incorrect logic in dep_zapdeps >> >> pym/portage/dep/__init__.py | 16 >> pym/portage/dep/dep_check.py | 28 ++-- >> 2 files changed, 38 insertions(+), 6 deletions(-) >> >> diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py >> index 5dd1638..968ff5b 100644 >> --- a/pym/portage/dep/__init__.py >> +++ b/pym/portage/dep/__init__.py >> @@ -1603,10 +1603,18 @@ class Atom(_unicode): >> if pkg.cp == self.cp: >> return bool(match_from_list(self, [pkg])) >> else: >> -for provided_cp in pkg.provided_cps: >> -if provided_cp == self.cp: >> -return bool(match_from_list( >> - >> self.replace(self.cp, provided_cp, 1), [pkg])) >> +try: >> +provided_cps = pkg.provided_cps >> +except AttributeError: >> +# Since _pkg_str instances lack >> PROVIDE metadata, >> +# just ignore this case (PROVIDE has >> been deprecated >> +# for years). >> +pass >> +else: >> +for provided_cp in provided_cps: >> +if provided_cp == self.cp: >> +return >> bool(match_from_list( >> + >> self.replace(self.cp, provided_cp, 1), [pkg])) return False >> >> _extended_cp_re_cache = {} >> diff --git a/pym/portage/dep/dep_check.py >> b/pym/portage/dep/dep_check.py index 9d2ca4b..737d2b1 100644 >> --- a/pym/portage/dep/dep_check.py >> +++ b/pym/portage/dep/dep_check.py >> @@ -5,6 +5,7 @@ from __future__ import unicode_literals >> >> __all__ = ['dep_check', 'dep_eval', 'dep_wordreduce', 'dep_zapdeps'] >> >> +import collections >> import logging >> import operator >> >> @@ -354,6 +355,7 @@ def dep_zapdeps(unreduced, reduced, myroot, >> use_binaries=0, trees=None): all_use_satisfied = True >> all_use_unmasked = True >> conflict_downgrade = False >> +slot_atoms = collections.defaultdict(list) >> slot_map = {} >> cp_map = {} >> for atom in atoms: >> @@ -418,9 +420,31 @@ def dep_zapdeps(unreduced, reduced, myroot, >> use_binaries=0, trees=None): avail_slot = Atom("%s:%s" % (atom.cp, >> avail_pkg.slot)) >> slot_map[avail_slot] = avail_pkg >> +slot_atoms[avail_slot].append(atom) >> highest_cpv = cp_map.get(avail_pkg.cp) >> -if highest_cpv is None or \ >> -vercmp(avail_pkg.version, >> highest_cpv.version) > 0: >> +all_match_current = None >> +all_match_previous = None >> +if (highest_cpv is not None and >> +highest_cpv.slot == avail_pkg.slot): >> +# If possible, make the package >> selection internally >> +# consistent by choosing a package >> that satisfies all >> +# atoms which match a package in the >> same slot. Later on, >> +# the package version chosen here is >> used in the >> +# has_upgrade/has_downgrade logic to >> prefer choices with >> +# upgrades, and a package choice >> that is not internally >> +# consistent will lead the >> has_upgrade/has_downgrade logic >> +# to produce invalid results (see >> bug 600346). >> +all_match_current = >> all(a.match(avail_pkg) >> +for a in >> slot_atoms[avail_slot]) >> +all_match_previous = >> all(a.match(highest_cpv) >> +for a in >> slot_atoms[avail_slot]) >> +if all_match_previous and not >> all_match_current: >> +continue >> + >> +current_higher = (highest_cpv is None or >> +vercmp(avail_pkg.version, >> highest_cpv.version) > 0) +
Re: [gentoo-portage-dev] [PATCH v2] dep_zapdeps: make package selections internally consistent (bug 600346)
On Sun, 20 Nov 2016 15:56:54 -0800 Zac Medicowrote: > When selecting packages to determine which choices have upgrades > or downgrades relative to other choices, make the package selections > internally consistent by choosing a package that satisfies all atoms > in the choice which match a package in the same slot. > > Also, fix the Atom.match() method to handle _pkg_str instances, > since dep_zapdeps can pass in _pkg_str instances instead of Package > instances. > > X-Gentoo-Bug: 600346 > X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=600346 > --- > [PATCH v2] fixes incorrect logic in dep_zapdeps > > pym/portage/dep/__init__.py | 16 > pym/portage/dep/dep_check.py | 28 ++-- > 2 files changed, 38 insertions(+), 6 deletions(-) > > diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py > index 5dd1638..968ff5b 100644 > --- a/pym/portage/dep/__init__.py > +++ b/pym/portage/dep/__init__.py > @@ -1603,10 +1603,18 @@ class Atom(_unicode): > if pkg.cp == self.cp: > return bool(match_from_list(self, [pkg])) > else: > - for provided_cp in pkg.provided_cps: > - if provided_cp == self.cp: > - return bool(match_from_list( > - > self.replace(self.cp, provided_cp, 1), [pkg])) > + try: > + provided_cps = pkg.provided_cps > + except AttributeError: > + # Since _pkg_str instances lack > PROVIDE metadata, > + # just ignore this case (PROVIDE has > been deprecated > + # for years). > + pass > + else: > + for provided_cp in provided_cps: > + if provided_cp == self.cp: > + return > bool(match_from_list( > + > self.replace(self.cp, provided_cp, 1), [pkg])) return False > > _extended_cp_re_cache = {} > diff --git a/pym/portage/dep/dep_check.py > b/pym/portage/dep/dep_check.py index 9d2ca4b..737d2b1 100644 > --- a/pym/portage/dep/dep_check.py > +++ b/pym/portage/dep/dep_check.py > @@ -5,6 +5,7 @@ from __future__ import unicode_literals > > __all__ = ['dep_check', 'dep_eval', 'dep_wordreduce', 'dep_zapdeps'] > > +import collections > import logging > import operator > > @@ -354,6 +355,7 @@ def dep_zapdeps(unreduced, reduced, myroot, > use_binaries=0, trees=None): all_use_satisfied = True > all_use_unmasked = True > conflict_downgrade = False > + slot_atoms = collections.defaultdict(list) > slot_map = {} > cp_map = {} > for atom in atoms: > @@ -418,9 +420,31 @@ def dep_zapdeps(unreduced, reduced, myroot, > use_binaries=0, trees=None): avail_slot = Atom("%s:%s" % (atom.cp, > avail_pkg.slot)) > slot_map[avail_slot] = avail_pkg > + slot_atoms[avail_slot].append(atom) > highest_cpv = cp_map.get(avail_pkg.cp) > - if highest_cpv is None or \ > - vercmp(avail_pkg.version, > highest_cpv.version) > 0: > + all_match_current = None > + all_match_previous = None > + if (highest_cpv is not None and > + highest_cpv.slot == avail_pkg.slot): > + # If possible, make the package > selection internally > + # consistent by choosing a package > that satisfies all > + # atoms which match a package in the > same slot. Later on, > + # the package version chosen here is > used in the > + # has_upgrade/has_downgrade logic to > prefer choices with > + # upgrades, and a package choice > that is not internally > + # consistent will lead the > has_upgrade/has_downgrade logic > + # to produce invalid results (see > bug 600346). > + all_match_current = > all(a.match(avail_pkg) > + for a in > slot_atoms[avail_slot]) > + all_match_previous = > all(a.match(highest_cpv) > + for a in > slot_atoms[avail_slot]) > + if all_match_previous and not > all_match_current: > + continue > + > + current_higher = (highest_cpv is None or > + vercmp(avail_pkg.version, > highest_cpv.version) > 0) + > + if current_higher or (all_match_current and > not all_match_previous):
Re: [gentoo-dev] Developer GitHub usernames
On Mon, 21 Nov 2016 20:36:42 + Ciaran McCreeshwrote: > Wait what. Why am I being blamed for any of this? I assure you, MichaĆ > isn't one of my sockpuppet developer accounts, and my involvement with > Github as a company is limited to them buying me an awful lot of > free booze once. I think you might be seeing conspiracies in the > wrong place... Oh, might have misread something. Sorry, Ciaran. jer
Re: [gentoo-dev] Re: Stabilisation procedure
On Sat, Nov 19, 2016 at 12:55:09AM -0800, Daniel Campbell wrote: > On 11/17/2016 01:07 PM, Robin H. Johnson wrote: > > On Thu, Nov 17, 2016 at 03:05:41PM +0100, Kristian Fiskerstrand wrote: > >>> Isn't it implied that any stabilisation is approved by the maintainer? > >>> Has it ever been acceptable to go around stabilising random packages? > >>> > >> > >> Explicit > Implicit when we're updating things anyways. > >> > >> There are scenarios where e.g Security is calling for stabilization , > >> I'll add some info to the draft security GLEP with some requirements for > >> when this can happen without maintainer involvement as well.. > >> > >> Ultimately maintainer is responsible for the state of the stable tree > >> for the packages they maintain and should be taking proactive steps for > >> this also for security bugs, it doesn't "always" happen like that. > > > > The interaction of this proposal and the prior discussion of allow > > maintainers to document the maintenance policy of given packages is > > where it would really come into play. > > > > Using two packages for examples: > > app-admin/diradm: I am the upstream author as well as the package > > maintainer. I care about it being marked stable. I'd prefer the normal > > policy of other people asking me (with timeout) before touching it. > > > > app-admin/cancd: It's a very obscure package that I put in the tree > > because I needed it, but I haven't personally used it in many years. > > I fix the packaging if it's broken only. > > I'm inclined to mark it with 'anybody-may-bump/fix/stabilize'. > > > Agreed. For most of my packages, I really don't mind since we're all > working on Gentoo together, but it'd be super helpful if I was simply > notified in the event that a package I maintain has gotten a security > bump, patch, or stabilization. Sure, 'git log' and 'git blame' can > explain a few things, but if I was going to edit a package, I have the > maintainer's e-mail available right there in metadata.xml. To me it's a > courtesy that should be a requirement by default, while devs that don't > care can use whatever means we agree upon to indicate that they don't care. > > This creates a "contact first" practice, which it seems we want to > encourage. If someone isn't responsive and/or away, that complicates > things, but if it's a security concern or the last blocker in a big > stabilization effort (looking at you, tcl 8.6...), then it makes sense > to just go ahead and make the bumps necessary. What about maintainers that are away without writing it in their maintainer bug ? After how many days of no replay can be fair to touch their package ? > > -- > Daniel Campbell - Gentoo Developer > OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net > fpr: AE03 9064 AE00 053C 270C 1DE4 6F7A 9091 1EA0 55D6 > signature.asc Description: PGP signature