diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0bd8ef3e..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 @@ -236,7 +228,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 +280,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 +308,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,13 +336,10 @@ 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 - # 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 @@ -364,7 +352,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 @@ -374,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 @@ -400,9 +386,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 +410,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