diff --git a/.github/workflows/create-wheels.yaml b/.github/workflows/create-wheels.yaml index 86f48414c..7c652c6f3 100644 --- a/.github/workflows/create-wheels.yaml +++ b/.github/workflows/create-wheels.yaml @@ -65,7 +65,11 @@ jobs: FALCON_ASGI_WRAP_NON_COROUTINES: Y FALCON_TESTING_SESSION: Y run: | - pip install 'tox>=3.20' + # TODO(kgriffs): Revisit second half of 2021 to see if we still need to pin tox + # + # See also: https://github.com/tox-dev/tox/issues/1777 + # + pip install 'tox==3.20' tox -e wheel_check -- ${{ matrix.pytest-extra }} - name: Get wheel name @@ -177,7 +181,7 @@ jobs: FALCON_ASGI_WRAP_NON_COROUTINES: Y FALCON_TESTING_SESSION: Y run: | - pip install 'tox>=3.20' + pip install 'tox==3.20' tox -e wheel_check -- ${{ matrix.pytest-extra }} - name: Get wheel names @@ -353,7 +357,7 @@ jobs: args: | bash -c " export PATH=/opt/python/${{ matrix.python-version }}/bin:$PATH && - pip install 'tox>=3.20' 'pip>=20' && + pip install 'tox==3.20' 'pip>=20' && tox -e wheel_check -- ${{ matrix.pytest-extra }} " @@ -377,7 +381,7 @@ jobs: args: | bash -c " export PATH=/opt/python/${{ matrix.python-version }}/bin:$PATH && - pip install 'tox>=3.20' 'pip>=20' && + pip install 'tox==3.20' 'pip>=20' && tox -e wheel_check -- ${{ matrix.pytest-extra }} " diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 9d8a37412..038b7add9 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -106,10 +106,14 @@ jobs: sudo apt-get update sudo apt-get install -y libunwind-dev + # TODO(kgriffs): Revisit second half of 2021 to see if we still need to pin tox + # + # See also: https://github.com/tox-dev/tox/issues/1777 + # - name: Install dependencies run: | python -m pip install --upgrade pip - pip install coverage tox + pip install coverage tox==3.20 python --version pip --version tox --version diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6ca49e6ea..17efd913e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,11 +33,11 @@ You can check all this by running the following from within the Falcon project d $ tools/mintest.sh ``` -You may also use Python 3.6 or 3.7 if you don't have 3.8 installed on your system. Substitute "py36" or "py37" as appropriate. For example: +You may also use Python 3.6 or 3.7 if you don't have 3.8 installed on your system. Substitute "py36" or "py37" as appropriate. Note also that due to a bug introduced in tox version 3.21, you will need to pin to 3.20 in order to run Falcon's test suite. For example: ```bash -$ pip install -U tox coverage +$ pip install -U tox==3.20 coverage $ rm -f .coverage.* $ tox -e pep8 && tox -e py35,py37 && tools/testing/combine_coverage.sh ``` @@ -141,11 +141,11 @@ $ xdg-open docs/_build/html/index.html following guidelines for docstrings: * Docstrings should utilize the [napolean style][docstrings] in order to make them read well, regardless of whether they are viewed through `help()` or on [Read the Docs][rtd]. * Docstrings should begin with a short (~70 characters or less) summary line that ends in a period. - * The summary line should begin immediately after the opening quotes (do not add + * The summary line should begin immediately after the opening quotes (do not add a line break before the summary line) - * The summary line should describe what it is if it is a class (e.g., "An + * The summary line should describe what it is if it is a class (e.g., "An asynchronous, file-like object for reading ASGI streams.") - * The summary line should describe what it does when called, if it is a + * The summary line should describe what it does when called, if it is a function, structured as an imperative (e.g., "Delete a header that was previously set for this response.") * Please try to be consistent with the way existing docstrings are formatted. In particular, note the use of single vs. double backticks as follows: * Double backticks diff --git a/tools/mintest.sh b/tools/mintest.sh index d3912fda0..b463ff07a 100755 --- a/tools/mintest.sh +++ b/tools/mintest.sh @@ -1,6 +1,10 @@ #!/usr/bin/env bash -pip install -U tox coverage +# TODO(kgriffs): Revisit second half of 2021 to see if we still need to pin tox +# +# See also: https://github.com/tox-dev/tox/issues/1777 +# +pip install -U tox==3.20 coverage rm -f .coverage.* diff --git a/tox.ini b/tox.ini index 7b60b1fa8..3933f49d5 100644 --- a/tox.ini +++ b/tox.ini @@ -9,7 +9,7 @@ # # Which is equivalent to: # -# $ pip install -U tox coverage +# $ pip install -U tox==3.20 coverage # $ rm -f .coverage.* # $ tox -e pep8 && tox -e py38 && tools/testing/combine_coverage.sh #