From 01c953b95dfe9d82262c4c545e1567c6faa64203 Mon Sep 17 00:00:00 2001 From: Xavier Fernandez Date: Thu, 17 Oct 2019 21:26:21 +0200 Subject: [PATCH] docs: Add basic documentation about our CI setup --- docs/html/development/ci.rst | 179 ++++++++++++++++++++++++++++++++ docs/html/development/index.rst | 1 + 2 files changed, 180 insertions(+) create mode 100644 docs/html/development/ci.rst diff --git a/docs/html/development/ci.rst b/docs/html/development/ci.rst new file mode 100644 index 00000000000..2b7632a0c57 --- /dev/null +++ b/docs/html/development/ci.rst @@ -0,0 +1,179 @@ +.. note:: + This section of the documentation is currently being written. pip + developers welcome your help to complete this documentation. If you're + interested in helping out, please let us know in the `tracking issue`_. + +.. _`tracking issue`: https://github.com/pypa/pip/issues/7279 + +********************** +Continuous Integration +********************** + +Supported interpreters +====================== + +pip support a variety of Python interpreters: + + - CPython 2.7 + - CPython 3.5 + - CPython 3.6 + - CPython 3.7 + - CPython 3.8 + - Latest PyPy + - Latest PyPy3 + +on different operating systems: + + - Linux + - Windows + - MacOS + +and on different architectures: + + - x64 + - x86 + +so 42 hypothetical interpreters. + + +Checks +====== + +``pip`` CI runs different kind of tests: + +- lint (defined in ``.pre-commit-config.yaml``) +- docs +- vendoring (is the ``src/_internal/_vendor`` directory cleanly vendored) +- unit tests (present in ``tests/unit``) +- "integration" tests (mostly present in ``tests/functional``) +- package (test the packaging steps) + +Since lint, docs, vendoring and package tests only need to run on a pip +developer/contributor machine, they only need to be tested on the x64 variant +of the 3 different operating systems, and when an interpreter needs to be +specified it's ok to require the latest CPython interpreter. + +So only unit tests and integration tests would need to be run with the different +interpreters. + +Services +======== + +pip test suite and checks are distributed on four different platforms that +provides free executors for open source packages: + + - `Travis CI`_ (Used for Linux) + - `Appveyor CI`_ (Windows only) + - `Azure DevOps CI`_ (Linux, MacOS & Windows tests) + - `GitHub Actions`_ (Linux, MacOS & Windows tests) + +.. _`Travis CI`: https://travis-ci.org/ +.. _`Appveyor CI`: https://www.appveyor.com/ +.. _`Azure DevOps CI`: https://dev.azure.com/ +.. _`GitHub Actions`: https://github.com/features/actions + + +Current run tests +================= + +Developer tasks +--------------- + +======== =============== ================ =========== ============ + OS docs lint vendoring packages +======== =============== ================ =========== ============ +Linux Travis, Github Travis, Github Travis Azure +Windows Azure +MacOS Azure +======== =============== ================ =========== ============ + +Actual testing +-------------- + ++------------------------------+---------------+-----------------+ +| **interpreter** | **unit** | **integration** | ++-----------+----------+-------+---------------+-----------------+ +| | | CP2.7 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.5 | Azure | | +| | +-------+---------------+-----------------+ +| | | CP3.6 | Azure | | +| | +-------+---------------+-----------------+ +| | x86 | CP3.7 | Azure | | +| | +-------+---------------+-----------------+ +| | | CP3.8 | | | +| | +-------+---------------+-----------------+ +| | | PyPy | | | +| | +-------+---------------+-----------------+ +| | | PyPy3 | | | +| Windows +----------+-------+---------------+-----------------+ +| | | CP2.7 | Appveyor | Appveyor | +| | +-------+---------------+-----------------+ +| | | CP3.5 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.6 | Appveyor | Appveyor | +| | +-------+---------------+-----------------+ +| | x64 | CP3.7 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.8 | | | +| | +-------+---------------+-----------------+ +| | | PyPy | | | +| | +-------+---------------+-----------------+ +| | | PyPy3 | | | ++-----------+----------+-------+---------------+-----------------+ +| | | CP2.7 | | | +| | +-------+---------------+-----------------+ +| | | CP3.5 | | | +| | +-------+---------------+-----------------+ +| | | CP3.6 | | | +| | +-------+---------------+-----------------+ +| | x86 | CP3.7 | | | +| | +-------+---------------+-----------------+ +| | | CP3.8 | | | +| | +-------+---------------+-----------------+ +| | | PyPy | | | +| | +-------+---------------+-----------------+ +| | | PyPy3 | | | +| Linux +----------+-------+---------------+-----------------+ +| | | CP2.7 | Travis,Azure | Travis,Azure | +| | +-------+---------------+-----------------+ +| | | CP3.5 | Travis,Azure | Travis,Azure | +| | +-------+---------------+-----------------+ +| | | CP3.6 | Travis,Azure | Travis,Azure | +| | +-------+---------------+-----------------+ +| | x64 | CP3.7 | Travis,Azure | Travis,Azure | +| | +-------+---------------+-----------------+ +| | | CP3.8 | Travis | Travis | +| | +-------+---------------+-----------------+ +| | | PyPy | Travis | Travis | +| | +-------+---------------+-----------------+ +| | | PyPy3 | Travis | Travis | ++-----------+----------+-------+---------------+-----------------+ +| | | CP2.7 | | | +| | +-------+---------------+-----------------+ +| | | CP3.5 | | | +| | +-------+---------------+-----------------+ +| | | CP3.6 | | | +| | +-------+---------------+-----------------+ +| | x86 | CP3.7 | | | +| | +-------+---------------+-----------------+ +| | | CP3.8 | | | +| | +-------+---------------+-----------------+ +| | | PyPy | | | +| | +-------+---------------+-----------------+ +| | | PyPy3 | | | +| MacOS +----------+-------+---------------+-----------------+ +| | | CP2.7 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.5 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.6 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | x64 | CP3.7 | Azure | Azure | +| | +-------+---------------+-----------------+ +| | | CP3.8 | | | +| | +-------+---------------+-----------------+ +| | | PyPy | | | +| | +-------+---------------+-----------------+ +| | | PyPy3 | | | ++-----------+----------+-------+---------------+-----------------+ diff --git a/docs/html/development/index.rst b/docs/html/development/index.rst index 53fefc9e186..ffaa3c07b09 100644 --- a/docs/html/development/index.rst +++ b/docs/html/development/index.rst @@ -14,6 +14,7 @@ or the `pypa-dev mailing list`_, to ask questions or get involved. getting-started contributing + ci issue-triage architecture/index release-process