Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Ian Cordasco
Has PyPA considered contacting GitHub support? I'm happy to do the
same since I've wanted this for a while myself on other projects.

On Fri, Mar 6, 2015 at 5:15 PM, Paul Moore  wrote:
> On 6 March 2015 at 23:01, Donald Stufft  wrote:
>> Tooling wise, Github PRs work well for us. I don’t (and I don’t believe that
>> any of the other core devs) have any major issues with them.
>>
>> Github issues on the other hand, they function “OK” but it would be nice to
>> have something that we can allow anyone to modify the state of tickets to
>> help with triage. However even this isn’t a super pressing concern because
>> our ticket count is small enough that I don’t think there’s likely to be too
>> many to be handled by people commenting on issues and a core team coming in
>> to change things. However if someone has a proposal for a different issue
>> tracker (and plans for how to migrate to it), personally I’d be willing to
>> listen.
>
> I'm also fine with github. I don't have an issue with the issue
> tracker, although as Donald says it would be helpful if it had a
> concept of "tracker privileges" separate from "core committer". But
> that's *not* a big enough concern to me that I'd want to go to a
> different tool.
>
> Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Paul Moore
On 6 March 2015 at 23:01, Donald Stufft  wrote:
> Tooling wise, Github PRs work well for us. I don’t (and I don’t believe that
> any of the other core devs) have any major issues with them.
>
> Github issues on the other hand, they function “OK” but it would be nice to
> have something that we can allow anyone to modify the state of tickets to
> help with triage. However even this isn’t a super pressing concern because
> our ticket count is small enough that I don’t think there’s likely to be too
> many to be handled by people commenting on issues and a core team coming in
> to change things. However if someone has a proposal for a different issue
> tracker (and plans for how to migrate to it), personally I’d be willing to
> listen.

I'm also fine with github. I don't have an issue with the issue
tracker, although as Donald says it would be helpful if it had a
concept of "tracker privileges" separate from "core committer". But
that's *not* a big enough concern to me that I'd want to go to a
different tool.

Paul
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Donald Stufft

> On Mar 6, 2015, at 5:43 PM, Ian Cordasco  wrote:
> 
> On Fri, Mar 6, 2015 at 4:04 PM, Nick Coghlan  wrote:
>> 
>> On 6 Mar 2015 22:10, "Ben Finney"  wrote:
>>> 
>>> Nick Coghlan  writes:
>>> 
 CPython uses the Reitveld instance integrated with bugs.python.org,
 and has the same problem as pip: incremental changes are a pain to
 publish, review, and merge, so we review and accept monolithic patches
 instead (cf the problem statement in
 https://www.python.org/dev/peps/pep-0462/)
>>> 
>>> Fair enough. I don't know of a good code review tool for Mercurial.
>> 
>> I'd like to ensure Kallithea fits that bill, but the actual work on that
>> seems to mostly be driven by the folks at Unity3D at the moment.
>> 
>> In the meantime, Phabricator is a decent choice if you just want to use an
>> existing GitHub independent tool that works with either git or Mercurial.
>> pip adopting that workflow would also be a good proof of concept for
>> Donald's proposal to also adopt that workflow for CPython (or at least its
>> support repos).
>> 
 While the main UI is very busy, I've actually quite liked my own
 experience with Gerrit for http://gerrit.beaker-project.org/
