Re: [python-committers] What is a CPython core developer?

2017-09-22 Thread Serhiy Storchaka

22.09.17 20:26, Brett Cannon пише:

+1 for the list Victor and Antoine have here!


+1 from me too!

___
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


[python-committers] Merging when assignee does not respond.

2017-09-22 Thread Terry Reedy

https://bugs.python.org/issue30085
https://github.com/python/cpython/pull/1171
were submitted last April.

Raymond assigned PR to himself, reviewed it in May.

Contributor Sanket revised according to reviews, in my opinion 
adequately.  Repeated pings on both issue and PR have not been answered. 
 Can someone else merge this?


tjr
___
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] What is a CPython core developer?

2017-09-22 Thread Carol Willing
Thanks Victor for your commitment to this. :D

I particularly like Mariatta's comment on responsibility, Antoine's comments on 
humility and respect, and Victor's linked document.


> On Sep 22, 2017, at 10:26 AM, Brett Cannon  wrote:
> 
> +1 for the list Victor and Antoine have here!
> 
> On Fri, 22 Sep 2017 at 09:48 Antoine Pitrou  > wrote:
> 
> Hi Victor,
> 
> Thank you, this is a useful write-up!
> 
> Le 22/09/2017 à 16:26, Victor Stinner a écrit :
> >
> > I started to list "responsabilities" (is it the correct word?) of a
> > core developer.
> >
> > First of all, I like how Mariatta summarized a promotion (in an oral
> > discussion that we had). Becoming a core developer doesn't give
> > *power*, but *responsabilities*. (Sorry, I'm not sure about the exact
> > wording, maybe Mariatta can correct me here ;-))
> 
> Well, it gives both, which is the only way things can work sanely.
> If you give power without responsabilities, you are creating a jungle;
> if you give responsabilities without the power to exert them properly,
> you are creating frustration and a dysfunctional environment.
> 
> > I identified the following CPython core developers responsabilities:
> >
> > * Long term commitement. We someone lands a big chunk of code, we need
> > someone to maintain it for at least the next 2 years. Maybe for the
> > next 10 years. I think that some people sign with their blood to
> > maintain crappy code for their own life, but it's better to not
> > elaborate this part ;-)
> 
> Unfortunately we can't evaluate that in advance.  Even the person being
> promoted often does not known whether they'll still be there in 5 or 10
> years.  Hopefully that's on their horizon, but many factors can interfere.
> 
> I, personally, can only think of a couple of cases where a person being
> promoted core developer vanished a few months after that.  It's not a
> big deal in the grand scheme of things, though it *is* frustrating to
> spend your time mentoring and promoting someone (which also engages your
> own responsability, since you're the one vouching that they'll be up to
> the task) only to see that person produce little to no work as a core
> developer.
> 
> > * Review patches and pull requests. While we don't require not expect
> > newcomers to review, we expect that core developers dedicate a part of
> > their time on reviews.
> 
> Yes, I believe this is the most important part of being a core
> developer.  What it means is that core developers care about the quality
> of the whole code base (and also the non-code parts), not only their own
> contributions to it.
> 
> > * Know the CPython workflow. Be aware of the pre-commit and
> > post-commits CIs. How ideas are discussed. It's not only about writing
> > and pushing patches.
> 
> This part is also required from regular contributors, at least the
> experienced ones.
> 
> > * For C developer: know CPython specific issues like reference leaks
> > and the garbage collector. We expect that a core developer write code
> > with no reference leak, right? ;-)
> 
> This is no different from regular contributors posting patches with C
> code in them.
> 
> > * Good quality patches: proposed changes are good (or almost good) at
> > the first iteration. I'm not sure about this point, but I know a few
> > other developers have this requiurement to promote someone.
> 
> Or, if the code isn't good at the first iteration, the author is able to
> figure it out by themselves and doesn't rush merge it.  Of course,
> nobody is perfect, which is why non-trivial code written by core
> developers ideally goes through a review phase anyway.  But a general
> sense of what is "in good state for review/merging" vs. "just a draft
> I'm working on" is indeed, IMHO, preferrable.
> 
> > * Pushing core means becoming responsible for this code. For
> > regressions, backward compatibility, security, etc.
> 
> Yes, this is the whole "know the project's lifecycle" thing.  It also
> includes knowing what to backport or not.
> 
> > * Something else?
> 
> Two things I would add:
> 
> - Know to be nice and respectful to the others, at least to the extent
> they're nice and respectful to yourself :-)  We don't have a rock-star
> (or "bro", "wizard", "ninja", whatever the hyperbole of the day is)
> culture here.
> 
> - Show a bit of humility towards existing work and try to understand the
> decisions behind something before deciding to change it all.  That said,
> given Python's current position on the technical evolution and adoption
> curve, we get less and less proposals for sweeping changes (perhaps not
> enough, actually, since even when rejected, they help challenge the
> statu quo).
> 
> Regards
> 
> Antoine.
> ___
> python-committers mailing list
> python-committers@python.org 
> https://mail.python.org/mailman/listinfo/python-committers 
> 

