Skip to content

Latest commit

 

History

History
146 lines (118 loc) · 6.18 KB

README.md

File metadata and controls

146 lines (118 loc) · 6.18 KB

tox-multipython

python interpreter interpreter discovery plugin for tox 3 and multipython

license versions pypi
tested with multipython uses docsub

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, including free threading Python builds py313t and py314t. More names may be added in the future.

Important

This plugin does not fall back to tox python: interpreter discovery errors are explicit.

Testing

There is one test suite:

  1. Tox 3. tox>=3,<4 is installed in host tag environment, and tox run is executed on tox.ini with env names equal to target tags. Tox environment's python version must match tox env name and target tag. This test includes subtests:
    • assert {envpython} version when tox env is activated
    • assert python version when tox env is activated
    • install externally built sample package in tox environment
    • execute entrypoint script of externally built sample package

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:

  1. Tox 3, tox>=3,<4, virtualenv>=20
  2. Tox 3, tox>=3,<4, virtualenv>=20,<20.27
  3. Tox 3, tox>=3,<4, virtualenv>=20,<20.22

Test report

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 💥💥💥💥💥✅✅✅✅✅✅✅✅

Authors

This package is a part of multipython project.

License

MIT License

Changelog

Check repository CHANGELOG.md