>>> 
>>> My understanding is that Gerrit makes it tedious to review a sequence of
>>> revisions, in proportion to the number of revisions in the sequence.
>> 
>> When the goal is to break a change up into small, independently reviewable
>> changes that's generally a feature rather than a defect :)
>> 
>>> If
>>> I understand correctly, such a sequence must have separate reviews for
>>> every revision, and an aggregate of all the changes is not available to
>>> the reviewer.
>> 
>> Correct, but my understanding is that when using it in tandem with GitHub,
>> there's nothing stopping you from also submitting a PR if a reviewer wants
>> an all-inclusive view.
>> 
>>> I'm impressed by GitLab's code review tool UI; see an example at
>>> https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/344/diffs>.
>>> The merge request page has tabs for the discussion, the commit log, and
>>> the overall diff – and you choose from inline diff or side-by-side diff.
>>> 
>>> GitLab is free software, including all its tools; anyone can set up a
>>> GitLab instance and the project data can move from one instance to
>>> another without loss. For the purposes of the past thread where some
>>> proposed migrating to the proprietary lock-in site GitHub, those
>>> objections don't exist with GitLab: a project can migrate to a different
>>> host and keep all the valuable data it accumulated.
>>> 
>>> A move to GitLab would be unobjectionable, in my view. That it has good
>>> code review features would help the issues in this thread too.
>> 
>> It doesn't have the integration with other services and the low barriers to
>> contribution that are the main reasons a lot of projects prefer GitHub.
>> 
>> Of course, when your problem is already "we're receiving more contributions
>> than we can process effectively", deciding to require a slightly higher
>> level of engagement in order to submit a change for consideration isn't
>> necessarily a bad thing :)
>> 
>>> If anyone knows of equivalent hosting for Mercurial with equivalent code
>>> review tools under free-software terms with no lock-in, that would be
>>> even better I think.
>> 
>> That's what I'd like forge.python.org to eventually be for the core Python
>> ecosystem, but we don't know yet whether that's going to be an entirely
>> self-hosted Kallithea instance (my preference) or a Phabricator instance
>> backed by GitHub (Donald's preference).
>> 
>> Hence my suggestion that a "forge.pypa.io" Phabricator instance might be an
>> interesting thing to set up and start using for pip. Donald's already done
>> the research on that in the context of
>> https://www.python.org/dev/peps/pep-0481/ and for pip that's a matter of
>> "just add Phabricator" without having to migrate anything (except perhaps
>> the issues if folks wanted to do that).
>> 
>> Cheers,
>> Nick.
>> 
>>> 
>>> --
>>> \ “Don't be misled by the enormous flow of money into bad defacto |
>>>  `\standards for unsophisticated buyers using poor adaptations of |
>>> _o__) incomplete ideas.” —Alan Kay |
>>> Ben Finney
>>> 
>>> ___
>>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>>> https://mail.python.org/mailman/listinfo/distutils-sig
>> 
>> 
>> ___
>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>> 
> 
> I'm fairly concerned that what has turned into a "how can we increase
> the feedback received for people submitting pull requests" has turned
> into a bike shed moment for using F/LOSS tooling instead of GitHub
> when the cores who actually work on the project have already expressed
> a disinterest in moving and a satisfaction with GitHub.
> 
> GitLa

Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Ian Cordasco
On Fri, Mar 6, 2015 at 4:04 PM, Nick Coghlan  wrote:
>
> On 6 Mar 2015 22:10, "Ben Finney"  wrote:
>>
>> Nick Coghlan  writes:
>>
>> > CPython uses the Reitveld instance integrated with bugs.python.org,
>> > and has the same problem as pip: incremental changes are a pain to
>> > publish, review, and merge, so we review and accept monolithic patches
>> > instead (cf the problem statement in
>> > https://www.python.org/dev/peps/pep-0462/)
>>
>> Fair enough. I don't know of a good code review tool for Mercurial.
>
> I'd like to ensure Kallithea fits that bill, but the actual work on that
> seems to mostly be driven by the folks at Unity3D at the moment.
>
> In the meantime, Phabricator is a decent choice if you just want to use an
> existing GitHub independent tool that works with either git or Mercurial.
> pip adopting that workflow would also be a good proof of concept for
> Donald's proposal to also adopt that workflow for CPython (or at least its
> support repos).
>
>> > While the main UI is very busy, I've actually quite liked my own
>> > experience with Gerrit for http://gerrit.beaker-project.org/
>>
>> My understanding is that Gerrit makes it tedious to review a sequence of
>> revisions, in proportion to the number of revisions in the sequence.
>
> When the goal is to break a change up into small, independently reviewable
> changes that's generally a feature rather than a defect :)
>
>> If
>> I understand correctly, such a sequence must have separate reviews for
>> every revision, and an aggregate of all the changes is not available to
>> the reviewer.
>
> Correct, but my understanding is that when using it in tandem with GitHub,
> there's nothing stopping you from also submitting a PR if a reviewer wants
> an all-inclusive view.
>
>> I'm impressed by GitLab's code review tool UI; see an example at
>> https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/344/diffs>.
>> The merge request page has tabs for the discussion, the commit log, and
>> the overall diff – and you choose from inline diff or side-by-side diff.
>>
>> GitLab is free software, including all its tools; anyone can set up a
>> GitLab instance and the project data can move from one instance to
>> another without loss. For the purposes of the past thread where some
>> proposed migrating to the proprietary lock-in site GitHub, those
>> objections don't exist with GitLab: a project can migrate to a different
>> host and keep all the valuable data it accumulated.
>>
>> A move to GitLab would be unobjectionable, in my view. That it has good
>> code review features would help the issues in this thread too.
>
> It doesn't have the integration with other services and the low barriers to
> contribution that are the main reasons a lot of projects prefer GitHub.
>
> Of course, when your problem is already "we're receiving more contributions
> than we can process effectively", deciding to require a slightly higher
> level of engagement in order to submit a change for consideration isn't
> necessarily a bad thing :)
>
>> If anyone knows of equivalent hosting for Mercurial with equivalent code
>> review tools under free-software terms with no lock-in, that would be
>> even better I think.
>
> That's what I'd like forge.python.org to eventually be for the core Python
> ecosystem, but we don't know yet whether that's going to be an entirely
> self-hosted Kallithea instance (my preference) or a Phabricator instance
> backed by GitHub (Donald's preference).
>
> Hence my suggestion that a "forge.pypa.io" Phabricator instance might be an
> interesting thing to set up and start using for pip. Donald's already done
> the research on that in the context of
> https://www.python.org/dev/peps/pep-0481/ and for pip that's a matter of
> "just add Phabricator" without having to migrate anything (except perhaps
> the issues if folks wanted to do that).
>
> Cheers,
> Nick.
>
>>
>> --
>>  \ “Don't be misled by the enormous flow of money into bad defacto |
>>   `\standards for unsophisticated buyers using poor adaptations of |
>> _o__) incomplete ideas.” —Alan Kay |
>> Ben Finney
>>
>> ___
>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>

I'm fairly concerned that what has turned into a "how can we increase
the feedback received for people submitting pull requests" has turned
into a bike shed moment for using F/LOSS tooling instead of GitHub
when the cores who actually work on the project have already expressed
a disinterest in moving and a satisfaction with GitHub.

GitLab's UI would do nothing to improve review management.

Phabricator, while nice, again adds yet another layer to the piece for
new contributors to involve themselves in. GitHub is one monol

Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Ian Cordasco
On Fri, Mar 6, 2015 at 2:17 AM, anatoly techtonik  wrote:
> Stealing some packaging code from Go and tweaking may not be that bad idea. =)
> At least they use code review system to let new people learn and old
> people share.

Yep and most of the people working on Go are paid to do so. Sharing
information through code review is necessary inside a corporation and
worth being fired over if you don't.

> On Fri, Mar 6, 2015 at 5:51 AM, Ian Cordasco  
> wrote:
>> Wait, I have an idea. Let's rewrite pip in Rust! ;)
>>
>> On Thu, Mar 5, 2015 at 7:16 PM, Greg Ewing  
>> wrote:
>>> On 03/06/2015 11:06 AM, Ben Finney wrote:
>>>
 That's “small changes only, otherwise your change gets rejected”, of
 course.
