From ece0714d40af09284e3a06fea5cc2f0856b3df85 Mon Sep 17 00:00:00 2001 From: Scott-Simmons <52365471+Scott-Simmons@users.noreply.github.com> Date: Fri, 15 Nov 2024 06:47:23 +1100 Subject: [PATCH] Added functionality to test multiple versions of python using tox (#994) * Adding tox support Adds tox support for testing against multiple versions of python * PR etiquette comment Add example of how to raise a PR. * Add a comment about multi-version local testing Adds a comment about how to run tests locally on multiple versions of python. Ensures it is clear that it only works if particular version of python is installed on the users machine. Recommends `pytest` as a possible way to manage multiple local versions of python. Note the hyperlink out to `setup.cfg` is pinned to commit sha 1297c8ca5bd6f8f23b4de50e3f052fb4ec1307f8 instead of pinning to main branch. --------- Co-authored-by: Nils Braun --- .gitignore | 6 ++++++ docs/text/how_to_contribute.rst | 18 ++++++++++++++++++ setup.cfg | 20 ++++++++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/.gitignore b/.gitignore index fd9f611b..54a044db 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,9 @@ tsfresh/notebooks/data/ # dask dask-worker-space dask-worker-space/ + +# python version files +.python_version + +# tox log files +.tox diff --git a/docs/text/how_to_contribute.rst b/docs/text/how_to_contribute.rst index 25ab5957..0633784f 100644 --- a/docs/text/how_to_contribute.rst +++ b/docs/text/how_to_contribute.rst @@ -67,6 +67,18 @@ you have to: pytest +To test changes across multiple versions of Python, run: + + +.. code:: + + tox -r + + +`tox -r` will execute tests for the Python versions specified in `setup.cfg `_ using the `envlist` variable. For example, if `envlist` is set to `py37, py38`, the test suite will run for Python 3.7 and 3.8 on the local development platform, assuming the binaries for those versions are available locally. The exact Python microversions (e.g. `3.7.1` vs `3.7.2`) depend on what is installed on the local development machine. + +A recommended way to manage multiple Python versions when testing locally is with `pyenv`, which enables organized installation and switching between versions. + Documentation ''''''''''''' @@ -90,3 +102,9 @@ We use black and isort for styling. They are automatically triggered on every co We are looking forward to hear from you! =) + + +PR Descriptions +''''''''''''''' + +The PR should have a clear and descriptive title, along with a detailed description of the changes made, the problem being addressed, and any relevant tips for reviewers. An example of what this might look like is `here. `_ diff --git a/setup.cfg b/setup.cfg index 0043f036..6bbe7d5a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -140,3 +140,23 @@ max-line-length = 120 # This will be used when updating. Do not change! version = 3.2.3 package = tsfresh + +[tox:tox] +# Tox global conifguration options +minversion = 4.0.0 +# Which python versions to test for +envlist = py37, py38, py39, py310, py311 +# Don't throw an error if a specific version of python is not installed +skip_missing_interpreters = True +# Ensure that tox uses a virtual environment to build a source distribution +isolated_build = True + +# Tox configuration options for each version of python +[testenv] +commands = + # display the python version that tests are being run on + python -V + # install package requirements before running tests + python -m pip install .[testing] + # run the tests + python -m pytest tests/