Re: [python-committers] What is a CPython core developer?

2017-09-22 Thread Brett Cannon
+1 for the list Victor and Antoine have here!

On Fri, 22 Sep 2017 at 09:48 Antoine Pitrou  wrote:

>
> Hi Victor,
>
> Thank you, this is a useful write-up!
>
> Le 22/09/2017 à 16:26, Victor Stinner a écrit :
> >
> > I started to list "responsabilities" (is it the correct word?) of a
> > core developer.
> >
> > First of all, I like how Mariatta summarized a promotion (in an oral
> > discussion that we had). Becoming a core developer doesn't give
> > *power*, but *responsabilities*. (Sorry, I'm not sure about the exact
> > wording, maybe Mariatta can correct me here ;-))
>
> Well, it gives both, which is the only way things can work sanely.
> If you give power without responsabilities, you are creating a jungle;
> if you give responsabilities without the power to exert them properly,
> you are creating frustration and a dysfunctional environment.
>
> > I identified the following CPython core developers responsabilities:
> >
> > * Long term commitement. We someone lands a big chunk of code, we need
> > someone to maintain it for at least the next 2 years. Maybe for the
> > next 10 years. I think that some people sign with their blood to
> > maintain crappy code for their own life, but it's better to not
> > elaborate this part ;-)
>
> Unfortunately we can't evaluate that in advance.  Even the person being
> promoted often does not known whether they'll still be there in 5 or 10
> years.  Hopefully that's on their horizon, but many factors can interfere.
>
> I, personally, can only think of a couple of cases where a person being
> promoted core developer vanished a few months after that.  It's not a
> big deal in the grand scheme of things, though it *is* frustrating to
> spend your time mentoring and promoting someone (which also engages your
> own responsability, since you're the one vouching that they'll be up to
> the task) only to see that person produce little to no work as a core
> developer.
>
> > * Review patches and pull requests. While we don't require not expect
> > newcomers to review, we expect that core developers dedicate a part of
> > their time on reviews.
>
> Yes, I believe this is the most important part of being a core
> developer.  What it means is that core developers care about the quality
> of the whole code base (and also the non-code parts), not only their own
> contributions to it.
>
> > * Know the CPython workflow. Be aware of the pre-commit and
> > post-commits CIs. How ideas are discussed. It's not only about writing
> > and pushing patches.
>
> This part is also required from regular contributors, at least the
> experienced ones.
>
> > * For C developer: know CPython specific issues like reference leaks
> > and the garbage collector. We expect that a core developer write code
> > with no reference leak, right? ;-)
>
> This is no different from regular contributors posting patches with C
> code in them.
>
> > * Good quality patches: proposed changes are good (or almost good) at
> > the first iteration. I'm not sure about this point, but I know a few
> > other developers have this requiurement to promote someone.
>
> Or, if the code isn't good at the first iteration, the author is able to
> figure it out by themselves and doesn't rush merge it.  Of course,
> nobody is perfect, which is why non-trivial code written by core
> developers ideally goes through a review phase anyway.  But a general
> sense of what is "in good state for review/merging" vs. "just a draft
> I'm working on" is indeed, IMHO, preferrable.
>
> > * Pushing core means becoming responsible for this code. For
> > regressions, backward compatibility, security, etc.
>
> Yes, this is the whole "know the project's lifecycle" thing.  It also
> includes knowing what to backport or not.
>
> > * Something else?
>
> Two things I would add:
>
> - Know to be nice and respectful to the others, at least to the extent
> they're nice and respectful to yourself :-)  We don't have a rock-star
> (or "bro", "wizard", "ninja", whatever the hyperbole of the day is)
> culture here.
>
> - Show a bit of humility towards existing work and try to understand the
> decisions behind something before deciding to change it all.  That said,
> given Python's current position on the technical evolution and adoption
> curve, we get less and less proposals for sweeping changes (perhaps not
> enough, actually, since even when rejected, they help challenge the
> statu quo).
>
> Regards
>
> Antoine.
> ___
> python-committers mailing list
> python-committers@python.org
> https://mail.python.org/mailman/listinfo/python-committers
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
___
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