>>>
>>>
>>> Yes, otherwise submitting a patch that replaces the entire source
>>> code of Python with Ruby would be a sure-fire way to get it
>>> accepted. :-)
>>>
>>> --
>>> Greg
>>>
>>>
>>> ___
>>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>>> https://mail.python.org/mailman/listinfo/distutils-sig
>> ___
>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
>
> --
> anatoly t.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Granting permissions to Xavier Fernandez and Marc Abramowitz?

2015-03-06 Thread Ian Cordasco
On Fri, Mar 6, 2015 at 5:56 AM, Piotr Dobrogost
 wrote:
> Hi
>
> As an external observer of pip project at github I see two men, namely
> Xavier Fernandez (https://github.com/xavfernandez) and Marc Abramowitz
> (https://github.com/msabramo) with many valuable contributions. I
> think it would be beneficial if they had been granted some more
> permissions to the project/repo.
>
> Regards,
> Piotr Dobrogost
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig

It seems incredibly inappropriate for anyone except an existing core
to be proposing new cores.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread Nick Coghlan
On 7 Mar 2015 06:44, "Ian Cordasco"  wrote:
> On Fri, Mar 6, 2015 at 5:55 AM, Paul Moore  wrote:
> >
> > The problem with discussing this sort of thing is that it's *very*
> > wide-ranging, and tends to produce huge rambling mega-threads[1] when
> > discussed in a public list. I'm not advocating any sort of private
> > cabal deciding the fate of pip, but maybe somewhere where the core
> > devs could agree their *own* opinions before having to face the public
> > wouldn't be such a bad thing. That's more or less what I'd expected
> > the pypa-dev list to be (as a parallel to the python-dev list) but it
> > doesn't feel like it's turned out that way, maybe because it doesn't
> > have a clear enough charter, or maybe because there's no obvious
> > *other* place to direct people to for off-topic posts (like
> > python-list is for python-dev).
>
> So sometimes private cabals need to be made in order to get a basis of
> what is reasonable. The WSGI working group tried to do that but that
> failed after about a week as more people tried to join the cabal and
> were allowed to do so.

It's worth noting that CPython didn't get public source control until it
was already around 9 years old (see the What's New for Python 2.0).

My understanding is also that the architecture & philosophy for CPython
were very much set by the original Python Labs crew (Guido, Tim Peters,
Barry Warsaw, Fred Drake) when they worked for Zope Corporation, just as
the direction of beaker-project.org is very much governed by what the core
team that works full time on it for Red Hat wants to do.

Confusing "open source" and even "open governance" with "no hierarchy" is a
common mistake, when the only essential requirement is that anyone is
welcome to observe and even suggest changes, whether to artefacts (open
source) or decision making processes (open governance).

The one thing that potential (and current!) contributors have to accept is
that the existing contributors are the ones that decide between "yes",
"no", and "maybe, let's discuss it some more", regardless of whether the
proposed change is to code, processes, or who has the authority to accept
changes.

All of which can be summarised in the phrase: "Those that do the work, make
the rules" :)

Cheers,
Nick.

>
> > Or maybe grand designs are a distraction in themselves, and none of
> > the core devs being interested in a PR means just that - not that they
> > don't have the time, or that the use case isn't valid, or anything
> > else. Just that they aren't interested, sorry.
> >
> > [1] Please, don't start a rambling mega-thread from *this* post :-)
> >
> > Paul
> >
> > PS I just spend way too long composing this email, and now I'm burned
> > out. Maybe my time would have been better spent commenting on a couple
> > of PRs...
>
> Go rest. These discussions can exhaust even the best rested of us.
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Granting permissions to Xavier Fernandez and Marc Abramowitz?

2015-03-06 Thread Donald Stufft

> On Mar 6, 2015, at 6:56 AM, Piotr Dobrogost  
> wrote:
> 
> Hi
> 
> As an external observer of pip project at github I see two men, namely
> Xavier Fernandez (https://github.com/xavfernandez) and Marc Abramowitz
> (https://github.com/msabramo) with many valuable contributions. I
> think it would be beneficial if they had been granted some more
> permissions to the project/repo.

I’m not going to respond to the actual content of this, but I’d like to
make a plea.

If you think someone should be a core on one of the PyPA projects, I
recommend talking to one of the existing core developer privately instead
of posting publicly. Historically these projects decide on core members
privately so that people’s concerns or comments on potential core members
are not public. This is done for three main reasons:

1) By keeping things private core members can fully express their opinions
   on whether or not that person is a good candidate for core member, or
   whether they might be in the future if they work on something that is
   potentially concerning.

2) It doesn’t put any potential core members in a situation where they are
   feeling judged or on trial or whatever colloquium you want to insert here.

3) It allows us to privately communicate with the potential team member about
   what (if anything) they need to improve on if they’d like to be a core
   member.

We don’t have defined guidelines as to what we look for in a core team member,
perhaps we should, generally though it’s been looking out for people who seem
to be trying to help out with the efforts that are lacking manpower.

Just to be clear, this has nothing to do with either Xavier or Marc, I’m just
asking that in the future if someone thinks that they notice someone who might
be a good candidate for being on the core team.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Granting permissions to Xavier Fernandez and Marc Abramowitz?

2015-03-06 Thread Nick Coghlan
On 7 Mar 2015 05:41, "Piotr Dobrogost"  wrote:
>
> Hi
>
> As an external observer of pip project at github I see two men, namely
> Xavier Fernandez (https://github.com/xavfernandez) and Marc Abramowitz
> (https://github.com/msabramo) with many valuable contributions. I
> think it would be beneficial if they had been granted some more
> permissions to the project/repo.

How many *other* people have they helped have contributions accepted?

That's one of the most important responsibilities of a core reviewer,
rather than writing new code themselves.

I also can't recall seeing any feedback from them on this list regarding
the metadata 2.0 design PEPs or the TUF metadata PEPs, which suggests there
may be a risk that they're currently focused primarily on attending to
their own needs, rather than wanting to help guide the evolution of the
overall Python packaging ecosystem.

While that's not an issue for *submitting* change requests to pip, it's a
potential problem for *accepting* them, as managing that evolution has
essentially been the responsibility of the pip development team (and PyPA
in general) since PEP 453 made the decision to bundle pip with the
reference interpreter by default.

Regards,
Nick.

>
> Regards,
> Piotr Dobrogost
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Nick Coghlan
On 6 Mar 2015 22:10, "Ben Finney"  wrote:
>
> Nick Coghlan  writes:
>
> > CPython uses the Reitveld instance integrated with bugs.python.org,
> > and has the same problem as pip: incremental changes are a pain to
> > publish, review, and merge, so we review and accept monolithic patches
> > instead (cf the problem statement in
> > https://www.python.org/dev/peps/pep-0462/)
>
> Fair enough. I don't know of a good code review tool for Mercurial.

I'd like to ensure Kallithea fits that bill, but the actual work on that
seems to mostly be driven by the folks at Unity3D at the moment.

In the meantime, Phabricator is a decent choice if you just want to use an
existing GitHub independent tool that works with either git or Mercurial.
pip adopting that workflow would also be a good proof of concept for
Donald's proposal to also adopt that workflow for CPython (or at least its
support repos).

> > While the main UI is very busy, I've actually quite liked my own
> > experience with Gerrit for http://gerrit.beaker-project.org/
>
> My understanding is that Gerrit makes it tedious to review a sequence of
> revisions, in proportion to the number of revisions in the sequence.

When the goal is to break a change up into small, independently reviewable
changes that's generally a feature rather than a defect :)

> If
> I understand correctly, such a sequence must have separate reviews for
> every revision, and an aggregate of all the changes is not available to
> the reviewer.

Correct, but my understanding is that when using it in tandem with GitHub,
there's nothing stopping you from also submitting a PR if a reviewer wants
an all-inclusive view.

> I'm impressed by GitLab's code review tool UI; see an example at
> https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/344/diffs>.
> The merge request page has tabs for the discussion, the commit log, and
> the overall diff – and you choose from inline diff or side-by-side diff.
>
> GitLab is free software, including all its tools; anyone can set up a
> GitLab instance and the project data can move from one instance to
> another without loss. For the purposes of the past thread where some
> proposed migrating to the proprietary lock-in site GitHub, those
> objections don't exist with GitLab: a project can migrate to a different
> host and keep all the valuable data it accumulated.
>
> A move to GitLab would be unobjectionable, in my view. That it has good
> code review features would help the issues in this thread too.

It doesn't have the integration with other services and the low barriers to
contribution that are the main reasons a lot of projects prefer GitHub.

Of course, when your problem is already "we're receiving more contributions
than we can process effectively", deciding to require a slightly higher
level of engagement in order to submit a change for consideration isn't
necessarily a bad thing :)

> If anyone knows of equivalent hosting for Mercurial with equivalent code
> review tools under free-software terms with no lock-in, that would be
> even better I think.

That's what I'd like forge.python.org to eventually be for the core Python
ecosystem, but we don't know yet whether that's going to be an entirely
self-hosted Kallithea instance (my preference) or a Phabricator instance
backed by GitHub (Donald's preference).

Hence my suggestion that a "forge.pypa.io" Phabricator instance might be an
interesting thing to set up and start using for pip. Donald's already done
the research on that in the context of
https://www.python.org/dev/peps/pep-0481/ and for pip that's a matter of
"just add Phabricator" without having to migrate anything (except perhaps
the issues if folks wanted to do that).

Cheers,
Nick.

>
> --
>  \ “Don't be misled by the enormous flow of money into bad defacto |
>   `\standards for unsophisticated buyers using poor adaptations of |
> _o__) incomplete ideas.” —Alan Kay |
> Ben Finney
>
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread Ian Cordasco
On Fri, Mar 6, 2015 at 5:55 AM, Paul Moore  wrote:
> On 5 March 2015 at 16:38, Marc Abramowitz  wrote:
>> This makes me think that the folks who review the PRs are overburdened
>> and/or the process needs a bit more structure (e.g.: each person thinks
>> someone else is going to review the PR and so no one does it).
>
> One thing I, personally, find difficult when reviewing PRs
> (specifically feature requests) is the fact that I usually don't
> actually have a *need* for the functionality being proposed. It's very
> easy for me to say "this doesn't help me personally, so I'll ignore
> it", but that is ducking a big part of the responsibility of being a
> core committer. But forming a view on something I've no experience of
> or direct interest in is *hard*, and takes a lot of time. Discussions
> tend to involve a lot of people with strong opinions (e.g. the PR
> author) who can't move the change forward, and a few people with
> weaker opinions (e.g. me :-)) who can. It's very easy to think "just
> accept it because it helps someone". But that's a cop-out and
> long-term isn't a sustainable approach.

+1. This is a problem I have with Flake8. People keep asking for more
command-line arguments because "It's just one more option. It won't
hurt anyone." But Flake8 is another project without a great set of
tests. It would be easy to say "Yeah sure, just this one other option
that only one person has ever asked for" but there's only ever one
person reviewing pull requests - me. It's also not sustainable to keep
adding poorly named command-line flags.

> It's not "thinking someone else will review the PR", it's more making
> a conscious decision on how much energy and effort I'm willing to put
> into a PR that doesn't have any benefit for me. (And even just
> *discussing* a PR can be a lot of energy, it's not easy to politely
> explain to someone that you don't think their use case, that they went
> to a lot of trouble writing a PR for, isn't worth it).
>
> What would help a *lot* is some sort of agreement on what pip is, and
> what its core goals are. Something similar to what it means to be
> "pythonic" for the Python language itself. At the moment, I don't
> think this is very clearly understood even within the core dev group
> (so external contributors have no hope...) And for me, it'd help avoid
> the endless debates that often start with the phrase "pip should..."

+10

> For example, is the lack of a programmable API an issue for pip? I
> think it is, and having people able to write their own tools that use
> pip's finder, or its wheel installer, is a (long term) goal for pip,
> rather than, say, continually adding more pip subcommands. But I don't
> know if that's the consensus. And to my knowledge, no 3rd party PRs
> have *ever* been of the form "Encapsulate pip's functionality X in a
> clean API so I can use it in my script"...

If pip is ever refactored appropriately (which I acknowledge is not a
trivial condition to meet), maybe then pip could consider presenting a
public API, but I think there are currently too many people who
already reach into pip to ignore the need for such an interface.
Perhaps the answer is, as pip is refactored, to create libraries that
are then vendored into pip and that people can install independently
to do that one thing they need to do.

> Or is the "pip search" command a wart that should be removed because
> it isn't pip's job to do PyPI searches? There's some low-hanging fruit
> if a more focused tool is the goal...

There's also how many different replacements for "pip search" on PyPI?

> Or should pip give you tools to replicate your current environment
> (pip freeze, requirements files)? What about "remove anything *not* in
> this requirement file"? Personally, I only use requirements files to
> bundle up "install this lot of stuff". I don't write the sort of thing
> where a "pin every dependency" philosophy is appropriate, so freeze
> isn't something I use. But lots of people do, so what's the workflow
> that pip freeze supports?
>
> The problem with discussing this sort of thing is that it's *very*
> wide-ranging, and tends to produce huge rambling mega-threads[1] when
> discussed in a public list. I'm not advocating any sort of private
> cabal deciding the fate of pip, but maybe somewhere where the core
> devs could agree their *own* opinions before having to face the public
> wouldn't be such a bad thing. That's more or less what I'd expected
> the pypa-dev list to be (as a parallel to the python-dev list) but it
> doesn't feel like it's turned out that way, maybe because it doesn't
> have a clear enough charter, or maybe because there's no obvious
> *other* place to direct people to for off-topic posts (like
> python-list is for python-dev).

So sometimes private cabals need to be made in order to get a basis of
what is reasonable. The WSGI working group tried to do that but that
failed after about a week as more people tried to join the cabal and
were allowed t

[Distutils] Granting permissions to Xavier Fernandez and Marc Abramowitz?

2015-03-06 Thread piotr.dobrog...@autoera-serwer.home.pl piotr.dobrog...@autoera-serwer.home.pl
Hi

As an external observer of pip project at github I see two men, namely
Xavier Fernandez (https://github.com/xavfernandez) and Marc Abramowitz
(https://github.com/msabramo) with many valuable contributions. I
think it would be beneficial if they had been granted some more
permissions to the project/repo.

Regards,
Piotr Dobrogost
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread anatoly techtonik
Stealing some packaging code from Go and tweaking may not be that bad idea. =)
At least they use code review system to let new people learn and old
people share.

On Fri, Mar 6, 2015 at 5:51 AM, Ian Cordasco  wrote:
> Wait, I have an idea. Let's rewrite pip in Rust! ;)
>
> On Thu, Mar 5, 2015 at 7:16 PM, Greg Ewing  
> wrote:
>> On 03/06/2015 11:06 AM, Ben Finney wrote:
>>
>>> That's “small changes only, otherwise your change gets rejected”, of
>>> course.
>>
>>
>> Yes, otherwise submitting a patch that replaces the entire source
>> code of Python with Ruby would be a sure-fire way to get it
>> accepted. :-)
>>
>> --
>> Greg
>>
>>
>> ___
>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig



-- 
anatoly t.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread anatoly techtonik
On Thu, Mar 5, 2015 at 11:11 PM, Ian Cordasco
 wrote:
> And for CI, we need people who will help with the windows CI solution
> on more than one front clearly.

https://ci.appveyor.com/ works for open source projects.


-- 
anatoly t.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread anatoly techtonik
On Thu, Mar 5, 2015 at 7:38 PM, Marc Abramowitz  wrote:
> - Add more computer automation
>
> #3 seems most appealing to me, but of course it requires humans to develop
> it in the first place, but at least it's an investment that could pay
> dividends.

On page https://bitbucket.org/techtonik/python-stdlib/src there is a
working proof-of-concept that fetches patch files from
bugs.python.org, detects filenames and sees to which module the patch
belongs (module layout is described in .json file). It is possible to
tweak the script to also lookup who are the recent authors for the
module files. This will allow to them to review automatically.

-- 
anatoly t.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] Granting permissions to Xavier Fernandez and Marc Abramowitz?

2015-03-06 Thread Piotr Dobrogost
Hi

As an external observer of pip project at github I see two men, namely
Xavier Fernandez (https://github.com/xavfernandez) and Marc Abramowitz
(https://github.com/msabramo) with many valuable contributions. I
think it would be beneficial if they had been granted some more
permissions to the project/repo.

Regards,
Piotr Dobrogost
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Installing a file into sitepackages

2015-03-06 Thread Erik Bray
On Fri, Feb 20, 2015 at 1:49 PM, Stuart Axon
 wrote:
> Hi,
>In my project, I install a .pth file into site-packages, I use the 
> data_files...  in Ubuntu this seems to work OK, but in a Windows VM the file 
> doesn't seem to be being installed:
>
> setup(
>
># Install the import hook
> data_files=[
> (site_packages_path, ["vext_importer.pth"] if 
> environ.get('VIRTUAL_ENV') else []),
> ],
> )
>
>
> - Is there a better way to do this ?
>
>
>
> I realise it's a bit odd installing a .pth - my project is to allow certain 
> packages to use the system site packages from a virtualenv -
> https://github.com/stuaxo/vext

Hi Stuart,

I know this is old so sorry to anyone else.  But since no one
replied--I haven't looked too closely at what it is you're trying to
accomplish.  But whatever the reason, that seems like a
reasonable-enough way to me if you need to get a .pth file installed
into site-packages.  I'm not sure why it isn't working for you in
WIndows but it wasn't clear what the problem was.  I just tried this
in a Windows VM and it worked fine?

Best,
Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments (was: Getting more momentum for pip)

2015-03-06 Thread Donald Stufft

> On Mar 6, 2015, at 8:55 AM, Jeremy Stanley  wrote:
> 
> On 2015-03-06 21:37:31 +1000 (+1000), Nick Coghlan wrote:
> [...]
>> I've never used Gerrit in the OpenStack context though, so I don't
>> know if Donald dislikes Gerrit in its own right, or just the way
>> OpenStack uses it.
> [...]
> 
> Having talked with him about it regularly, I gather that he (and
> others) dislike the Gerrit/LKML "rebase, revise and refine your
> patch" workflow, instead preferring a Github-like "incrementally
> build on your pull request with new commits" workflow... though
> presumably he can explain it in better detail.
> 
> In my experience it comes down to a trade-off where the Github model
> is easier on patch submitters because they can just keep piling
> fixes for their pull request on top if it until the corresponding
> topic branch is suitable to merge, while the Gerrit model is easier
> on reviewers because they're reviewing a patch in context rather
> than a topic branch.
> 
>> The Beaker workflow  is an example of vanilla Gerrit usage, rather
>> than using OpenStack's custom fork:
> [...]
> 
> OpenStack hasn't been running a fork of Gerrit since upgrading to
> 2.8 back in April 2014 (modulo a few simple backports from 2.9), and
> has plans to upgrade to 2.9 next month or the month after. That's
> not to say that there isn't a bunch of additional tooling and
> automation built up around it (the Zuul CI system in particular) but
> aside from some minimal theming and including a little Javascript to
> tie outside data sources into the interface it's just plain Gerrit.
> --
> Jeremy Stanley
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig

In general I’m fine with Gerrit (or Gerrit like systems).

I think Gerrit has a crappy looking interface, and I think that the interface
is harder to use than GitHub but the process itself doesn’t bother me much. I
do think that it would be better if it would review whole PRs instead of
individual commits (and if you want to squash them, the tool should do a squash
merge).

I don’t think that pip’s problems are ones that would be solved by switching to
a different code review tool. GitHub functions well for that task, we don’t
require multiple core reviewers to agree, only one, so the merge button is
functionally equivalent to a +1 button and then having a machine later do the
merge. Our velocity isn’t near high enough to where we need separate check and
merge gating or anything like that. I would be against moving away from GitHub
for PRs without a really compelling reason, GitHub PRs are easy to use, and it’s
popular. We reduce the barrier to entry to contributing by making our process 
the
same as every other project on GitHub’s.

A better test suite and a more comprehensive CI system is where most of our 
tooling
problems are.

---
Donald Stufft
PGP: 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments (was: Getting more momentum for pip)

2015-03-06 Thread Jeremy Stanley
On 2015-03-06 21:37:31 +1000 (+1000), Nick Coghlan wrote:
[...]
> I've never used Gerrit in the OpenStack context though, so I don't
> know if Donald dislikes Gerrit in its own right, or just the way
> OpenStack uses it.
[...]

Having talked with him about it regularly, I gather that he (and
others) dislike the Gerrit/LKML "rebase, revise and refine your
patch" workflow, instead preferring a Github-like "incrementally
build on your pull request with new commits" workflow... though
presumably he can explain it in better detail.

In my experience it comes down to a trade-off where the Github model
is easier on patch submitters because they can just keep piling
fixes for their pull request on top if it until the corresponding
topic branch is suitable to merge, while the Gerrit model is easier
on reviewers because they're reviewing a patch in context rather
than a topic branch.

> The Beaker workflow  is an example of vanilla Gerrit usage, rather
> than using OpenStack's custom fork:
[...]

OpenStack hasn't been running a fork of Gerrit since upgrading to
2.8 back in April 2014 (modulo a few simple backports from 2.9), and
has plans to upgrade to 2.9 next month or the month after. That's
not to say that there isn't a bunch of additional tooling and
automation built up around it (the Zuul CI system in particular) but
aside from some minimal theming and including a little Javascript to
tie outside data sources into the interface it's just plain Gerrit.
-- 
Jeremy Stanley
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread Ian Cordasco
Anatoly,

We already ruled out AppVeyor
On Mar 6, 2015 2:11 AM, "anatoly techtonik"  wrote:

> On Thu, Mar 5, 2015 at 11:11 PM, Ian Cordasco
>  wrote:
> > And for CI, we need people who will help with the windows CI solution
> > on more than one front clearly.
>
> https://ci.appveyor.com/ works for open source projects.
>
>
> --
> anatoly t.
>
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments

2015-03-06 Thread Ben Finney
Nick Coghlan  writes:

> CPython uses the Reitveld instance integrated with bugs.python.org,
> and has the same problem as pip: incremental changes are a pain to
> publish, review, and merge, so we review and accept monolithic patches
> instead (cf the problem statement in
> https://www.python.org/dev/peps/pep-0462/)

Fair enough. I don't know of a good code review tool for Mercurial.

> While the main UI is very busy, I've actually quite liked my own
> experience with Gerrit for http://gerrit.beaker-project.org/

My understanding is that Gerrit makes it tedious to review a sequence of
revisions, in proportion to the number of revisions in the sequence. If
I understand correctly, such a sequence must have separate reviews for
every revision, and an aggregate of all the changes is not available to
the reviewer.

I'm impressed by GitLab's code review tool UI; see an example at
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/344/diffs>.
The merge request page has tabs for the discussion, the commit log, and
the overall diff – and you choose from inline diff or side-by-side diff.

GitLab is free software, including all its tools; anyone can set up a
GitLab instance and the project data can move from one instance to
another without loss. For the purposes of the past thread where some
proposed migrating to the proprietary lock-in site GitHub, those
objections don't exist with GitLab: a project can migrate to a different
host and keep all the valuable data it accumulated.

A move to GitLab would be unobjectionable, in my view. That it has good
code review features would help the issues in this thread too.

If anyone knows of equivalent hosting for Mercurial with equivalent code
review tools under free-software terms with no lock-in, that would be
even better I think.

-- 
 \ “Don't be misled by the enormous flow of money into bad defacto |
  `\standards for unsophisticated buyers using poor adaptations of |
_o__) incomplete ideas.” —Alan Kay |
Ben Finney

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread Paul Moore
On 5 March 2015 at 16:38, Marc Abramowitz  wrote:
> This makes me think that the folks who review the PRs are overburdened
> and/or the process needs a bit more structure (e.g.: each person thinks
> someone else is going to review the PR and so no one does it).

One thing I, personally, find difficult when reviewing PRs
(specifically feature requests) is the fact that I usually don't
actually have a *need* for the functionality being proposed. It's very
easy for me to say "this doesn't help me personally, so I'll ignore
it", but that is ducking a big part of the responsibility of being a
core committer. But forming a view on something I've no experience of
or direct interest in is *hard*, and takes a lot of time. Discussions
tend to involve a lot of people with strong opinions (e.g. the PR
author) who can't move the change forward, and a few people with
weaker opinions (e.g. me :-)) who can. It's very easy to think "just
accept it because it helps someone". But that's a cop-out and
long-term isn't a sustainable approach.

It's not "thinking someone else will review the PR", it's more making
a conscious decision on how much energy and effort I'm willing to put
into a PR that doesn't have any benefit for me. (And even just
*discussing* a PR can be a lot of energy, it's not easy to politely
explain to someone that you don't think their use case, that they went
to a lot of trouble writing a PR for, isn't worth it).

What would help a *lot* is some sort of agreement on what pip is, and
what its core goals are. Something similar to what it means to be
"pythonic" for the Python language itself. At the moment, I don't
think this is very clearly understood even within the core dev group
(so external contributors have no hope...) And for me, it'd help avoid
the endless debates that often start with the phrase "pip should..."

For example, is the lack of a programmable API an issue for pip? I
think it is, and having people able to write their own tools that use
pip's finder, or its wheel installer, is a (long term) goal for pip,
rather than, say, continually adding more pip subcommands. But I don't
know if that's the consensus. And to my knowledge, no 3rd party PRs
have *ever* been of the form "Encapsulate pip's functionality X in a
clean API so I can use it in my script"...

Or is the "pip search" command a wart that should be removed because
it isn't pip's job to do PyPI searches? There's some low-hanging fruit
if a more focused tool is the goal...

Or should pip give you tools to replicate your current environment
(pip freeze, requirements files)? What about "remove anything *not* in
this requirement file"? Personally, I only use requirements files to
bundle up "install this lot of stuff". I don't write the sort of thing
where a "pin every dependency" philosophy is appropriate, so freeze
isn't something I use. But lots of people do, so what's the workflow
that pip freeze supports?

The problem with discussing this sort of thing is that it's *very*
wide-ranging, and tends to produce huge rambling mega-threads[1] when
discussed in a public list. I'm not advocating any sort of private
cabal deciding the fate of pip, but maybe somewhere where the core
devs could agree their *own* opinions before having to face the public
wouldn't be such a bad thing. That's more or less what I'd expected
the pypa-dev list to be (as a parallel to the python-dev list) but it
doesn't feel like it's turned out that way, maybe because it doesn't
have a clear enough charter, or maybe because there's no obvious
*other* place to direct people to for off-topic posts (like
python-list is for python-dev).

Or maybe grand designs are a distraction in themselves, and none of
the core devs being interested in a PR means just that - not that they
don't have the time, or that the use case isn't valid, or anything
else. Just that they aren't interested, sorry.

[1] Please, don't start a rambling mega-thread from *this* post :-)

Paul

PS I just spend way too long composing this email, and now I'm burned
out. Maybe my time would have been better spent commenting on a couple
of PRs...
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Implementing large changes in small increments (was: Getting more momentum for pip)

2015-03-06 Thread Nick Coghlan
On 6 March 2015 at 08:00, Ben Finney  wrote:
> Donald Stufft  writes:
>
>> Sadly with how the code in pip is written, sometimes it’s just not
>> reasonable to make small PRs because things are not well factored and
>> changing things requires touching a lot of different areas.
>
> I've seen a number of other projects enforce “small revisions only,
> otherwise your change gets accepted”. If actually enforced, it is a
> highly successful way to get meaningful review of changes, and does not
> appear to limit the scope of the eventual change.
>
> What does end up happening in such projects (e.g., Linux) is the
> community learns how to – and teaches newcomers how to – implement large
> changes as smaller refactorings, each of which results in a working
> system.

This is:

a) a really good idea; and
b) really painful without good tooling support

