Skip to content

Commit 01c953b

Browse files
committed
docs: Add basic documentation about our CI setup
1 parent cbc03f3 commit 01c953b

File tree

2 files changed

+180
-0
lines changed

2 files changed

+180
-0
lines changed

docs/html/development/ci.rst

+179
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
.. note::
2+
This section of the documentation is currently being written. pip
3+
developers welcome your help to complete this documentation. If you're
4+
interested in helping out, please let us know in the `tracking issue`_.
5+
6+
.. _`tracking issue`: https://github.com/pypa/pip/issues/7279
7+
8+
**********************
9+
Continuous Integration
10+
**********************
11+
12+
Supported interpreters
13+
======================
14+
15+
pip support a variety of Python interpreters:
16+
17+
- CPython 2.7
18+
- CPython 3.5
19+
- CPython 3.6
20+
- CPython 3.7
21+
- CPython 3.8
22+
- Latest PyPy
23+
- Latest PyPy3
24+
25+
on different operating systems:
26+
27+
- Linux
28+
- Windows
29+
- MacOS
30+
31+
and on different architectures:
32+
33+
- x64
34+
- x86
35+
36+
so 42 hypothetical interpreters.
37+
38+
39+
Checks
40+
======
41+
42+
``pip`` CI runs different kind of tests:
43+
44+
- lint (defined in ``.pre-commit-config.yaml``)
45+
- docs
46+
- vendoring (is the ``src/_internal/_vendor`` directory cleanly vendored)
47+
- unit tests (present in ``tests/unit``)
48+
- "integration" tests (mostly present in ``tests/functional``)
49+
- package (test the packaging steps)
50+
51+
Since lint, docs, vendoring and package tests only need to run on a pip
52+
developer/contributor machine, they only need to be tested on the x64 variant
53+
of the 3 different operating systems, and when an interpreter needs to be
54+
specified it's ok to require the latest CPython interpreter.
55+
56+
So only unit tests and integration tests would need to be run with the different
57+
interpreters.
58+
59+
Services
60+
========
61+
62+
pip test suite and checks are distributed on four different platforms that
63+
provides free executors for open source packages:
64+
65+
- `Travis CI`_ (Used for Linux)
66+
- `Appveyor CI`_ (Windows only)
67+
- `Azure DevOps CI`_ (Linux, MacOS & Windows tests)
68+
- `GitHub Actions`_ (Linux, MacOS & Windows tests)
69+
70+
.. _`Travis CI`: https://travis-ci.org/
71+
.. _`Appveyor CI`: https://www.appveyor.com/
72+
.. _`Azure DevOps CI`: https://dev.azure.com/
73+
.. _`GitHub Actions`: https://github.com/features/actions
74+
75+
76+
Current run tests
77+
=================
78+
79+
Developer tasks
80+
---------------
81+
82+
======== =============== ================ =========== ============
83+
OS docs lint vendoring packages
84+
======== =============== ================ =========== ============
85+
Linux Travis, Github Travis, Github Travis Azure
86+
Windows Azure
87+
MacOS Azure
88+
======== =============== ================ =========== ============
89+
90+
Actual testing
91+
--------------
92+
93+
+------------------------------+---------------+-----------------+
94+
| **interpreter** | **unit** | **integration** |
95+
+-----------+----------+-------+---------------+-----------------+
96+
| | | CP2.7 | Azure | Azure |
97+
| | +-------+---------------+-----------------+
98+
| | | CP3.5 | Azure | |
99+
| | +-------+---------------+-----------------+
100+
| | | CP3.6 | Azure | |
101+
| | +-------+---------------+-----------------+
102+
| | x86 | CP3.7 | Azure | |
103+
| | +-------+---------------+-----------------+
104+
| | | CP3.8 | | |
105+
| | +-------+---------------+-----------------+
106+
| | | PyPy | | |
107+
| | +-------+---------------+-----------------+
108+
| | | PyPy3 | | |
109+
| Windows +----------+-------+---------------+-----------------+
110+
| | | CP2.7 | Appveyor | Appveyor |
111+
| | +-------+---------------+-----------------+
112+
| | | CP3.5 | Azure | Azure |
113+
| | +-------+---------------+-----------------+
114+
| | | CP3.6 | Appveyor | Appveyor |
115+
| | +-------+---------------+-----------------+
116+
| | x64 | CP3.7 | Azure | Azure |
117+
| | +-------+---------------+-----------------+
118+
| | | CP3.8 | | |
119+
| | +-------+---------------+-----------------+
120+
| | | PyPy | | |
121+
| | +-------+---------------+-----------------+
122+
| | | PyPy3 | | |
123+
+-----------+----------+-------+---------------+-----------------+
124+
| | | CP2.7 | | |
125+
| | +-------+---------------+-----------------+
126+
| | | CP3.5 | | |
127+
| | +-------+---------------+-----------------+
128+
| | | CP3.6 | | |
129+
| | +-------+---------------+-----------------+
130+
| | x86 | CP3.7 | | |
131+
| | +-------+---------------+-----------------+
132+
| | | CP3.8 | | |
133+
| | +-------+---------------+-----------------+
134+
| | | PyPy | | |
135+
| | +-------+---------------+-----------------+
136+
| | | PyPy3 | | |
137+
| Linux +----------+-------+---------------+-----------------+
138+
| | | CP2.7 | Travis,Azure | Travis,Azure |
139+
| | +-------+---------------+-----------------+
140+
| | | CP3.5 | Travis,Azure | Travis,Azure |
141+
| | +-------+---------------+-----------------+
142+
| | | CP3.6 | Travis,Azure | Travis,Azure |
143+
| | +-------+---------------+-----------------+
144+
| | x64 | CP3.7 | Travis,Azure | Travis,Azure |
145+
| | +-------+---------------+-----------------+
146+
| | | CP3.8 | Travis | Travis |
147+
| | +-------+---------------+-----------------+
148+
| | | PyPy | Travis | Travis |
149+
| | +-------+---------------+-----------------+
150+
| | | PyPy3 | Travis | Travis |
151+
+-----------+----------+-------+---------------+-----------------+
152+
| | | CP2.7 | | |
153+
| | +-------+---------------+-----------------+
154+
| | | CP3.5 | | |
155+
| | +-------+---------------+-----------------+
156+
| | | CP3.6 | | |
157+
| | +-------+---------------+-----------------+
158+
| | x86 | CP3.7 | | |
159+
| | +-------+---------------+-----------------+
160+
| | | CP3.8 | | |
161+
| | +-------+---------------+-----------------+
162+
| | | PyPy | | |
163+
| | +-------+---------------+-----------------+
164+
| | | PyPy3 | | |
165+
| MacOS +----------+-------+---------------+-----------------+
166+
| | | CP2.7 | Azure | Azure |
167+
| | +-------+---------------+-----------------+
168+
| | | CP3.5 | Azure | Azure |
169+
| | +-------+---------------+-----------------+
170+
| | | CP3.6 | Azure | Azure |
171+
| | +-------+---------------+-----------------+
172+
| | x64 | CP3.7 | Azure | Azure |
173+
| | +-------+---------------+-----------------+
174+
| | | CP3.8 | | |
175+
| | +-------+---------------+-----------------+
176+
| | | PyPy | | |
177+
| | +-------+---------------+-----------------+
178+
| | | PyPy3 | | |
179+
+-----------+----------+-------+---------------+-----------------+

docs/html/development/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ or the `pypa-dev mailing list`_, to ask questions or get involved.
1414

1515
getting-started
1616
contributing
17+
ci
1718
issue-triage
1819
architecture/index
1920
release-process

0 commit comments

Comments
 (0)