Skip to content

Commit

Permalink
Added functionality to test multiple versions of python using tox (#994)
Browse files Browse the repository at this point in the history
* 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 1297c8c instead of pinning to main branch.

---------

Co-authored-by: Nils Braun <[email protected]>
  • Loading branch information
Scott-Simmons and nils-braun authored Nov 14, 2024
1 parent 13041e6 commit ece0714
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 0 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,9 @@ tsfresh/notebooks/data/
# dask
dask-worker-space
dask-worker-space/

# python version files
.python_version

# tox log files
.tox
18 changes: 18 additions & 0 deletions docs/text/how_to_contribute.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 <https://github.com/blue-yonder/tsfresh/blob/1297c8ca5bd6f8f23b4de50e3f052fb4ec1307f8/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
'''''''''''''

Expand All @@ -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. <https://github.com/blue-yonder/tsfresh/pull/994#issue-1509962136>`_
20 changes: 20 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -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/

0 comments on commit ece0714

Please sign in to comment.