************************
*********************************************************************************************************
The vote is happening here:
https://discuss.python.org/t/vote-to-promote-paul-ganssle-as-a-core-developer/1826
************************
*********************************************************************************************************
Victor Stinner and I want to propose Paul Ganssle as a core developer, who
would center his efforts on co-maintaining datetime together with Alexander
Beloposky.

Some of you may already know Paul Ganssle as the main maintainer of
dateutil, as maintainer of setuptools or for his contributions to CPython.
On the technical side, Paul has proven many times to have a great domain
knowledge around the datetime module and related functionality but he also
has remarkable knowledge about Python and CPython internals. As a reviewer,
Paul has made several reviews of datetime-related pull requests but also
other general pull requests involving Python
and C code as well as documentation. In the reviews he always shows a great
care towards the contributor (as can be seen as well in the reviews in the
packages that Paul maintains) but also he has spend a lot of time reviewing
the wording as a native English speaker, always in a detailed and
pedagogical way. Paul always listens to other ideas and viewpoints when
discussing and he reacts very positively to criticism in his PRs and work.

Paul would like to focus on co-maintain datetime together with Alexander
Beloposky (who has expressed that he is ok with that).

We consulted with Paul prior to the nomination, and he said he is
interested in becoming a core developer so that he can expand his ability
to improve the datetime module and CPython in general; he also participates
in many sprint events, and it would improve his ability to bring new
contributors on to the project. In short, we think Paul is an exceptional
developer, a kind and compassionate person, and CPython would benefit from
having him on the core team.