Re: [python-committers] What is a CPython core developer?

2017-09-22 Thread Antoine Pitrou

Hi Victor,

Thank you, this is a useful write-up!

Le 22/09/2017 à 16:26, Victor Stinner a écrit :
> 
> I started to list "responsabilities" (is it the correct word?) of a
> core developer.
> 
> First of all, I like how Mariatta summarized a promotion (in an oral
> discussion that we had). Becoming a core developer doesn't give
> *power*, but *responsabilities*. (Sorry, I'm not sure about the exact
> wording, maybe Mariatta can correct me here ;-))

Well, it gives both, which is the only way things can work sanely.
If you give power without responsabilities, you are creating a jungle;
if you give responsabilities without the power to exert them properly,
you are creating frustration and a dysfunctional environment.

> I identified the following CPython core developers responsabilities:
> 
> * Long term commitement. We someone lands a big chunk of code, we need
> someone to maintain it for at least the next 2 years. Maybe for the
> next 10 years. I think that some people sign with their blood to
> maintain crappy code for their own life, but it's better to not
> elaborate this part ;-)

Unfortunately we can't evaluate that in advance.  Even the person being
promoted often does not known whether they'll still be there in 5 or 10
years.  Hopefully that's on their horizon, but many factors can interfere.

I, personally, can only think of a couple of cases where a person being
promoted core developer vanished a few months after that.  It's not a
big deal in the grand scheme of things, though it *is* frustrating to
spend your time mentoring and promoting someone (which also engages your
own responsability, since you're the one vouching that they'll be up to
the task) only to see that person produce little to no work as a core
developer.

> * Review patches and pull requests. While we don't require not expect
> newcomers to review, we expect that core developers dedicate a part of
> their time on reviews.

Yes, I believe this is the most important part of being a core
developer.  What it means is that core developers care about the quality
of the whole code base (and also the non-code parts), not only their own
contributions to it.

> * Know the CPython workflow. Be aware of the pre-commit and
> post-commits CIs. How ideas are discussed. It's not only about writing
> and pushing patches.

This part is also required from regular contributors, at least the
experienced ones.

> * For C developer: know CPython specific issues like reference leaks
> and the garbage collector. We expect that a core developer write code
> with no reference leak, right? ;-)

This is no different from regular contributors posting patches with C
code in them.

> * Good quality patches: proposed changes are good (or almost good) at
> the first iteration. I'm not sure about this point, but I know a few
> other developers have this requiurement to promote someone.