Linux does it via emailed patchbombs, as do a lot of other open source
projects which don't have a separate code review tool. That works if
your contributors are used to *consuming* patches that way, but
inapplicable to projects used to web based reviews.

CPython uses the Reitveld instance integrated with bugs.python.org,
and has the same problem as pip: incremental changes are a pain to
publish, review, and merge, so we review and accept monolithic patches
instead (cf the problem statement in
https://www.python.org/dev/peps/pep-0462/)

While the main UI is very busy, I've actually quite liked my own
experience with Gerrit for http://gerrit.beaker-project.org/ (I was
the dev lead for Red Hat's Beaker hardware integration testing system
from Oct 2012 until mid 2014, and the product owner until a couple of
weeks ago). I've never used Gerrit in the OpenStack context though, so
I don't know if Donald dislikes Gerrit in its own right, or just the
way OpenStack uses it.

That means one option potentially worth exploring might be
http://gerrithub.io/. I haven't used GerritHub yet myself, but I'm
pretty sure it lets you mix & match between GitHub PRs for simple
changes and GerritHub reviews for more complex ones.

The Beaker workflow  is an example of vanilla Gerrit usage, rather
than using OpenStack's custom fork:
https://beaker-project.org/dev/guide/writing-a-patch.html#submitting-your-patch

