| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent ab6cdd3 commit 57cc270
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -34,6 +34,16 @@ jobs: | |||
| 34 | 34 | experimental: true | |
| 35 | 35 | - python-version: "3.15t" | |
| 36 | 36 | experimental: true | |
| 37 | + - os-type: ubuntu | ||
| 38 | + python-version: "3.12" | ||
| 39 | + backend: gix | ||
| 40 | + build-docs: false | ||
| 41 | + experimental: false | ||
| 42 | + - os-type: macos | ||
| 43 | + python-version: "3.12" | ||
| 44 | + backend: gix | ||
| 45 | + build-docs: false | ||
| 46 | + experimental: false | ||
| 37 | 47 | - os-type: windows | |
| 38 | 48 | python-version: "3.12" | |
| 39 | 49 | backend: gix | |
@@ -65,13 +75,27 @@ jobs: | |||
| 65 | 75 | test-requirements.txt | |
| 66 | 76 | gix-requirements.txt | |
| 67 | 77 | ||
| 68 | - - name: Prepare Rust for GixPython's Windows source build | ||
| 78 | + - name: Prepare Rust for GixPython source builds | ||
| 69 | 79 | if: matrix.backend == 'gix' | |
| 80 | + id: rust | ||
| 70 | 81 | run: | | |
| 71 | 82 | # GixPython 0.1.0 publishes macOS wheels only and needs Rust >= 1.89. | |
| 72 | 83 | rustup toolchain install stable --profile minimal | |
| 73 | 84 | rustup default stable | |
| 74 | 85 | rustc --version | |
| 86 | + echo "version=$(rustc --version)" >> "$GITHUB_OUTPUT" | ||
| 87 | + | ||
| 88 | + - name: Cache GixPython Cargo dependencies and build output | ||
| 89 | + if: matrix.backend == 'gix' | ||
| 90 | + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 | ||
| 91 | + with: | ||
| 92 | + path: | | ||
| 93 | + ~/.cargo/registry | ||
| 94 | + ~/.cargo/git | ||
| 95 | + ${{ runner.temp }}/gix-target | ||
| 96 | + key: gix-${{ runner.os }}-${{ runner.arch }}-py${{ matrix.python-version }}-${{ steps.rust.outputs.version }}-${{ hashFiles('gix-requirements.txt') }} | ||
| 97 | + restore-keys: | | ||
| 98 | + gix-${{ runner.os }}-${{ runner.arch }}-py${{ matrix.python-version }}-${{ steps.rust.outputs.version }}- | ||
| 75 | 99 | ||
| 76 | 100 | - name: Set up WSL (Windows) | |
| 77 | 101 | if: matrix.os-type == 'windows' | |
@@ -115,6 +139,8 @@ jobs: | |||
| 115 | 139 | env: | |
| 116 | 140 | EXTRAS: ${{ matrix.backend == 'gix' && 'test,gix' || 'test' }} | |
| 117 | 141 | EXPECTED_BACKEND: ${{ matrix.backend }} | |
| 142 | + # Keep Cargo output when pip removes its temporary source directory. | ||
| 143 | + CARGO_TARGET_DIR: ${{ runner.temp }}/gix-target | ||
| 118 | 144 | ||
| 119 | 145 | - name: Show POSIX file ownership | |
| 120 | 146 | # Linux and macOS only. On Windows, Git Bash's `ls -ld` reports a | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -18,8 +18,9 @@ uv pip install --python .tox/gix/bin/python --editable '.[test,gix]' | |||
| 18 | 18 | ||
| 19 | 19 | GixPython 0.1.0 publishes macOS wheels. On Windows and Linux, installation | |
| 20 | 20 | builds the released source distribution and requires Rust 1.89 or newer and | |
| 21 | - a platform C/C++ toolchain. Windows CI uses the runner's MSVC tools and a | ||
| 22 | - stable Rust toolchain, with pip's built-wheel cache enabled. | ||
| 21 | + a platform C/C++ toolchain. The full-suite Gix CI jobs prepare a stable Rust | ||
| 22 | + toolchain and cache pip's built wheels, Cargo dependencies and compilation | ||
| 23 | + output. | ||
| 23 | 24 | ||
| 24 | 25 | Python extras add dependencies; they do not leave a runtime feature bit. | |
| 25 | 26 | GitPython selects this backend when `gix` can be imported. Installing GixPython | |
@@ -848,16 +849,25 @@ Add each conversion with a no-subprocess check and a Git parity check where | |||
| 848 | 849 | practical, in its own commit. Update this ledger when a limitation changes; | |
| 849 | 850 | the runtime report's reason should point to the corresponding entry. | |
| 850 | 851 | ||
| 851 | - ## Windows validation | ||
| 852 | + ## CI coverage | ||
| 852 | 853 | ||
| 853 | - The [Python package workflow](../.github/workflows/pythonpackage.yml) adds a | ||
| 854 | - Windows/Python 3.12 Gix job while preserving all 28 CLI combinations and their | ||
| 855 | - existing check names. It installs `.[test,gix]`, verifies the selected backend | ||
| 856 | - and runs the full suite | ||
| 857 | - with the same coverage and pytest options. Every job retains JUnit results | ||
| 854 | + The [Python package workflow](../.github/workflows/pythonpackage.yml) adds one | ||
| 855 | + Python 3.12 Gix job each on Ubuntu, macOS and Windows, preserving all 28 CLI | ||
| 856 | + combinations and their existing check names. It installs `.[test,gix]`, verifies | ||
| 857 | + the selected backend and runs the full suite with the same coverage and pytest | ||
| 858 | + options. Every job retains JUnit results | ||
| 858 | 859 | and `--backend-report` operation counts under its `tests-OS-PYTHON-BACKEND` | |
| 859 | - artifact, and prints the 30 slowest test durations. The extra Gix job does not | ||
| 860 | - duplicate the documentation build. | ||
| 860 | + artifact, and prints the 30 slowest test durations. The extra Gix jobs do not | ||
| 861 | + duplicate the documentation build. Their check names include `gix`, such as | ||
| 862 | + `test (ubuntu, 3.12, gix)`. | ||
| 863 | + | ||
| 864 | + On platforms without a matching wheel, pip builds the official source release. | ||
| 865 | + `CARGO_TARGET_DIR` keeps compilation output outside pip's temporary source | ||
| 866 | + directory. The Cargo cache distinguishes OS, architecture, Python and Rust | ||
| 867 | + versions and `gix-requirements.txt`; a release change can reuse dependencies | ||
| 868 | + from the same platform and toolchain. | ||
| 869 | + | ||
| 870 | + ## Windows validation | ||
| 861 | 871 | ||
| 862 | 872 | Local Windows checks use CPython 3.12.13, Git 2.55.0.windows.3 and GixPython | |
| 863 | 873 | 0.1.0 built from the released source distribution. The installed extension | |
| Back | FazBrowse Home | New Git URL |
0 commit comments