From f6a46c86d24b59110d148b2879c2d7e6647d0501 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:11:59 -0500 Subject: [PATCH 01/10] Populate the wheelhouse with a working version of tox --- .circleci/populate-wheelhouse.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/populate-wheelhouse.sh b/.circleci/populate-wheelhouse.sh index 519a80cac..39bf4ae4c 100755 --- a/.circleci/populate-wheelhouse.sh +++ b/.circleci/populate-wheelhouse.sh @@ -9,7 +9,7 @@ BASIC_DEPS="pip wheel" # Python packages we need to support the test infrastructure. *Not* packages # Tahoe-LAFS itself (implementation or test suite) need. -TEST_DEPS="tox codecov" +TEST_DEPS="'tox~=3.0' codecov" # Python packages we need to generate test reports for CI infrastructure. # *Not* packages Tahoe-LAFS itself (implement or test suite) need. From 13aa000d0b4c42c550e42a7d85ad2a0035b7b56d Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:06:24 -0500 Subject: [PATCH 02/10] Some features we depend on are broken in tox 4 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 768e44e29..8558abd02 100644 --- a/setup.py +++ b/setup.py @@ -396,7 +396,7 @@ setup(name="tahoe-lafs", # also set in __init__.py "pyflakes == 2.2.0", "coverage ~= 5.0", "mock", - "tox", + "tox ~= 3.0", "pytest", "pytest-twisted", "hypothesis >= 3.6.1", From 666cd24c2b07e5a4ea70100ec3a1554296c47507 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:07:38 -0500 Subject: [PATCH 03/10] Also constrain tox here --- .circleci/config.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 051e690b7..d7e4f2563 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -133,10 +133,10 @@ jobs: steps: - "checkout" - - run: + - run: &INSTALL_TOX name: "Install tox" command: | - pip install --user tox + pip install --user 'tox~=3.0' - run: name: "Static-ish code checks" @@ -152,9 +152,7 @@ jobs: - "checkout" - run: - name: "Install tox" - command: | - pip install --user tox + <<: *INSTALL_TOX - run: name: "Make PyInstaller executable" From 43c044a11b8c98565dcc035608ec82a18affcf08 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:13:29 -0500 Subject: [PATCH 04/10] build me the images --- .circleci/config.yml | 106 +++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d7e4f2563..89748c5aa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,69 +14,69 @@ version: 2.1 workflows: ci: jobs: - # Start with jobs testing various platforms. - - "debian-10": - {} - - "debian-11": - {} + # # Start with jobs testing various platforms. + # - "debian-10": + # {} + # - "debian-11": + # {} - - "ubuntu-20-04": - {} - - "ubuntu-18-04": - requires: - - "ubuntu-20-04" + # - "ubuntu-20-04": + # {} + # - "ubuntu-18-04": + # requires: + # - "ubuntu-20-04" - # Equivalent to RHEL 8; CentOS 8 is dead. - - "oraclelinux-8": - {} + # # Equivalent to RHEL 8; CentOS 8 is dead. + # - "oraclelinux-8": + # {} - - "nixos": - name: "NixOS 21.05" - nixpkgs: "21.05" + # - "nixos": + # name: "NixOS 21.05" + # nixpkgs: "21.05" - - "nixos": - name: "NixOS 21.11" - nixpkgs: "21.11" + # - "nixos": + # name: "NixOS 21.11" + # nixpkgs: "21.11" - # Eventually, test against PyPy 3.8 - #- "pypy27-buster": - # {} + # # Eventually, test against PyPy 3.8 + # #- "pypy27-buster": + # # {} - # Other assorted tasks and configurations - - "codechecks": - {} - - "pyinstaller": - {} - - "c-locale": - {} - # Any locale other than C or UTF-8. - - "another-locale": - {} + # # Other assorted tasks and configurations + # - "codechecks": + # {} + # - "pyinstaller": + # {} + # - "c-locale": + # {} + # # Any locale other than C or UTF-8. + # - "another-locale": + # {} - - "integration": - requires: - # If the unit test suite doesn't pass, don't bother running the - # integration tests. - - "debian-11" + # - "integration": + # requires: + # # If the unit test suite doesn't pass, don't bother running the + # # integration tests. + # - "debian-11" - - "typechecks": - {} - - "docs": - {} + # - "typechecks": + # {} + # - "docs": + # {} - images: - # Build the Docker images used by the ci jobs. This makes the ci jobs - # faster and takes various spurious failures out of the critical path. - triggers: - # Build once a day - - schedule: - cron: "0 0 * * *" - filters: - branches: - only: - - "master" + # images: + # # Build the Docker images used by the ci jobs. This makes the ci jobs + # # faster and takes various spurious failures out of the critical path. + # triggers: + # # Build once a day + # - schedule: + # cron: "0 0 * * *" + # filters: + # branches: + # only: + # - "master" - jobs: + # jobs: # Every job that pushes a Docker image from Docker Hub needs to provide # credentials. Use this first job to define a yaml anchor that can be # used to supply a CircleCI job context which makes Docker Hub From e835ed538fe81876898b36cbccd5fd32bac75554 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:18:40 -0500 Subject: [PATCH 05/10] Okay don't quote it then --- .circleci/populate-wheelhouse.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/populate-wheelhouse.sh b/.circleci/populate-wheelhouse.sh index 39bf4ae4c..857171979 100755 --- a/.circleci/populate-wheelhouse.sh +++ b/.circleci/populate-wheelhouse.sh @@ -9,7 +9,7 @@ BASIC_DEPS="pip wheel" # Python packages we need to support the test infrastructure. *Not* packages # Tahoe-LAFS itself (implementation or test suite) need. -TEST_DEPS="'tox~=3.0' codecov" +TEST_DEPS="tox~=3.0 codecov" # Python packages we need to generate test reports for CI infrastructure. # *Not* packages Tahoe-LAFS itself (implement or test suite) need. From d5380fe1569f6548df37002949b0169a55ca4151 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Fri, 9 Dec 2022 14:27:37 -0500 Subject: [PATCH 06/10] regular ci config --- .circleci/config.yml | 106 +++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 89748c5aa..d7e4f2563 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,69 +14,69 @@ version: 2.1 workflows: ci: jobs: - # # Start with jobs testing various platforms. - # - "debian-10": - # {} - # - "debian-11": - # {} + # Start with jobs testing various platforms. + - "debian-10": + {} + - "debian-11": + {} - # - "ubuntu-20-04": - # {} - # - "ubuntu-18-04": - # requires: - # - "ubuntu-20-04" + - "ubuntu-20-04": + {} + - "ubuntu-18-04": + requires: + - "ubuntu-20-04" - # # Equivalent to RHEL 8; CentOS 8 is dead. - # - "oraclelinux-8": - # {} + # Equivalent to RHEL 8; CentOS 8 is dead. + - "oraclelinux-8": + {} - # - "nixos": - # name: "NixOS 21.05" - # nixpkgs: "21.05" + - "nixos": + name: "NixOS 21.05" + nixpkgs: "21.05" - # - "nixos": - # name: "NixOS 21.11" - # nixpkgs: "21.11" + - "nixos": + name: "NixOS 21.11" + nixpkgs: "21.11" - # # Eventually, test against PyPy 3.8 - # #- "pypy27-buster": - # # {} + # Eventually, test against PyPy 3.8 + #- "pypy27-buster": + # {} - # # Other assorted tasks and configurations - # - "codechecks": - # {} - # - "pyinstaller": - # {} - # - "c-locale": - # {} - # # Any locale other than C or UTF-8. - # - "another-locale": - # {} + # Other assorted tasks and configurations + - "codechecks": + {} + - "pyinstaller": + {} + - "c-locale": + {} + # Any locale other than C or UTF-8. + - "another-locale": + {} - # - "integration": - # requires: - # # If the unit test suite doesn't pass, don't bother running the - # # integration tests. - # - "debian-11" + - "integration": + requires: + # If the unit test suite doesn't pass, don't bother running the + # integration tests. + - "debian-11" - # - "typechecks": - # {} - # - "docs": - # {} + - "typechecks": + {} + - "docs": + {} - # images: - # # Build the Docker images used by the ci jobs. This makes the ci jobs - # # faster and takes various spurious failures out of the critical path. - # triggers: - # # Build once a day - # - schedule: - # cron: "0 0 * * *" - # filters: - # branches: - # only: - # - "master" + images: + # Build the Docker images used by the ci jobs. This makes the ci jobs + # faster and takes various spurious failures out of the critical path. + triggers: + # Build once a day + - schedule: + cron: "0 0 * * *" + filters: + branches: + only: + - "master" - # jobs: + jobs: # Every job that pushes a Docker image from Docker Hub needs to provide # credentials. Use this first job to define a yaml anchor that can be # used to supply a CircleCI job context which makes Docker Hub From ea0426318ea695def6a66593ae44d372b17d194e Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 12 Dec 2022 10:02:43 -0500 Subject: [PATCH 07/10] news fragment --- newsfragments/3950.minor | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 newsfragments/3950.minor diff --git a/newsfragments/3950.minor b/newsfragments/3950.minor new file mode 100644 index 000000000..e69de29bb From b8680750daa6af924d4da4549780f9cdbc224605 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Mon, 12 Dec 2022 11:47:32 -0500 Subject: [PATCH 08/10] pin it in more places --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15e7d8fa4..c1e0c9391 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: - name: Install Python packages run: | - pip install --upgrade codecov tox tox-gh-actions setuptools + pip install --upgrade codecov "tox<4" tox-gh-actions setuptools pip list - name: Display tool versions @@ -199,7 +199,7 @@ jobs: - name: Install Python packages run: | - pip install --upgrade tox + pip install --upgrade "tox<4" pip list - name: Display tool versions @@ -247,7 +247,7 @@ jobs: - name: Install Python packages run: | - pip install --upgrade tox + pip install --upgrade "tox<4" pip list - name: Display tool versions From 8282fce4cdd574ec4b8cc849070ed4ac2ee03cc8 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 13 Dec 2022 08:57:21 -0500 Subject: [PATCH 09/10] build the images again --- .circleci/config.yml | 106 +++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d7e4f2563..89748c5aa 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,69 +14,69 @@ version: 2.1 workflows: ci: jobs: - # Start with jobs testing various platforms. - - "debian-10": - {} - - "debian-11": - {} + # # Start with jobs testing various platforms. + # - "debian-10": + # {} + # - "debian-11": + # {} - - "ubuntu-20-04": - {} - - "ubuntu-18-04": - requires: - - "ubuntu-20-04" + # - "ubuntu-20-04": + # {} + # - "ubuntu-18-04": + # requires: + # - "ubuntu-20-04" - # Equivalent to RHEL 8; CentOS 8 is dead. - - "oraclelinux-8": - {} + # # Equivalent to RHEL 8; CentOS 8 is dead. + # - "oraclelinux-8": + # {} - - "nixos": - name: "NixOS 21.05" - nixpkgs: "21.05" + # - "nixos": + # name: "NixOS 21.05" + # nixpkgs: "21.05" - - "nixos": - name: "NixOS 21.11" - nixpkgs: "21.11" + # - "nixos": + # name: "NixOS 21.11" + # nixpkgs: "21.11" - # Eventually, test against PyPy 3.8 - #- "pypy27-buster": - # {} + # # Eventually, test against PyPy 3.8 + # #- "pypy27-buster": + # # {} - # Other assorted tasks and configurations - - "codechecks": - {} - - "pyinstaller": - {} - - "c-locale": - {} - # Any locale other than C or UTF-8. - - "another-locale": - {} + # # Other assorted tasks and configurations + # - "codechecks": + # {} + # - "pyinstaller": + # {} + # - "c-locale": + # {} + # # Any locale other than C or UTF-8. + # - "another-locale": + # {} - - "integration": - requires: - # If the unit test suite doesn't pass, don't bother running the - # integration tests. - - "debian-11" + # - "integration": + # requires: + # # If the unit test suite doesn't pass, don't bother running the + # # integration tests. + # - "debian-11" - - "typechecks": - {} - - "docs": - {} + # - "typechecks": + # {} + # - "docs": + # {} - images: - # Build the Docker images used by the ci jobs. This makes the ci jobs - # faster and takes various spurious failures out of the critical path. - triggers: - # Build once a day - - schedule: - cron: "0 0 * * *" - filters: - branches: - only: - - "master" + # images: + # # Build the Docker images used by the ci jobs. This makes the ci jobs + # # faster and takes various spurious failures out of the critical path. + # triggers: + # # Build once a day + # - schedule: + # cron: "0 0 * * *" + # filters: + # branches: + # only: + # - "master" - jobs: + # jobs: # Every job that pushes a Docker image from Docker Hub needs to provide # credentials. Use this first job to define a yaml anchor that can be # used to supply a CircleCI job context which makes Docker Hub From 815c998c3323829f066752be0f3f707e2716a490 Mon Sep 17 00:00:00 2001 From: Jean-Paul Calderone Date: Tue, 13 Dec 2022 09:09:02 -0500 Subject: [PATCH 10/10] regular ci --- .circleci/config.yml | 106 +++++++++++++++++++++---------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 89748c5aa..d7e4f2563 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,69 +14,69 @@ version: 2.1 workflows: ci: jobs: - # # Start with jobs testing various platforms. - # - "debian-10": - # {} - # - "debian-11": - # {} + # Start with jobs testing various platforms. + - "debian-10": + {} + - "debian-11": + {} - # - "ubuntu-20-04": - # {} - # - "ubuntu-18-04": - # requires: - # - "ubuntu-20-04" + - "ubuntu-20-04": + {} + - "ubuntu-18-04": + requires: + - "ubuntu-20-04" - # # Equivalent to RHEL 8; CentOS 8 is dead. - # - "oraclelinux-8": - # {} + # Equivalent to RHEL 8; CentOS 8 is dead. + - "oraclelinux-8": + {} - # - "nixos": - # name: "NixOS 21.05" - # nixpkgs: "21.05" + - "nixos": + name: "NixOS 21.05" + nixpkgs: "21.05" - # - "nixos": - # name: "NixOS 21.11" - # nixpkgs: "21.11" + - "nixos": + name: "NixOS 21.11" + nixpkgs: "21.11" - # # Eventually, test against PyPy 3.8 - # #- "pypy27-buster": - # # {} + # Eventually, test against PyPy 3.8 + #- "pypy27-buster": + # {} - # # Other assorted tasks and configurations - # - "codechecks": - # {} - # - "pyinstaller": - # {} - # - "c-locale": - # {} - # # Any locale other than C or UTF-8. - # - "another-locale": - # {} + # Other assorted tasks and configurations + - "codechecks": + {} + - "pyinstaller": + {} + - "c-locale": + {} + # Any locale other than C or UTF-8. + - "another-locale": + {} - # - "integration": - # requires: - # # If the unit test suite doesn't pass, don't bother running the - # # integration tests. - # - "debian-11" + - "integration": + requires: + # If the unit test suite doesn't pass, don't bother running the + # integration tests. + - "debian-11" - # - "typechecks": - # {} - # - "docs": - # {} + - "typechecks": + {} + - "docs": + {} - # images: - # # Build the Docker images used by the ci jobs. This makes the ci jobs - # # faster and takes various spurious failures out of the critical path. - # triggers: - # # Build once a day - # - schedule: - # cron: "0 0 * * *" - # filters: - # branches: - # only: - # - "master" + images: + # Build the Docker images used by the ci jobs. This makes the ci jobs + # faster and takes various spurious failures out of the critical path. + triggers: + # Build once a day + - schedule: + cron: "0 0 * * *" + filters: + branches: + only: + - "master" - # jobs: + jobs: # Every job that pushes a Docker image from Docker Hub needs to provide # credentials. Use this first job to define a yaml anchor that can be # used to supply a CircleCI job context which makes Docker Hub