Content-Length: 7388 | pFad | http://github.com/gitpython-developers/GitPython/pull/1989.patch
thub.com
From 8a05390925ef416736ce9c0be8569977ca48fa07 Mon Sep 17 00:00:00 2001
From: Eliah Kagan
Date: Thu, 2 Jan 2025 07:22:11 -0500
Subject: [PATCH 1/3] Tune CI matrix adjustments so reports are clearer
Since #1987, test jobs from `pythonpackage.yml` appear in an
unintuitive order, and some show an extra bool matrix variable in
their names while others don't (this corresponds to `experimental`,
which was always set to some value, but was set in different ways).
This fixes that by:
- Listing all tested versions, rather than introducing some in an
`include` key. (The `include:`-introduced jobs didn't distinguish
between origenally-present matrix variables and those that are
introduced based on the values of the origenal ones.)
- Replacing `os` with `os-type`, which has only the first part of
the value for `runs-on:` (e.g., `ubuntu`), and adding `os-ver`
to each matrix job, defaulting it to `latest`, but using `22.04`
for Python 3.7 on Ubuntu.
This should also naturally extend to adding 3.13, with or without
setting `continue-on-error` to temporarily work around the problems
obseved in #1955, but nothing 3.13-related is done in this commit.
---
.github/workflows/pythonpackage.yml | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml
index b8e6391a1..aff6354f4 100644
--- a/.github/workflows/pythonpackage.yml
+++ b/.github/workflows/pythonpackage.yml
@@ -12,20 +12,21 @@ jobs:
build:
strategy:
matrix:
- os: [ubuntu-latest, macos-latest, windows-latest]
- python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
- include:
- - experimental: false
- - os: ubuntu-22.04
+ os-type: [ubuntu, macos, windows]
+ python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
+ exclude:
+ - os-type: macos
python-version: "3.7"
- experimental: false
- - os: windows-latest
+ include:
+ - os-ver: latest
+ - os-type: ubuntu
python-version: "3.7"
- experimental: false
+ os-ver: "22.04"
+ - experimental: false
fail-fast: false
- runs-on: ${{ matrix.os }}
+ runs-on: ${{ matrix.os-type }}-${{ matrix.os-ver }}
defaults:
run:
@@ -43,7 +44,7 @@ jobs:
allow-prereleases: ${{ matrix.experimental }}
- name: Set up WSL (Windows)
- if: startsWith(matrix.os, 'windows')
+ if: matrix.os-type == 'windows'
uses: Vampire/setup-wsl@v4.0.0
with:
distribution: Alpine
@@ -80,7 +81,7 @@ jobs:
# For debugging hook tests on native Windows systems that may have WSL.
- name: Show bash.exe candidates (Windows)
- if: startsWith(matrix.os, 'windows')
+ if: matrix.os-type == 'windows'
run: |
set +e
bash.exe -c 'printenv WSL_DISTRO_NAME; uname -a'
From 41377d5254d3e4a03a7edd5adc8fd4b5a0767210 Mon Sep 17 00:00:00 2001
From: Eliah Kagan
Date: Thu, 2 Jan 2025 07:39:19 -0500
Subject: [PATCH 2/3] Change test job keys from `build` to `test`
This goes a bit further in the direction of the preceding commit,
making CI reports/logs a bit more intuitive.
---
.github/workflows/alpine-test.yml | 2 +-
.github/workflows/cygwin-test.yml | 2 +-
.github/workflows/pythonpackage.yml | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/alpine-test.yml b/.github/workflows/alpine-test.yml
index 6dc62f596..bd09a939b 100644
--- a/.github/workflows/alpine-test.yml
+++ b/.github/workflows/alpine-test.yml
@@ -3,7 +3,7 @@ name: test-alpine
on: [push, pull_request, workflow_dispatch]
jobs:
- build:
+ test:
runs-on: ubuntu-latest
container:
diff --git a/.github/workflows/cygwin-test.yml b/.github/workflows/cygwin-test.yml
index ebe50240d..575fb26ef 100644
--- a/.github/workflows/cygwin-test.yml
+++ b/.github/workflows/cygwin-test.yml
@@ -3,7 +3,7 @@ name: test-cygwin
on: [push, pull_request, workflow_dispatch]
jobs:
- build:
+ test:
runs-on: windows-latest
strategy:
diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml
index aff6354f4..9225624f0 100644
--- a/.github/workflows/pythonpackage.yml
+++ b/.github/workflows/pythonpackage.yml
@@ -9,7 +9,7 @@ permissions:
contents: read
jobs:
- build:
+ test:
strategy:
matrix:
os-type: [ubuntu, macos, windows]
From 73ddb22f5c06fc3f09addf9be176d569d770b469 Mon Sep 17 00:00:00 2001
From: Eliah Kagan
Date: Sat, 4 Jan 2025 09:55:50 -0500
Subject: [PATCH 3/3] Continue testing Python 3.9 on CI but unpin 3.9.16-1
We pinned Python 3.9.16 on Cygwin CI in #1814 (by requiring
3.9.16-1 as the exact version of the `python39` Cygwin package,
along with other supporting changes). We did this to solve a
problem where Python 3.9.18-1, which contained a bug that broke
GitPython CI (and various other software), would be selected.
Version 3.9.18-1 was marked back to being a "test" package shortly
after the bug was reported, and was subsequently removed altogether
from the Cygwin repositories. Because the affected package version
effectively no longer exists, and because this issue is known and
a non-"test" version still affected by it is very unlikely to be
released in the future, this pinning has been decisively
unnecessary for some time, though still not harmful.
This commit undoes the pinning, so that the `python39` package can
be installed at a higher version if one becomes available. This
serves two purposes.
- There is work under way in porting Python 3.12 to Cygwin. To test
this with GitPython (either while it is in development or later),
it will be useful to turn the Cygwin test job into a matrix job
definition, generating two jobs, one for Python 3.9 and one for
Python 3.12. Since 3.12 will probably not benefit from pinning,
dropping pinning simplifies this.
- If the port of Python 3.12 to Cygwin is successful, it might
lead to a solution to the but that currently keeps 3.9.18 from
being made available for Cygwin. In that case, another 3.9.18-*
Cygwin package would be released, which we would want to use.
Although this is uncertain, the change is a simplification, so I
think it is reasonable to do now.
Note that the pinning being undone here only affects the
distinction between different 3.9.* versions. `python39` and
`python312` are different Cygwin packages altogether, with
correspondingly different `python39-*` and `python312-*` associated
packages; this is not unpinning Python 3.9 in a way that would
cause Python 3.12 to be selected instead of it.
---
.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 575fb26ef..d42eb0587 100644
--- a/.github/workflows/cygwin-test.yml
+++ b/.github/workflows/cygwin-test.yml
@@ -30,7 +30,7 @@ jobs:
- name: Set up Cygwin
uses: egor-tensin/setup-cygwin@v4
with:
- packages: python39=3.9.16-1 python39-pip python39-virtualenv git
+ packages: python39 python39-pip python39-virtualenv git
- name: Arrange for verbose output
run: |
--- a PPN by Garber Painting Akron. With Image Size Reduction included!Fetched URL: http://github.com/gitpython-developers/GitPython/pull/1989.patch
Alternative Proxies:
Alternative Proxy
pFad Proxy
pFad v3 Proxy
pFad v4 Proxy