I propose a vote on Apache Avro's official Python version support policy.

Rationale:

This vote should lead to clarity for maintainers wondering what to do
with the two lang/py* implementations and what versions of Python they
should support.

Maintaining Avro on supported versions of Python ensures that we can
take best advantage of the modern features of the language including
both syntactic convenience, improvements in static analysis and
tooling, packaging, and security fixes. Pip is the mainstream Python
package installation method. It naturally tracks the supported
versions of Python itself, encouraging everyone to stay on supported,
secure versions.


What "support" means:

Supported versions of Python SHOULD receive higher priority in tickets
compared to issues that are demonstrably related to an unsupported
version of Python. Contributions to the Python implementation MUST
ONLY use language features available in all supported versions of
Python, and MUST pass tests in all supported versions of Python.
(Currently we have tests for CPython 3.6-3.9 and pypy-3.6 and 3.7.)


What we should support:

Officially obsoleting lang/py3:

We should delete the lang/py3 directory and stop releasing packages
for it. It has been about a year since I released unified Python
support in lang/py
(https://lists.apache.org/thread.html/3e1f8ddd4a29945fe226872ce1ae336f93083aca0c5220f08de12474%40%3Cdev.avro.apache.org%3E).
Supporting two lang/py implementations continues to confuse
contributors (https://github.com/apache/avro/pull/979) and users, who
are still under the wrong impression that avro-python doesn't support
python3.

Adding new versions:

We should begin to support new versions of Python in the master branch
soon after CPython releases a new version. CPython releases since 3.9
follow PEP 602 (https://www.python.org/dev/peps/pep-0602/), which
indicates a new major version of Python 3.x will be released every 12
months, and supported for five years following.

Dropping old versions:

For determining what and when to drop support, I propose that we track
pip, the official Python package installer, in its Python support
policy. More formally, I propose that if pip creates a changelog entry
such as https://pip.pypa.io/en/latest/news/#b1-2020-10-31, indicating
a clear intent to drop support for some version of Python, that we
should take that as a green light to stop supporting that version of
Python in the master branch and subsequent releases of Avro.

Pip's stated policy
(https://pip.pypa.io/en/latest/development/release-process/#python-support-policy)
is that they support a version of Python "until its usage on PyPI
falls below 5%", which we can see by drilling down at
https://pypistats.org/packages/pip.


Voting:

The voting process is here:
https://www.apache.org/foundation/voting.html. This is a procedural
vote on our support policy, to inform users of what to expect and to
enable contributors to make informed decisions.

Let's close the vote at 2021-01-10 23:59:59 UTC.

On Mon, Jan 4, 2021 at 5:19 AM Ismaël Mejía <[email protected]> wrote:
>
> +1 good idea! Can you please open the vote Michael
>
> Do we have multiple-python version tests? I suppose this will be
> easier to do now with the move to github actions!
>
> On Fri, Dec 18, 2020 at 5:40 PM Michael A. Smith <[email protected]> wrote:
> >
> > I propose that we track pip, the official Python package installer, in
> > its Python support policy. More formally, I propose that if pip
> > creates a changelog entry such as
> > https://pip.pypa.io/en/latest/news/#b1-2020-10-31, indicating a clear
> > intent to drop support for some version of Python, that we should take
> > that as a green light to stop supporting that version of Python in the
> > master branch and subsequent releases of Avro.
> >
> > To plan for the future, pip's stated policy
> > (https://pip.pypa.io/en/latest/development/release-process/#python-support-policy)
> > is that they support a version of Python "until its usage on PyPI
> > falls below 5%", which we can see by drilling down at
> > https://pypistats.org/packages/pip.
> >
> > If nobody has any immediate objections to this, I'll put it to a vote
> > in a subsequent email.
> >
> > Best regards,
> > Michael Smith

Reply via email to