From f5992d2a4028f8a5cd681ebbec48d57a058b7697 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 07:09:04 -0500 Subject: [PATCH 01/29] Try not installing/upgrading wheel for Cygwin CI This is for a recent problem where "pip install -U" in the virtual environment in a Cygwin test job seems to block indefinitely on downloading the wheel package itself (not other packages' wheels). --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index f3937d21e..477572afc 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -62,8 +62,8 @@ jobs: - name: Update PyPA packages run: | - # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + # Get the latest pip, and prior to Python 3.12, setuptools. + python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) - name: Install project and test dependencies run: | From ace9eead91aa851efea9b7f28ee37ad5638600ed Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 07:23:45 -0500 Subject: [PATCH 02/29] Try not upgrading/installing pip/setuptools either on Cygwin --- .github/workflows/cygwin-test.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 477572afc..d61aad79e 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -60,11 +60,6 @@ jobs: # This is used unless, and before, an updated pip is installed. ln -s pip3 /usr/bin/pip - - name: Update PyPA packages - run: | - # Get the latest pip, and prior to Python 3.12, setuptools. - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) - - name: Install project and test dependencies run: | pip install ".[test]" From 92d1e48d9f4268725f1c140e9fd98e3029961729 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 07:37:56 -0500 Subject: [PATCH 03/29] Try installing pytho39-wheel Cygwin package Maybe this will overcome the next blockage, which is the codecov PyPI package, downloading a .tar.gz file. --- .github/workflows/cygwin-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index d61aad79e..eee795f96 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git + packages: python39 python39-pip python39-virtualenv python39-wheel git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output From fce86d9390056635f6b1a9d5b308c462d7c87f7f Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 07:45:42 -0500 Subject: [PATCH 04/29] Try upgrading wheel, but after upgrading pip --- .github/workflows/cygwin-test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index eee795f96..b543c6873 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -60,6 +60,12 @@ jobs: # This is used unless, and before, an updated pip is installed. ln -s pip3 /usr/bin/pip + - name: Update PyPA packages + run: | + # Get the latest pip, wheel, and prior to Python 3.12, setuptools. + python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) + python -m pip install -U wheel + - name: Install project and test dependencies run: | pip install ".[test]" From 5559caaf8b3cdf818ff6def95e88a2dc56883f34 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 08:08:49 -0500 Subject: [PATCH 05/29] Try always running pip on Cygwin as "python -m pip" --- .github/workflows/cygwin-test.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index b543c6873..9bf452c82 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -55,20 +55,14 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Ensure the "pip" command is available - run: | - # This is used unless, and before, an updated pip is installed. - ln -s pip3 /usr/bin/pip - - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) - python -m pip install -U wheel + python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - pip install ".[test]" + python -m pip install ".[test]" - name: Show version and platform information run: | From 1b69cf0b3ba7f7d638a6e23da12920dde9d50ad7 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 08:14:45 -0500 Subject: [PATCH 06/29] Try using a venv on Cygwin --- .github/workflows/cygwin-test.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 9bf452c82..685856f7f 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -55,17 +55,24 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig + - name: Create virtual environment + run: | + python -m venv .venv + - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. + . .venv/bin/activate python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | + . .venv/bin/activate python -m pip install ".[test]" - name: Show version and platform information run: | + . .venv/bin/activate uname -a command -v git python git version @@ -74,4 +81,5 @@ jobs: - name: Test with pytest run: | + . .venv/bin/activate pytest --color=yes -p no:sugar --instafail -vv From 6faa376c6002f11e18c053a9c0f8f08ab3733fb4 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 08:24:26 -0500 Subject: [PATCH 07/29] Use "python -v -m pip" to see some of what's going on --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 685856f7f..1a0654a52 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -63,12 +63,12 @@ jobs: run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. . .venv/bin/activate - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + python -v -m pip -v install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | . .venv/bin/activate - python -m pip install ".[test]" + python -v -m pip install ".[test]" - name: Show version and platform information run: | From 1837c53043717f08a90ecef1f2bdb5fd53ceb059 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 17:37:16 -0500 Subject: [PATCH 08/29] Undo venv; use "python -m pip -vvv" to see what's going on --- .github/workflows/cygwin-test.yml | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 1a0654a52..b9483817e 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -55,24 +55,17 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Create virtual environment - run: | - python -m venv .venv - - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - . .venv/bin/activate - python -v -m pip -v install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + python -m pip -vvv install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - . .venv/bin/activate - python -v -m pip install ".[test]" + python -m pip -vvv install ".[test]" - name: Show version and platform information run: | - . .venv/bin/activate uname -a command -v git python git version @@ -81,5 +74,4 @@ jobs: - name: Test with pytest run: | - . .venv/bin/activate pytest --color=yes -p no:sugar --instafail -vv From 0c1cfbf0fff0a4429db75e53a214dfc88fb7c0ec Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 17:42:59 -0500 Subject: [PATCH 09/29] Undo all debugging changes except passing "-vvv" --- .github/workflows/cygwin-test.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index b9483817e..9cd34788e 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv python39-wheel git + packages: python39 python39-pip python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,6 +55,11 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig + - name: Ensure the "pip" command is available + run: | + # This is used unless, and before, an updated pip is installed. + ln -s pip3 /usr/bin/pip + - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. @@ -62,7 +67,7 @@ jobs: - name: Install project and test dependencies run: | - python -m pip -vvv install ".[test]" + pip install -vvv ".[test]" - name: Show version and platform information run: | From 6f36edd6d96f9ab90db04b8f2c2ce2e299def26d Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 17:48:34 -0500 Subject: [PATCH 10/29] Try with "--no-cache-dir" --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 9cd34788e..350d7b4c9 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -63,11 +63,11 @@ jobs: - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip -vvv install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + python -m pip -vvv --no-cache-dir install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - pip install -vvv ".[test]" + pip install -vvv --no-cache-dir ".[test]" - name: Show version and platform information run: | From b532be2c91f4ab87d51b3050d5b54da6ff2ba325 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:00:18 -0500 Subject: [PATCH 11/29] Try with different tmp dir for pip runs --- .github/workflows/cygwin-test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 350d7b4c9..87e432e6c 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -63,10 +63,13 @@ jobs: - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. + mkdir -- "$(pwd)/tmp" + export TEMP="$(pwd)/tmp" TMP="$(pwd)/tmp" python -m pip -vvv --no-cache-dir install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | + export TEMP="$(pwd)/tmp" TMP="$(pwd)/tmp" pip install -vvv --no-cache-dir ".[test]" - name: Show version and platform information From b3de81b7152c32f1b45f45e55530f55ea670385f Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:26:16 -0500 Subject: [PATCH 12/29] Try with python39=3.9.16-1 --- .github/workflows/cygwin-test.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 87e432e6c..b75164c21 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git + packages: python39=3.9.16-1 python39-pip python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -63,14 +63,11 @@ jobs: - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - mkdir -- "$(pwd)/tmp" - export TEMP="$(pwd)/tmp" TMP="$(pwd)/tmp" - python -m pip -vvv --no-cache-dir install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + python -m pip -vvv install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - export TEMP="$(pwd)/tmp" TMP="$(pwd)/tmp" - pip install -vvv --no-cache-dir ".[test]" + pip -vvv install ".[test]" - name: Show version and platform information run: | From a66b0d8ab44e982ee107473c94993fb9627dc7bf Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:34:27 -0500 Subject: [PATCH 13/29] Try not upgrading setuptools --- .github/workflows/cygwin-test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index b75164c21..a1f760a3e 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39=3.9.16-1 python39-pip python39-virtualenv git + packages: python39 python39-pip python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -62,8 +62,8 @@ jobs: - name: Update PyPA packages run: | - # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip -vvv install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + # Get the latest pip and wheel. + python -m pip -vvv install -U pip wheel - name: Install project and test dependencies run: | From 83191473b4a62b44266ecdac58c6f2ca802ef573 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:46:19 -0500 Subject: [PATCH 14/29] Try not installing Cygwin python39-pip package --- .github/workflows/cygwin-test.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index a1f760a3e..0fb0ac0be 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git + packages: python39 python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,19 +55,14 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Ensure the "pip" command is available - run: | - # This is used unless, and before, an updated pip is installed. - ln -s pip3 /usr/bin/pip - - name: Update PyPA packages run: | - # Get the latest pip and wheel. - python -m pip -vvv install -U pip wheel + # Get the latest pip, wheel, and prior to Python 3.12, setuptools. + python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - pip -vvv install ".[test]" + python -m pip install ".[test]" - name: Show version and platform information run: | From 2a72692f71fafe81fcc131cd71cc9918a75ece62 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:50:28 -0500 Subject: [PATCH 15/29] Run pip freeze effectively This doesn't fix the bigger issue, it just addresses something from the last commit. --- .github/workflows/cygwin-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 0fb0ac0be..4dd5f0b2a 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -58,7 +58,7 @@ jobs: - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel + python -m pip install -U pip $(python -m pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | From 7b84c9af0820a94e7edb16c8e443b36638eb1b26 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 18:51:56 -0500 Subject: [PATCH 16/29] Try not installing python39-virtualenv either --- .github/workflows/cygwin-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 4dd5f0b2a..8ddafd2a2 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-virtualenv git + packages: python39 git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output From 2bb2f6b74053824ca6f6ddc07c00980a6b4e85a8 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 19:32:13 -0500 Subject: [PATCH 17/29] Try giving IPv4 for files.pythonhosted.org in hosts file --- .github/workflows/cygwin-test.yml | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 8ddafd2a2..63d5a7288 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 git + packages: python39 python39-pip python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -38,6 +38,14 @@ jobs: # Arrange for verbose output but without shell environment setup details. echo 'set -x' >~/.bash_profile + - name: Add PyPI hosts file entry # NOTE: Actually edits the Windows hosts file. + run: | + echo '199.232.96.223 files.pythonhosted.org' >>/etc/hosts + + - name: Show hosts file + run: | + cat /etc/hosts + - name: Special configuration for Cygwin git run: | git config --global --add safe.directory "$(pwd)" @@ -55,14 +63,19 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig + - name: Ensure the "pip" command is available + run: | + # This is used unless, and before, an updated pip is installed. + ln -s pip3 /usr/bin/pip + - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - python -m pip install -U pip $(python -m pip freeze --all | grep -ow ^setuptools) wheel + python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies run: | - python -m pip install ".[test]" + pip install ".[test]" - name: Show version and platform information run: | From 7be530ae3cd63ad56c0c9c9facbb25457e75d07e Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 19:40:54 -0500 Subject: [PATCH 18/29] Try downloading wheel with wget This is not a usable solution, but it is useful for troubleshooting. --- .github/workflows/cygwin-test.yml | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 63d5a7288..580f3f749 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git + packages: python39 python39-pip python39-virtualenv git wget add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -38,14 +38,6 @@ jobs: # Arrange for verbose output but without shell environment setup details. echo 'set -x' >~/.bash_profile - - name: Add PyPI hosts file entry # NOTE: Actually edits the Windows hosts file. - run: | - echo '199.232.96.223 files.pythonhosted.org' >>/etc/hosts - - - name: Show hosts file - run: | - cat /etc/hosts - - name: Special configuration for Cygwin git run: | git config --global --add safe.directory "$(pwd)" @@ -71,6 +63,7 @@ jobs: - name: Update PyPA packages run: | # Get the latest pip, wheel, and prior to Python 3.12, setuptools. + wget -P ~/.cache/pip 'https://files.pythonhosted.org:443/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl' python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - name: Install project and test dependencies From 4c9df4337467f0157e2f45ff13910be4fd784541 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 19:58:04 -0500 Subject: [PATCH 19/29] Try with python39-pip=23.0.1-1 And don't upgrade it or other PyPI packages. --- .github/workflows/cygwin-test.yml | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 580f3f749..2fa75c7b8 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git wget + packages: python39 python39-pip=23.0.1-1 python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,20 +55,9 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Ensure the "pip" command is available - run: | - # This is used unless, and before, an updated pip is installed. - ln -s pip3 /usr/bin/pip - - - name: Update PyPA packages - run: | - # Get the latest pip, wheel, and prior to Python 3.12, setuptools. - wget -P ~/.cache/pip 'https://files.pythonhosted.org:443/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl' - python -m pip install -U pip $(pip freeze --all | grep -ow ^setuptools) wheel - - name: Install project and test dependencies run: | - pip install ".[test]" + python -m pip install ".[test]" - name: Show version and platform information run: | From fd49bcf0cb44283a2d2448346b7831c10183829b Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 20:06:19 -0500 Subject: [PATCH 20/29] Pin pip with pip (Cygwin package doesn't pin) This tries with an older pip, but if the problem is the build rather than the version, then it would also help. --- .github/workflows/cygwin-test.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 2fa75c7b8..6d823a8e6 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip=23.0.1-1 python39-virtualenv git + packages: python39 python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,6 +55,10 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig + - name: Pin pip + run: | + python -m pip install pip==23.3.1 + - name: Install project and test dependencies run: | python -m pip install ".[test]" From 3019bf8e14d234dd88d8603a6ef6acf5f9d707fa Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 21:33:01 -0500 Subject: [PATCH 21/29] Stop pinning; keep skipping -U for PyPA; instrument with -vvv This won't fix it but is diagnostic, to reveal the URL for the coverage package, so I can see what happens when that is installed more manually. --- .github/workflows/cygwin-test.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 6d823a8e6..18a2d083c 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-virtualenv git + packages: python39 python39-pip python39-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,13 +55,14 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Pin pip + - name: Ensure the "pip" command is available run: | - python -m pip install pip==23.3.1 + # This is used unless, and before, an updated pip is installed. + ln -s pip3 /usr/bin/pip - name: Install project and test dependencies run: | - python -m pip install ".[test]" + pip -vvv install ".[test]" - name: Show version and platform information run: | From 9184a7273f8baa0c29110504758fbc3545fd8445 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 21:38:04 -0500 Subject: [PATCH 22/29] Try installing coverage[toml] separately --- .github/workflows/cygwin-test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 18a2d083c..b9ad04ef1 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -60,6 +60,10 @@ jobs: # This is used unless, and before, an updated pip is installed. ln -s pip3 /usr/bin/pip + - name: Install code coverage dependencies + run: | + pip -vvv install "coverage[toml]" + - name: Install project and test dependencies run: | pip -vvv install ".[test]" From bf54c2f68543fd9191a0ebdb1f8959b267735b00 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 21:42:09 -0500 Subject: [PATCH 23/29] Unset -vvv to see the bigger picture more easily --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index b9ad04ef1..090a2603e 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -62,11 +62,11 @@ jobs: - name: Install code coverage dependencies run: | - pip -vvv install "coverage[toml]" + pip install "coverage[toml]" - name: Install project and test dependencies run: | - pip -vvv install ".[test]" + pip install ".[test]" - name: Show version and platform information run: | From 0b82dc69a83deb06b731ad9aa0d630d430cf8507 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 22:03:37 -0500 Subject: [PATCH 24/29] Try killing pip after a timeout and rerunning it --- .github/workflows/cygwin-test.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 090a2603e..903daf504 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -60,13 +60,16 @@ jobs: # This is used unless, and before, an updated pip is installed. ln -s pip3 /usr/bin/pip - - name: Install code coverage dependencies - run: | - pip install "coverage[toml]" - - name: Install project and test dependencies run: | - pip install ".[test]" + set +e + for t in {1..5}; do + echo "Starting try $t." + timeout 70s pip install ".[test]" + status="$?" + ((status == 124)) || break + done + exit "$status" - name: Show version and platform information run: | From 20f1004668ec5ffbbabd913b460d1f997bfef745 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 22:32:25 -0500 Subject: [PATCH 25/29] Use SIGKILL --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 903daf504..62a77427c 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -65,9 +65,9 @@ jobs: set +e for t in {1..5}; do echo "Starting try $t." - timeout 70s pip install ".[test]" + timeout -s KILL 70s pip install ".[test]" status="$?" - ((status == 124)) || break + ((status == 137)) || break done exit "$status" From 884c9dcfd49030757a322bbe9c7cec453db1be67 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 22:43:29 -0500 Subject: [PATCH 26/29] Increase timeout from 70 to 120 seconds per try --- .github/workflows/cygwin-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index 62a77427c..d8e111b33 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -65,7 +65,7 @@ jobs: set +e for t in {1..5}; do echo "Starting try $t." - timeout -s KILL 70s pip install ".[test]" + timeout -s KILL 2m pip install ".[test]" status="$?" ((status == 137)) || break done From 4952a7263fd3abd1711d4a6066bbf27c82b8302b Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 22:59:12 -0500 Subject: [PATCH 27/29] Give each try a little more time than the last Since it has to verify previous work. --- .github/workflows/cygwin-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index d8e111b33..baf1273bd 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -65,7 +65,7 @@ jobs: set +e for t in {1..5}; do echo "Starting try $t." - timeout -s KILL 2m pip install ".[test]" + timeout -s KILL "$((30 * (t + 1)))"s pip install ".[test]" status="$?" ((status == 137)) || break done From b5865ffbac710083253a63aeab4217c5a99e30d4 Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Fri, 26 Jan 2024 23:38:25 -0500 Subject: [PATCH 28/29] Tweak (re)try parameters --- .github/workflows/cygwin-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index baf1273bd..c6ad8623c 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -63,9 +63,9 @@ jobs: - name: Install project and test dependencies run: | set +e - for t in {1..5}; do + for t in {1..10}; do echo "Starting try $t." - timeout -s KILL "$((30 * (t + 1)))"s pip install ".[test]" + timeout -s KILL "$((10 + t * 20))"s pip install ".[test]" status="$?" ((status == 137)) || break done From 34bbf7364745c71f0b770f5d4e47ebaebd909f5d Mon Sep 17 00:00:00 2001 From: Eliah Kagan Date: Sat, 27 Jan 2024 00:24:48 -0500 Subject: [PATCH 29/29] Try Python 3.8 --- .github/workflows/cygwin-test.yml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml index c6ad8623c..84a7f6490 100644 --- a/.github/workflows/cygwin-test.yml +++ b/.github/workflows/cygwin-test.yml @@ -30,7 +30,7 @@ jobs: - name: Install Cygwin uses: cygwin/cygwin-install-action@v4 with: - packages: python39 python39-pip python39-virtualenv git + packages: python38 python38-pip python38-virtualenv git add-to-path: false # No need to change $PATH outside the Cygwin environment. - name: Arrange for verbose output @@ -55,30 +55,23 @@ jobs: # and cause subsequent tests to fail cat test/fixtures/.gitconfig >> ~/.gitconfig - - name: Ensure the "pip" command is available + - name: Update PyPA packages run: | - # This is used unless, and before, an updated pip is installed. - ln -s pip3 /usr/bin/pip + # Get the latest pip, setuptools, and wheel. + python3.8 -m pip install -U pip setuptools wheel - name: Install project and test dependencies run: | - set +e - for t in {1..10}; do - echo "Starting try $t." - timeout -s KILL "$((10 + t * 20))"s pip install ".[test]" - status="$?" - ((status == 137)) || break - done - exit "$status" + python3.8 -m pip install ".[test]" - name: Show version and platform information run: | uname -a - command -v git python + command -v git python3.8 git version - python --version - python -c 'import os, sys; print(f"sys.platform={sys.platform!r}, os.name={os.name!r}")' + python3.8 --version + python3.8 -c 'import os, sys; print(f"sys.platform={sys.platform!r}, os.name={os.name!r}")' - name: Test with pytest run: | - pytest --color=yes -p no:sugar --instafail -vv + python3.8 -m pytest --color=yes -p no:sugar --instafail -vv