From 04292e546eeda33303b6559f83310fa856351dab Mon Sep 17 00:00:00 2001 From: joncrall Date: Fri, 31 Oct 2025 18:40:57 -0400 Subject: [PATCH 1/2] Changes to minimize xcookie diff --- .github/workflows/tests.yml | 14 ++++++++------ pyproject.toml | 7 ++++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0bd8ef3e..f08ca5b6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -236,7 +236,6 @@ jobs: install-extras: tests-strict,runtime-strict os: windows-latest arch: auto - # Note: cibuildwheel can't target 3.8 on Window ARM64 - python-version: '3.13' install-extras: tests-strict,runtime-strict,optional-strict os: ubuntu-latest @@ -289,7 +288,7 @@ jobs: install-extras: tests,optional os: ubuntu-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: ubuntu-latest arch: auto @@ -317,7 +316,7 @@ jobs: install-extras: tests,optional os: macOS-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: macOS-latest arch: auto @@ -345,7 +344,7 @@ jobs: install-extras: tests,optional os: windows-latest arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: windows-latest arch: auto @@ -364,7 +363,7 @@ jobs: install-extras: tests,optional os: windows-11-arm arch: auto - - python-version: 3.14.0-rc.1 + - python-version: '3.14' install-extras: tests,optional os: windows-11-arm arch: auto @@ -400,9 +399,11 @@ jobs: run: |- echo "Finding the path to the wheel" ls wheelhouse || echo "wheelhouse does not exist" - echo "Installing helpers" + echo "Installing helpers: update pip" python -m pip install pip uv -U + echo "Installing helpers: setuptools" python -m uv pip install setuptools>=0.8 setuptools_scm wheel build -U + echo "Installing helpers: tomli and pkginfo" python -m uv pip install tomli pkginfo export WHEEL_FPATH=$(python -c "if 1: import pathlib @@ -422,6 +423,7 @@ jobs: ") echo "WHEEL_FPATH=$WHEEL_FPATH" echo "INSTALL_EXTRAS=$INSTALL_EXTRAS" + echo "UV_RESOLUTION=$UV_RESOLUTION" echo "MOD_VERSION=$MOD_VERSION" python -m uv pip install "line_profiler[$INSTALL_EXTRAS]==$MOD_VERSION" -f wheelhouse echo "Install finished." diff --git a/pyproject.toml b/pyproject.toml index 52511799..74ffac68 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ omit =[ [tool.cibuildwheel] build = "cp38-* cp39-* cp310-* cp311-* cp312-* cp313-* cp314-*" -skip = ["*-win32", "cp313-musllinux_i686"] +skip = ["*-win32", "cp3{9,10}-win_arm64", "cp313-musllinux_i686"] build-frontend = "build" build-verbosity = 1 test-command = "python {project}/run_tests.py" @@ -53,7 +53,9 @@ mod_name = "line_profiler" repo_name = "line_profiler" rel_mod_parent_dpath = "." os = [ "all", "linux", "osx", "win",] +main_python = '3.13' min_python = '3.8' +max_python = '3.14' author = "Robert Kern" author_email = "robert.kern@enthought.com" description = "Line-by-line profiler" @@ -62,6 +64,9 @@ license = "BSD" dev_status = "stable" typed = true skip_autogen = ["MANIFEST.in", "CHANGELOG.md"] +test_env = """ +COVERAGE_CORE: ctrace +""" [tool.xcookie.entry_points] # the console_scripts entry point creates the xdoctest executable From 73f5f6c881e4052fa2c564a0604b31c6b0ba8e67 Mon Sep 17 00:00:00 2001 From: joncrall Date: Fri, 31 Oct 2025 18:41:38 -0400 Subject: [PATCH 2/2] use xcookie with updates so it can generate the current ci script --- .github/workflows/tests.yml | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f08ca5b6..41fc3661 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -128,10 +128,6 @@ jobs: - ubuntu-latest - macOS-latest - windows-latest - # Since the oldest Python available on windows-11-arm on GitHub - # is 3.11.0 (see https://raw.githubusercontent.com/actions/\ - # python-versions/main/versions-manifest.json), older wheels - # cannot be tested... so just skip pre-building them cibw_skip: - '*-win32 cp3{9,10}-win_arm64 cp313-musllinux_i686' arch: @@ -142,6 +138,8 @@ jobs: - name: Enable MSVC 64bit uses: ilammy/msvc-dev-cmd@v1 if: ${{ startsWith(matrix.os, 'windows-') }} && ${{ contains(matrix.cibw_skip, '*-win32') }} + with: + arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 if: runner.os == 'Linux' && matrix.arch != 'auto' @@ -154,16 +152,10 @@ jobs: config-file: pyproject.toml env: CIBW_SKIP: ${{ matrix.cibw_skip }} - # We're building on Windows-x64, so ARM64 wheels can't be tested - # locally by `cibuildwheel` (don't worry, we're testing them - # later though in `test_binpy_wheels`) CIBW_TEST_SKIP: '*-win_arm64' CIBW_ARCHS_LINUX: ${{ matrix.arch }} CIBW_ENVIRONMENT: PYTHONUTF8=1 PYTHONUTF8: '1' - # `msvc-dev-cmd` sets this envvar, which interferes with - # cross-architecture building... - # just let `cibuildwheel` handle that VSCMD_ARG_TGT_ARCH: '' - name: Show built files shell: bash @@ -348,9 +340,6 @@ jobs: install-extras: tests,optional os: windows-latest arch: auto - # Again, cibuildwheel can't target 3.8 on Window ARM64, and - # GitHub doesn't have anything below Python 3.11 on their ARM64 - # machines, so just test the built wheels from 3.11+ - python-version: '3.11' install-extras: tests,optional os: windows-11-arm @@ -373,8 +362,6 @@ jobs: - name: Enable MSVC 64bit uses: ilammy/msvc-dev-cmd@v1 if: ${{ startsWith(matrix.os, 'windows-') }} - # As noted in msvc-dev-cmd #90 (and the Action docs), it currently - # # assumes `arch=x64`, so we have to manually set it here... with: arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }} - name: Set up QEMU