I have oppened a vote on discuss.python.org (
https://discuss.python.org/t/vote-to-promote-paul-ganssle-as-a-core-developer/1826)
for 1 week. As a reminder from PEP 13 regarding voting rules:

>... It is granted by receiving at least two-thirds positive votes in a
core team vote that is open for one week and with no veto by the steering
council."
https://www.python.org/dev/peps/pep-0013/#membership

Here is a summary of Paul's work and achievements:

## Background Information about Paul Ganssle

1. Maintainer of dateutil since 2014. First and most prominent third-party
implementation of PEP 495 (Local Time Disambiguation).
2. Maintainer of setuptools since 2018.
3. Frequently run sprints on dateutil and setuptools. Would like to be able
to offer mentorship on CPython at conference sprints.
4. Organized and ran the PyPA mini-summit at PyCon US 2018 and 2019, active
in the PyPA generally.
5. Wrote datetime bindings for PyO3 (CPython bindings for Rust), and has
continued to contribute regularly to that project with PRs, reviews and
issues. Interested in contributing to the C API from the perspective of
someone writing cross-language bindings.
6. Frequently helps maintain datetime-related code on other projects:
    - `pandas`: [Issue 23959](
https://github.com/pandas-dev/pandas/issues/23959), [issue 18523](
https://github.com/pandas-dev/pandas/issues/18523), [PR 19281](
https://github.com/pandas-dev/pandas/pull/19281), [PR 22560](
https://github.com/pandas-dev/pandas/pull/22560)
    - `matplotlib`: [PR 12678](
https://github.com/matplotlib/matplotlib/pull/12678), [issue 9018](
https://github.com/matplotlib/matplotlib/issues/9018), [PR 11610](
https://github.com/matplotlib/matplotlib/pull/11610), [PR 11360](
https://github.com/matplotlib/matplotlib/pull/11360)
    - `jupyter`: [jupyter-widgets/ipywidgets#168](
https://github.com/jupyter-widgets/ipywidgets/issues/168#issuecomment-147581117
)
7. Spoke at the language summit about adding more time zones to the
standard library. [Slides](
https://pganssle-talks.github.io/pycon-us-2019-language-summit-tz/#/),
[Repo](https://github.com/pganssle-talks/pycon-us-2019-language-summit-tz)

### Major accomplishments in CPython

1. Implemented `datetime.fromisoformat`, the inverse of
`datetime.isoformat`. This is still the fastest constructor for `datetime`
accessible from Python. ([PR #4699](
https://github.com/python/cpython/pull/4699), [PR #8959](
https://github.com/python/cpython/pull/8959))
2. Exposed `datetime.timezone` and `datetime.timezone.utc` in the CPython
API. ([PR #5032](https://github.com/python/cpython/pull/5032))
3. Implemented and made the case for changing the return type of `datetime`
+ `timedelta` arithmetic to respect the subclass of the `datetime` object.
Similarly has been working to make `datetime` safer to subclass in general.
([PR #10902](https://github.com/python/cpython/pull/10902), [Python-dev
thread 1](
https://mail.python.org/pipermail/python-dev/2019-January/155984.html) [2](
https://mail.python.org/pipermail/python-dev/2019-February/156206.html))
4. Improved the speed of all `datetime` alternate constructors. ([PR #4993](
https://github.com/python/cpython/pull/4993))
5. Add `datetime.fromisocalendar`, the inverse function from
`datetime.isocalendar` in [PR #11888](
https://github.com/python/cpython/pull/11888). Intends to continue
improving and maintaining symmetry between "serialization" and
"deserialization" functions.

### General maintenance tasks

1. Generally follows and comments on datetime and packaging related issues
in the issue tracker, among other things.
2. Reviews PRs, generally to datetime and time, but also unrelated PRs
(e.g. [PR #7605](https://github.com/python/cpython/pull/7605) adding
`shlex.join`).
Also has been trying to help give a native English speaker's perspective on
documentation PRs.


### Future plans

During our discussion, Paul has provided a list of improvements to Python
he'd like to make:

1. Improve Python datetime C API test suite and documentation (partially
completed at the PyCon sprints, Paul created the issues and helped Edison
Abahurire with reviews and in-person guidance while he made his first pull
requests adding tests and documentation for the datetime C API).
2. Expand time zone support in the standard library with a concrete
implementation of IANA time zones and an explicit representation of "local"
time.
3. Add nanosecond support to `datetime`
4. Improve compatibility across platforms where possible in things like
`strftime` and `timestamp`.
5. Improve locale-specific testing

Most of this is datetime related because that is the primary area where his
expertise is most needed (plus most packaging changes occur on `setuptools`
itself and not `distutils`), but he is interested in general contributions
to the language as well.

### Contributions
- PRs authored:
https://github.com/python/cpython/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Apganssle
- PRs reviewed:
https://github.com/python/cpython/pulls?utf8=%E2%9C%93&q=is%3Apr+reviewed-by%3Apganssle+-author%3Apganssle

#### Selected bpo issues
- strftime() returns wrong week numbers: https://bugs.python.org/issue35841
- warning about potential dead code: https://bugs.python.org/issue36330
- Wrong inspect.getsource for datetime: https://bugs.python.org/issue32313
- fromisoformat doesn't handle "Z": https://bugs.python.org/issue35829
- sqlite3 optional auto-conversion of DATETIME fields:
https://bugs.python.org/issue35145
- Incorrect documentation for strftime(): https://bugs.python.org/issue33381
- Second run of 2to3 modifies output: https://bugs.python.org/issue36122
(companion issue where he suggested keeping it open:
https://bugs.python.org/issue35417 )
- Replace append loops with comprehensions:
https://bugs.python.org/issue36039
- datetime.time.isoformat has inconsistent behavior:
https://bugs.python.org/issue34407
_______________________________________________
python-committers mailing list -- python-committers@python.org
To unsubscribe send an email to python-committers-le...@python.org
https://mail.python.org/mailman3/lists/python-committers.python.org/
Message archived at 
https://mail.python.org/archives/list/python-committers@python.org/message/DANYHF5ML3YNMG4EIXZWSH4EHEYMI6ES/
Code of Conduct: https://www.python.org/psf/codeofconduct/

Reply via email to