python interpreter discovery plugin for tox 3 and multipython
Note
tox-multipython has twin plugin virtualenv-multipython that serves the same purpose for tox 4
This tox plugin comes pre-installed in multipython Docker image and is responsible for resolving tox environment name to Python executable. Most probably, you don't need to install it yourself.
Environment names supported are all multipython tags. More names may be added in the future.
There is one test suite:
tox3
—tox>=3,<4
is installed in host tag environment, andtox run
is executed ontox.ini
with env names equal to target tags. This test includes subtests:- assert
{env_python}
version inside tox env - assert
python
version inside tox env - install externally built sample package in tox environment
- execute entrypoint of sample package
- assert
Virtualenv supports discovery plugins since v20. In v20.22, it dropped support for Python <=3.6, in v20.27 it dropped support for Python 3.7.
This is why we use 6 different test setups:
tox3
+virtualenv>=20
tox3
+virtualenv>=20,<20.27
tox3
+virtualenv>=20,<20.22
When tox-multipython
is installed inside host tag environment, it allows to use selected ✅ target tag (create virtualenv environment or use as tox env name in env_list
) and automatically discovers corresponding multipython executable. For failing 💥 target tag, interpreter is discoverable, but virtual environment with sample package cannot be created.
Host tag and Target tags are valid multipython tags. Host tags are listed vertically (rows), target tags are listed horizontally (columns).
tox>=3,<4 , virtualenv>=20
HOST TARGETS —————— A B C D E F G H I J K L M py314t A ✅✅✅✅✅✅✅✅✅✅💥💥💥 py313t B ✅✅✅✅✅✅✅✅✅💥💥💥💥 py314 C ✅✅✅✅✅✅✅✅✅💥💥💥💥 py313 D ✅✅✅✅✅✅✅✅✅💥💥💥💥 py312 E ✅✅✅✅✅✅✅✅✅💥💥💥💥 py311 F ✅✅✅✅✅✅✅✅✅💥💥💥💥 py310 G ✅✅✅✅✅✅✅✅✅💥💥💥💥 py39 H ✅✅✅✅✅✅✅✅✅💥💥💥💥 py38 I ✅✅✅✅✅✅✅✅✅💥💥💥💥 py37 J ✅✅✅✅✅✅✅✅✅✅💥💥💥 py36 K 💥💥💥💥💥✅✅✅✅✅✅✅✅ py35 L 💥💥💥💥💥✅✅✅✅✅✅✅✅ py27 M 💥💥💥💥💥✅✅✅✅✅✅✅✅ |
tox>=3,<4 , virtualenv>=20,<20.27
HOST TARGETS —————— A B C D E F G H I J K L M py314t A ✅✅✅✅✅✅✅✅✅✅✅✅✅ py313t B ✅✅✅✅✅✅✅✅✅✅✅✅✅ py314 C ✅✅✅✅✅✅✅✅✅✅✅✅✅ py313 D ✅✅✅✅✅✅✅✅✅✅✅✅✅ py312 E ✅✅✅✅✅✅✅✅✅✅✅✅✅ py311 F ✅✅✅✅✅✅✅✅✅✅✅✅✅ py310 G ✅✅✅✅✅✅✅✅✅✅✅✅✅ py39 H ✅✅✅✅✅✅✅✅✅✅✅✅✅ py38 I ✅✅✅✅✅✅✅✅✅✅✅✅✅ py37 J ✅✅✅✅✅✅✅✅✅✅✅✅✅ py36 K 💥💥💥💥💥✅✅✅✅✅✅✅✅ py35 L 💥💥💥💥💥✅✅✅✅✅✅✅✅ py27 M 💥💥💥💥💥✅✅✅✅✅✅✅✅ |
tox>=3,<4 , virtualenv>=20,<20.22
HOST TARGETS —————— A B C D E F G H I J K L M py314t A ✅✅✅✅✅✅✅✅✅💥💥💥💥 py313t B ✅✅✅✅✅✅✅✅✅✅💥💥💥 py314 C ✅✅✅✅✅✅✅✅✅✅💥💥💥 py313 D ✅✅✅✅✅✅✅✅✅✅💥💥💥 py312 E ✅✅✅✅✅✅✅✅✅✅💥💥💥 py311 F ✅✅✅✅✅✅✅✅✅✅💥💥💥 py310 G ✅✅✅✅✅✅✅✅✅✅💥💥💥 py39 H ✅✅✅✅✅✅✅✅✅✅💥💥💥 py38 I ✅✅✅✅✅✅✅✅✅✅💥💥💥 py37 J ✅✅✅✅✅✅✅✅✅✅💥💥💥 py36 K 💥💥💥💥💥✅✅✅✅✅✅✅✅ py35 L 💥💥💥💥💥✅✅✅✅✅✅✅✅ py27 M 💥💥💥💥💥✅✅✅✅✅✅✅✅ |
Check CHANGELOG.md