http://gerrit.beaker-project.org/#/c/4025 is an example of a fairly
deep patch stack, where each patch can be reviewed independently, but
later patches won't be merged until after earlier ones have been
submitted. (Rebasing support is also baked directly into the tool)

Regards,
Nick.


-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Getting more momentum for pip

2015-03-06 Thread Nick Coghlan
On 6 March 2015 at 03:16, Marcus Smith  wrote:
> So I guess my suggestions boil down to:
>>
>>
>> - Add more humans
>> - Add more money to make humans more efficient
>> - Add more computer automation
>
>
>
> maybe agree to always maintain < X open issues and < Y open PRs, before
> adding features.
> where x can vary as needed, but for starters, x=250, and y=25 sounds
> reasonable.

This is one of the key differences between open source projects and
corporate projects. In a corporate context, it's important to keep
your backlog under control by saying "we're never going to invest time
in fixing this" and declare such issues as "won't fix".

In a community driven open source project, the situation is different.
Here, because everyone is free to spend their time however they like
(or however they can persuade someone to pay them), the only real
reason to "won't fix" an issue is because it's a genuinely bad idea
(or based on a flawed understanding of the situation) and there's no
way to redeem the suggestion. For anything else, it's often better to
leave it open as an opportunity for someone to persuade the core
developers that it's worth accepting the liability of maintaining that
code into the future - those that do the work, make the rules.

