diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5b5f581d..7c1ead786 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,33 +37,10 @@ jobs: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} - if: ${{ matrix.os != 'windows-latest' }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - # See note below about need for using 32-bit Python 2.7 on - # Windows. - - name: Set up Python ${{ matrix.python-version }} [Windows x64] - if: ${{ ( matrix.os == 'windows-latest' ) && ( matrix.python-version != '2.7' ) }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - architecture: 'x64' - - # We use netifaces, which does not ship a 64-bit wheel for the - # Python 2.7 + Windows combination, but it ships a 32-bit wheel. - # Since MS has removed vcpython27 compiler downloads from their - # usual download site, building a netifaces wheel locally is not - # an option anymore. So let us just test with 32-bit Python on - # Windows. - - name: Set up Python ${{ matrix.python-version }} [Windows x86] - if: ${{ ( matrix.os == 'windows-latest' ) && ( matrix.python-version == '2.7' ) }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - architecture: 'x86' - # To use pip caching with GitHub Actions in an OS-independent # manner, we need `pip cache dir` command, which became # available since pip v20.1+. At the time of writing this, @@ -189,9 +166,20 @@ jobs: if: matrix.os == 'ubuntu-latest' run: sudo apt install tor - - name: Install Tor [macOS] - if: matrix.os == 'macos-latest' + - name: Install Tor [macOS, ${{ matrix.python-version }} ] + if: ${{ ( matrix.os == 'macos-latest' ) && ( matrix.python-version != '2.7' ) }} run: brew install tor + + # TODO: See https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3744. + # We have to use an older version of Tor for running integration + # tests on macOS using Python 2.7. We should stop doing this + # when Python 2.7 is dropped. + - name: Install Tor [macOS, ${{ matrix.python-version }} ] + if: ${{ ( matrix.os == 'macos-latest' ) && ( matrix.python-version == '2.7' ) }} + run: | + brew extract --version 0.4.5.8 tor homebrew/cask + brew install tor@0.4.5.8 + brew link --overwrite tor@0.4.5.8 - name: Install Tor [Windows] if: matrix.os == 'windows-latest' @@ -205,19 +193,10 @@ jobs: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} - if: ${{ matrix.os != 'windows-latest' }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - # See this step under coverage job. - - name: Set up Python ${{ matrix.python-version }} [Windows x86] - if: ${{ matrix.os == 'windows-latest' }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - architecture: 'x86' - - name: Get pip cache directory id: pip-cache run: | @@ -274,19 +253,10 @@ jobs: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} - if: ${{ matrix.os != 'windows-latest' }} uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - # See this step under coverage job. - - name: Set up Python ${{ matrix.python-version }} [Windows x86] - if: ${{ matrix.os == 'windows-latest' }} - uses: actions/setup-python@v1 - with: - python-version: ${{ matrix.python-version }} - architecture: 'x86' - - name: Get pip cache directory id: pip-cache run: | diff --git a/newsfragments/3681.installation b/newsfragments/3681.installation deleted file mode 100644 index a697e6c60..000000000 --- a/newsfragments/3681.installation +++ /dev/null @@ -1,3 +0,0 @@ -Tahoe-LAFS CI now runs tests only on 32-bit Windows. Microsoft has -removed vcpython27 compiler downloads from their site, and Tahoe-LAFS -needs vcpython27 to build and install netifaces on 64-bit Windows. diff --git a/newsfragments/3681.minor b/newsfragments/3681.minor new file mode 100644 index 000000000..bc84b6b8f --- /dev/null +++ b/newsfragments/3681.minor @@ -0,0 +1,8 @@ +(The below text is no longer valid: netifaces has released a 64-bit +Python 2.7 wheel for Windows. Ticket #3733 made the switch in CI. We +should be able to test and run Tahoe-LAFS without needing vcpython27 +now.) + +Tahoe-LAFS CI now runs tests only on 32-bit Windows. Microsoft has +removed vcpython27 compiler downloads from their site, and Tahoe-LAFS +needs vcpython27 to build and install netifaces on 64-bit Windows. diff --git a/newsfragments/3733.installation b/newsfragments/3733.installation new file mode 100644 index 000000000..c1cac649b --- /dev/null +++ b/newsfragments/3733.installation @@ -0,0 +1 @@ +Use netifaces 0.11.0 wheel package from PyPI.org if you use 64-bit Python 2.7 on Windows. VCPython27 downloads are no longer available at Microsoft's website, which has made building Python 2.7 wheel packages of Python libraries with C extensions (such as netifaces) on Windows difficult. diff --git a/newsfragments/3744.minor b/newsfragments/3744.minor new file mode 100644 index 000000000..e69de29bb