Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bot] Update dependencies #2253

Merged
merged 3 commits into from
Jan 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ jobs:
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
# This should be temporary
# xref https://github.com/docker/setup-qemu-action/issues/188
# xref https://github.com/tonistiigi/binfmt/issues/215
image: tonistiigi/binfmt:qemu-v8.1.5

- name: Install dependencies
run: |
Expand Down Expand Up @@ -165,6 +170,11 @@ jobs:

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
# This should be temporary
# xref https://github.com/docker/setup-qemu-action/issues/188
# xref https://github.com/tonistiigi/binfmt/issues/215
image: tonistiigi/binfmt:qemu-v8.1.5

- name: Run the emulation tests
run: uv run pytest --run-emulation ${{ matrix.arch }} test/test_emulation.py
Expand Down
6 changes: 3 additions & 3 deletions cibuildwheel/resources/constraints-pyodide312.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ cmake==3.31.4
# via pyodide-build
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
h11==0.14.0
# via httpcore
Expand All @@ -48,11 +48,11 @@ packaging==24.2
# build
# pyodide-build
# unearth
pip==24.3.1
pip==25.0
# via -r .nox/update_constraints/tmp/constraints-pyodide.in
platformdirs==4.3.6
# via virtualenv
pydantic==2.10.5
pydantic==2.10.6
# via
# pyodide-build
# pyodide-lock
Expand Down
6 changes: 3 additions & 3 deletions cibuildwheel/resources/constraints-python310.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
importlib-metadata==8.5.0
importlib-metadata==8.6.1
# via build
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
4 changes: 2 additions & 2 deletions cibuildwheel/resources/constraints-python311.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
4 changes: 2 additions & 2 deletions cibuildwheel/resources/constraints-python312.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
4 changes: 2 additions & 2 deletions cibuildwheel/resources/constraints-python313.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
2 changes: 1 addition & 1 deletion cibuildwheel/resources/constraints-python38.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
6 changes: 3 additions & 3 deletions cibuildwheel/resources/constraints-python39.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
importlib-metadata==8.5.0
importlib-metadata==8.6.1
# via build
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
4 changes: 2 additions & 2 deletions cibuildwheel/resources/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@ delocate==0.12.0
# via -r cibuildwheel/resources/constraints.in
distlib==0.3.9
# via virtualenv
filelock==3.16.1
filelock==3.17.0
# via virtualenv
macholib==1.16.3
# via delocate
packaging==24.2
# via
# build
# delocate
pip==24.3.1
pip==25.0
# via -r cibuildwheel/resources/constraints.in
platformdirs==4.3.6
# via virtualenv
Expand Down
4 changes: 2 additions & 2 deletions cibuildwheel/resources/nodejs.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
url = "https://nodejs.org/dist/"
v22 = "v22.13.0"
v20 = "v20.18.1"
v22 = "v22.13.1"
v20 = "v20.18.2"
54 changes: 27 additions & 27 deletions cibuildwheel/resources/pinned_docker_images.cfg
Original file line number Diff line number Diff line change
@@ -1,64 +1,64 @@
[x86_64]
manylinux1 = quay.io/pypa/manylinux1_x86_64:2024-04-29-76807b8
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.01.24-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_x86_64:2024.10.26-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.01.19-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_x86_64:2025.01.24-1

[i686]
manylinux1 = quay.io/pypa/manylinux1_i686:2024-04-29-76807b8
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463
musllinux_1_1 = quay.io/pypa/musllinux_1_1_i686:2024.10.26-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.01.19-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_i686:2025.01.24-1

[pypy_x86_64]
manylinux2010 = quay.io/pypa/manylinux2010_x86_64:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_x86_64:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_x86_64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_x86_64:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_x86_64:2025.01.24-1

[pypy_i686]
manylinux2010 = quay.io/pypa/manylinux2010_i686:2022-08-05-4535177
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_i686:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_i686:2022-12-26-0d38463

[aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.01.24-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_aarch64:2024.10.26-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.01.19-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_aarch64:2025.01.24-1

[ppc64le]
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_ppc64le:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_ppc64le:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_ppc64le:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_ppc64le:2025.01.24-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_ppc64le:2024.10.26-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.01.19-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_ppc64le:2025.01.24-1

[s390x]
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_s390x:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_s390x:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_s390x:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_s390x:2025.01.24-1
musllinux_1_1 = quay.io/pypa/musllinux_1_1_s390x:2024.10.26-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.01.19-2
musllinux_1_2 = quay.io/pypa/musllinux_1_2_s390x:2025.01.24-1

[pypy_aarch64]
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.01.19-2
manylinux2014 = quay.io/pypa/manylinux2014_aarch64:2025.01.24-1
manylinux_2_24 = quay.io/pypa/manylinux_2_24_aarch64:2022-12-26-0d38463
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.01.19-2
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.01.19-2
manylinux_2_28 = quay.io/pypa/manylinux_2_28_aarch64:2025.01.24-1
manylinux_2_34 = quay.io/pypa/manylinux_2_34_aarch64:2025.01.24-1

[armv7l]
manylinux_2_31 = ghcr.io/mayeut/manylinux_2_31:2025.01.19-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.01.19-2
manylinux_2_31 = ghcr.io/mayeut/manylinux_2_31:2025.01.25-1
musllinux_1_2 = quay.io/pypa/musllinux_1_2_armv7l:2025.01.24-1

8 changes: 4 additions & 4 deletions docs/working-examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ title: Working examples
| [coverage.py][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | The coverage tool for Python |
| [PyCryptodome][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | A self-contained cryptographic library for Python |
| [Line Profiler][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Line-by-line profiling for Python |
| [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML |
| [PyAV][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Pythonic bindings for FFmpeg's libraries. |
| [PyYAML][] | ![github icon][] | ![apple icon][] | Canonical source repository for PyYAML |
| [numexpr][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast numerical array expression evaluator for Python, NumPy, Pandas, PyTables and more |
| [pikepdf][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | A Python library for reading and writing PDF, powered by QPDF |
| [h5py][] | ![azurepipelines icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | HDF5 for Python -- The h5py package is a Pythonic interface to the HDF5 binary data format. |
Expand Down Expand Up @@ -92,8 +92,8 @@ title: Working examples
| [iDynTree][] | ![github icon][] | ![linux icon][] | Uses manylinux_2_24 |
| [Confluent client for Kafka][] | ![travisci icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | setup in `tools/wheels/build-wheels.bat` |
| [streaming-form-data][] | ![github icon][] | ![apple icon][] ![linux icon][] ![windows icon][] | Streaming parser for multipart/form-data written in Cython |
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
| [power-grid-model][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Python/C++ library for distribution power system analysis |
| [bx-python][] | ![travisci icon][] | ![apple icon][] ![linux icon][] | A library that includes Cython extensions. |
| [pybase64][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Fast Base64 encoding/decoding in Python |
| [boost-histogram][] | ![github icon][] ![travisci icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | Supports full range of wheels, including PyPy and alternate archs. |
| [Python-WebRTC][] | ![github icon][] | ![windows icon][] ![apple icon][] ![linux icon][] | a Python extension that provides bindings to WebRTC M92 |
Expand Down Expand Up @@ -157,8 +157,8 @@ title: Working examples
[coverage.py]: https://github.com/nedbat/coveragepy
[PyCryptodome]: https://github.com/Legrandin/pycryptodome
[Line Profiler]: https://github.com/pyutils/line_profiler
[PyYAML]: https://github.com/yaml/pyyaml
[PyAV]: https://github.com/PyAV-Org/PyAV
[PyYAML]: https://github.com/yaml/pyyaml
[numexpr]: https://github.com/pydata/numexpr
[pikepdf]: https://github.com/pikepdf/pikepdf
[h5py]: https://github.com/h5py/h5py
Expand Down Expand Up @@ -202,8 +202,8 @@ title: Working examples
[iDynTree]: https://github.com/robotology/idyntree
[Confluent client for Kafka]: https://github.com/confluentinc/confluent-kafka-python
[streaming-form-data]: https://github.com/siddhantgoel/streaming-form-data
[bx-python]: https://github.com/bxlab/bx-python
[power-grid-model]: https://github.com/PowerGridModel/power-grid-model
[bx-python]: https://github.com/bxlab/bx-python
[pybase64]: https://github.com/mayeut/pybase64
[boost-histogram]: https://github.com/scikit-hep/boost-histogram
[Python-WebRTC]: https://github.com/MarshalX/python-webrtc
Expand Down
39 changes: 23 additions & 16 deletions unit_test/oci_container_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import subprocess
import sys
import textwrap
import time
from contextlib import nullcontext
from pathlib import Path, PurePath, PurePosixPath

Expand Down Expand Up @@ -138,33 +139,39 @@ def test_cwd(container_engine):
assert container.call(["pwd"], capture_output=True, cwd="/opt") == "/opt\n"


@pytest.mark.skipif(
pm == "s390x" and detect_ci_provider() == CIProvider.travis_ci,
reason="test is flaky on this platform, see https://github.com/pypa/cibuildwheel/pull/1961#issuecomment-2334678966",
)
def test_container_removed(container_engine):
# test is flaky on some platforms, implement retry for 5 second
timeout = 50 # * 100 ms = 5s
with OCIContainer(
engine=container_engine, image=DEFAULT_IMAGE, oci_platform=DEFAULT_OCI_PLATFORM
) as container:
assert container.name is not None
container_name = container.name
for _ in range(timeout):
docker_containers_listing = subprocess.run(
f"{container.engine.name} container ls",
shell=True,
check=True,
stdout=subprocess.PIPE,
text=True,
).stdout
if container_name in docker_containers_listing:
break
time.sleep(0.1)
assert container_name in docker_containers_listing

for _ in range(timeout):
docker_containers_listing = subprocess.run(
f"{container.engine.name} container ls",
shell=True,
check=True,
stdout=subprocess.PIPE,
text=True,
).stdout
assert container.name is not None
assert container.name in docker_containers_listing
old_container_name = container.name

docker_containers_listing = subprocess.run(
f"{container.engine.name} container ls",
shell=True,
check=True,
stdout=subprocess.PIPE,
text=True,
).stdout
assert old_container_name not in docker_containers_listing
if container_name not in docker_containers_listing:
break
time.sleep(0.1)
assert container_name not in docker_containers_listing


def test_large_environment(container_engine):
Expand Down
Loading