It does require a lot of education work, though. Most folks
(especially when just starting to learn to code) are inclined to think
that contributing more code is purely beneficial. It's not, as code is
a liability that costs you long term effort to maintain. As Jack
Diederich puts it: "code is the enemy and you want as little of it in
your product as possible". What you actually want is to *solve
people's problems in the general case*, such that the net gain in time
saved across the user community vastly outweighs the maintenance cost
of allowing that code to exist in the project. For mature projects
with a fairly well defined scope, this means the default answer is
going to be "no", and the most positive likely initial answer is
"maybe". Hence the split of the core CPython mailing lists into
python-dev (where the default answer is just a straight up "no") and
python-ideas (where the default answer is more along the lines of
"that's a potentially interesting idea, let's discuss it further").

This is arguably a flaw in more recent approaches to getting folks
engaged in open source projects, with a focus on quick wins and
immediate contributions. While those do exist in most projects,
they're generally about implementing *existing* ideas, or improving
docs, or fixing bugs. For folks that want to get a *specific* issue
fixed, then what they generally need to do is to learn what the core
contributors care about, and how to get them interested in addressing
that problem. There isn't the simple "I'm a paying customer, this is a
problem I'm reporting, we have an SLA, please resolve my issue in
accordance with that" dynamic that exists in a traditional vendor
relationship.

