GitHub - vstinner/pythonci: CI to run numpy on the master branch of Python (original) (raw)

Python CI

pythonci

Build a CI to test popular PyPI projects on the master branch of Python.

Available tasks:

This project is a proof-of-concept.

There are different goals:

Python 2 is not supported: pythonci requires Python 3.6 or newer.

The tested Python is the Python used to run the command.

Test numpy (stable releases):

python3 -m pythonci test numpy

Test development versions:

python3 -m pythonci test numpy --dev

Cleanup:

python3 -m pythonci clean numpy

Cleanup all:

python3 -m pythonci cleanall numpy

Contact: Victor Stinner (Red Hat), vstinner@python.org

Goals

Use Cases

Check if a future Python change breaks third-party projects

Examples:

Detect projects broken by Python incompatible changes

Some Python changes are not seen by their authors as incompatible changes, but sometimes there are 5 or more projects broken by such change. If the authors of such change would be notified earlier of broken packages, they can enhance the documentation explaining how to port the code, they can help to fix these broken packages, and they can consider to revert the change and only reapply it once enough projects are fixed.

Check for DeprecationWarning

Run the test suite using: python3 -Werror.

Test in development mode

Run the test suite using: python3 -X dev.

TODO

Projects which should be tested:

Bugs:

Tasks:

Fedora COPR

In Fedora, "COPR" are created: rebuild some Fedora package with a newer Python.

Update the python package every N weeks.

Status

2019-10-28

coverage job fails with pip 19.1.1 which is not compatible with Python 3.9:

File "work/cpython-3.9.0a0_coverage-4.5.4/venv/lib/python3.9/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_vendor/html5lib/_trie/_base.py", line 3, in

ImportError: cannot import name 'Mapping' from 'collections' (/home/vstinner/myprojects/pythonci/work/cpython-3.9.0a0_coverage-4.5.4/coverage-4.5.4/.tox/py37/lib/python3.9/collections/__init__.py)

Cython 0.29.13 is broken by Python 3.9, use collections.Iterable

Existing CIs

See also: https://pythondev.readthedocs.io/test_next_python.html