Skip to content

Commit 0983f6f

Browse files
authored
Merge pull request #1564 from mayeut/cpython-3.13
feat: add CPython 3.13 `--disable-gil` build
2 parents 87001e7 + 5be1d79 commit 0983f6f

File tree

5 files changed

+21
-21
lines changed

5 files changed

+21
-21
lines changed

docker/Dockerfile

+5
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ FROM build_cpython AS build_cpython313
141141
COPY build_scripts/cpython-pubkey-312-313.txt /build_scripts/cpython-pubkeys.txt
142142
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.13.0b1
143143

144+
FROM build_cpython AS build_cpython313_nogil
145+
COPY build_scripts/cpython-pubkey-312-313.txt /build_scripts/cpython-pubkeys.txt
146+
RUN manylinux-entrypoint /build_scripts/build-cpython.sh 3.13.0b1 nogil
147+
144148

145149
FROM runtime_base
146150
COPY --from=build_git /manylinux-rootfs /
@@ -154,6 +158,7 @@ RUN --mount=type=bind,target=/build_cpython36,from=build_cpython36 \
154158
--mount=type=bind,target=/build_cpython311,from=build_cpython311 \
155159
--mount=type=bind,target=/build_cpython312,from=build_cpython312 \
156160
--mount=type=bind,target=/build_cpython313,from=build_cpython313 \
161+
--mount=type=bind,target=/build_cpython313_nogil,from=build_cpython313_nogil \
157162
mkdir -p /opt/_internal && \
158163
cp -rf /build_cpython*/opt/_internal/* /opt/_internal/ && \
159164
manylinux-entrypoint /opt/_internal/build_scripts/finalize.sh \

docker/build_scripts/requirements3.13.txt

+3-9
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,10 @@ packaging==24.0 \
77
--hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \
88
--hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9
99
# via build
10-
pip==24.0 \
11-
--hash=sha256:ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc \
12-
--hash=sha256:ea9bd1a847e8c5774a5777bb398c19e80bcd4e2aa16a4b301b718fe6f593aba2
10+
pip==24.1b1 \
11+
--hash=sha256:752516cffafef5cf29d3fb2f06c978f27e98709654689cf277b2fce984c7a591 \
12+
--hash=sha256:a9bd4c037d72325b4e903ec3f383263deea3eb73cd01db7a844edd026fc68afe
1313
pyproject-hooks==1.1.0 \
1414
--hash=sha256:4b37730834edbd6bd37f26ece6b44802fb1c1ee2ece0e54ddff8bfc06db86965 \
1515
--hash=sha256:7ceeefe9aec63a1064c18d939bdc3adf2d8aa1988a510afec15151578b232aa2
1616
# via build
17-
setuptools==69.5.1 \
18-
--hash=sha256:6c1fccdac05a97e598fb0ae3bbed5904ccb317337a51139dcd51453611bbb987 \
19-
--hash=sha256:c636ac361bc47580504644275c9ad802c50415c7522212252c033bd15f301f32
20-
wheel==0.43.0 \
21-
--hash=sha256:465ef92c69fa5c5da2d1cf8ac40559a8c940886afcef87dcf14b9470862f1d85 \
22-
--hash=sha256:55c570405f142630c6b9f72fe09d9b67cf1477fcf543ae5b8dcb1f5b7377da81

requirements.in

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
pip
2-
setuptools
3-
wheel
1+
pip>=24.1b1 ; python_version >= '3.13'
2+
pip ; python_version < '3.13'
3+
setuptools ; python_version < '3.13'
4+
wheel ; python_version < '3.13'
45
build
56
packaging

tests/manylinux-check.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
def is_manylinux1_compatible():
77
# Only Linux, and only x86-64 / i686
8-
from distutils.util import get_platform
8+
from sysconfig import get_platform
99
if get_platform() not in ["linux-x86_64", "linux-i686"]:
1010
return False
1111

@@ -23,7 +23,7 @@ def is_manylinux1_compatible():
2323

2424
def is_manylinux2010_compatible():
2525
# Only Linux, and only x86-64 / i686
26-
from distutils.util import get_platform
26+
from sysconfig import get_platform
2727
if get_platform() not in ["linux-x86_64", "linux-i686"]:
2828
return False
2929

@@ -41,7 +41,7 @@ def is_manylinux2010_compatible():
4141

4242
def is_manylinux2014_compatible():
4343
# Only Linux, and only supported architectures
44-
from distutils.util import get_platform
44+
from sysconfig import get_platform
4545
if get_platform() not in [
4646
"linux-x86_64",
4747
"linux-i686",

tests/run_tests.sh

+6-6
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ else
1818
fi
1919

2020
if [ "${AUDITWHEEL_POLICY:0:10}" == "musllinux_" ]; then
21-
EXPECTED_PYTHON_COUNT=8
22-
EXPECTED_PYTHON_COUNT_ALL=8
21+
EXPECTED_PYTHON_COUNT=9
22+
EXPECTED_PYTHON_COUNT_ALL=9
2323
else
2424
if [ "${AUDITWHEEL_ARCH}" == "x86_64" ] || [ "${AUDITWHEEL_ARCH}" == "i686" ] || [ "${AUDITWHEEL_ARCH}" == "aarch64" ]; then
25-
EXPECTED_PYTHON_COUNT=12
26-
EXPECTED_PYTHON_COUNT_ALL=12
25+
EXPECTED_PYTHON_COUNT=13
26+
EXPECTED_PYTHON_COUNT_ALL=13
2727
else
28-
EXPECTED_PYTHON_COUNT=8
29-
EXPECTED_PYTHON_COUNT_ALL=8
28+
EXPECTED_PYTHON_COUNT=9
29+
EXPECTED_PYTHON_COUNT_ALL=9
3030
fi
3131
fi
3232
PYTHON_COUNT=$(manylinux-interpreters list --installed | wc -l)

0 commit comments

Comments
 (0)