NEP 14 — Plan for dropping Python 2.7 support

The Python core team plans to stop supporting Python 2 in 2020. The NumPy
project has supported both Python 2 and Python 3 in parallel since 2010, and
has found that supporting Python 2 is an increasing burden on our limited
resources; thus, we plan to eventually drop Python 2 support as well. Now that
we're entering the final years of community-supported Python 2, the NumPy
project wants to clarify our plans, with the goal of to helping our downstream
ecosystem make plans and accomplish the transition with as little disruption as
possible.

Our current plan is as follows.

Until December 31, 2018, all NumPy releases will fully support both
Python2 and Python3.

Starting on January 1, 2019, any new feature releases will support only
Python3.

The last Python2 supporting release will be designated as a long term support
(LTS) release, meaning that we will continue to merge bug fixes and make bug
fix releases for a longer period than usual. Specifically, it will be
supported by the community until December 31, 2019.

On January 1, 2020 we will raise a toast to Python2, and community support
for the last Python2 supporting release will come to an end. However, it will
continue to be available on PyPI indefinitely, and if any commercial vendors
wish to extend the LTS support past this point then we are open to letting them
use the LTS branch in the official NumPy repository to coordinate that.

If you are a NumPy user who requires ongoing Python2 support in 2020 or later,
then please contact your vendor. If you are a vendor who wishes to continue to
support NumPy on Python2 in 2020+, please get in touch; ideally we'd like you
to get involved in maintaining the LTS before it actually hits end of life so
that we can make a clean handoff.

To minimize disruption, running pip install numpy on Python 2 will continue
to give the last working release in perpetuity, but after January 1, 2019 it
may not contain the latest features, and after January 1, 2020 it may not
contain the latest bug fixes.

For more information on the scientific Python ecosystem's transition
to Python3 only, see the python3-statement.

For more information on porting your code to run on Python 3, see the
python3-howto.