Or, if the code isn't good at the first iteration, the author is able to
figure it out by themselves and doesn't rush merge it.  Of course,
nobody is perfect, which is why non-trivial code written by core
developers ideally goes through a review phase anyway.  But a general
sense of what is "in good state for review/merging" vs. "just a draft
I'm working on" is indeed, IMHO, preferrable.

> * Pushing core means becoming responsible for this code. For
> regressions, backward compatibility, security, etc.

Yes, this is the whole "know the project's lifecycle" thing.  It also
includes knowing what to backport or not.

> * Something else?

Two things I would add:

- Know to be nice and respectful to the others, at least to the extent
they're nice and respectful to yourself :-)  We don't have a rock-star
(or "bro", "wizard", "ninja", whatever the hyperbole of the day is)
culture here.

- Show a bit of humility towards existing work and try to understand the
decisions behind something before deciding to change it all.  That said,
given Python's current position on the technical evolution and adoption
curve, we get less and less proposals for sweeping changes (perhaps not
enough, actually, since even when rejected, they help challenge the
statu quo).

Regards

Antoine.
___
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/


[python-committers] What is a CPython core developer?

2017-09-22 Thread Victor Stinner
Hi,

Recently, I asked their opinion to a few core developers about
promoting some active contributors to core developers.

It seems like we have no clear rules to decide if a contributor can be
promoted or not. The problem is that sometimes, I am explicitly asked:
What are the steps to become a core developer? Well, I'm not sure why
some people really want to become core developers, but that's not
question here :-)

I started to list "responsabilities" (is it the correct word?) of a
core developer.

First of all, I like how Mariatta summarized a promotion (in an oral
discussion that we had). Becoming a core developer doesn't give
*power*, but *responsabilities*. (Sorry, I'm not sure about the exact
wording, maybe Mariatta can correct me here ;-))

I also see that some core developers are more conservative, want to
reduce the risk of regressions, while some others are more on the
"forgiveness" trend ("it's better to ask forgiveness than
permission"). I think that it's perfectly normal and expected to have
people on the two sides. The question is how to find a compromise in
the middle.

I identified the following CPython core developers responsabilities:

* Long term commitement. We someone lands a big chunk of code, we need
someone to maintain it for at least the next 2 years. Maybe for the
next 10 years. I think that some people sign with their blood to
maintain crappy code for their own life, but it's better to not
elaborate this part ;-)

* Review patches and pull requests. While we don't require not expect
newcomers to review, we expect that core developers dedicate a part of
their time on reviews.

* Know the CPython workflow. Be aware of the pre-commit and
post-commits CIs. How ideas are discussed. It's not only about writing
and pushing patches.

* For C developer: know CPython specific issues like reference leaks
and the garbage collector. We expect that a core developer write code
with no reference leak, right? ;-)

* Good quality patches: proposed changes are good (or almost good) at
the first iteration. I'm not sure about this point, but I know a few
other developers have this requiurement to promote someone.

* Pushing core means becoming responsible for this code. For
regressions, backward compatibility, security, etc.

* Something else?

I don't expect this list to be complete. A vote for a promotion is
always done on a case by case basis, mostly because it's really hard
to be ready on *all* expected points. The discussion is more to
estimate how far is the contributor in its learning, if it's enough,
if more learning is needed, or if mentoring is needed.

Maybe we should also formalize the mentoring for contributors
identified as potential core developers. It can be an explicit step in
the promotion process. Each last core developers who get promoted last
year get a mentor if I recall correctly. What do you think?

I started to write an article "What is a CPython core developer?"
which describes even more things:

https://cpython-core-tutorial.readthedocs.io/en/latest/what_is_a_cpython_core_developer.html

Victor
___
python-committers mailing list
python-committers@python.org
https://mail.python.org/mailman/listinfo/python-committers
Code of Conduct: https://www.python.org/psf/codeofconduct/