While it's only been intermittently effective, one useful tactic
CPython core developers have occasionally applied is a "5-for-1"
review trade: if someone else reviews 5 open patches, then they'll
review one that the new reviewer cares about. That's a pretty
straightforward quid pro quo, and gets people into the habit of
contributing time to things others are interested in so as to get time
contributed back to their own issues in return. It relies on core
contributors having the spare capacity to offer that deal though.

pythonmentors.com describes another approach, which allows folks to
self-identify as wanting to invest time in becoming a core
committer/reviewer themselves, rather than just wanting to get a
drive-by patch merged. Those folks then gain the benefit of getting
the attention of the more active mentors in the core developer group,
as well as a community of like-minded peers all attempting to learn
the tricks of navigating the vagaries of CPython core development.

Another way is when an existing contributors deliberately recruits
someone they trust to take over a task from them. In those cases, the
mentorship relationship already formed outside the particular
community of contributors, and is transferred into the new context.

Finally, there's straight up trading of favours: if you contribute
something an existing core contributor wants themselves, a) you'll
likely get their attention on that original review pretty easily; and
b) if you have something *else* you want reviewed, they're far more
likely to try to find the time if you're already helped them cross a
lingering item off their generally voluminous todo lists.

Regards,
Nick.

P.S. The other useful thing to do is to better educate folks on how to
make the case for spending work time on upstream projects and key
dependencies, *without* a specific near term business need. I'm pretty
happy with this piece I recently wrote for Red Hat as an example of
that kind of thing:
http://community.redhat.com/blog/2015/02/the-quid-pro-quo-of-open-inf