Skip to content

Commit f93ddb2

Browse files
committed
Update version of python, add more coverage to macos, trying to solve issue in Python 3.13.
1 parent 7b71fbc commit f93ddb2

File tree

3 files changed

+22
-9
lines changed

3 files changed

+22
-9
lines changed

.github/workflows/macos-test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@ concurrency:
1717
jobs:
1818
macos-test:
1919
name: MacOS Clang Test
20-
runs-on: macos-latest
20+
runs-on: ${{ matrix.os }}
2121

2222
strategy:
2323
fail-fast: false
2424
matrix:
25+
os: [macos-13, macos-14, macos-15]
2526
options: [
2627
{build: debug, sanitizer: without-sanitizer},
2728
{build: debug, sanitizer: address-sanitizer},

source/loaders/py_loader/source/py_loader_impl.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@
4545

4646
#include <Python.h>
4747

48+
#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 13
49+
#ifndef Py_BUILD_CORE
50+
#define Py_BUILD_CORE
51+
#endif
52+
#include <internal/pycore_dict.h>
53+
#endif
54+
4855
#define PY_LOADER_IMPL_FUNCTION_TYPE_INVOKE_FUNC "__py_loader_impl_function_type_invoke__"
4956
#define PY_LOADER_IMPL_FINALIZER_FUNC "__py_loader_impl_finalizer__"
5057

@@ -287,7 +294,10 @@ static PyTypeObject py_loader_impl_dict_type = {
287294
0, /* tp_finalize */
288295
0, /* tp_vectorcall */
289296
#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 12
290-
0 /* tp_watched */
297+
0, /* tp_watched */
298+
#endif
299+
#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 13
300+
0, /* tp_versions_used */
291301
#endif
292302
};
293303

tools/metacall-environment.sh

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -177,8 +177,10 @@ sub_python(){
177177
brew install pyenv openssl
178178
export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig
179179
export PYTHON_CONFIGURE_OPTS="--enable-shared"
180-
pyenv install 3.11.1
181-
pyenv global 3.11.1
180+
PYTHON_VERSION_SMALL="3.13"
181+
PYTHON_VERSION="${PYTHON_VERSION_SMALL}.0"
182+
pyenv install ${PYTHON_VERSION}
183+
pyenv global ${PYTHON_VERSION}
182184
pyenv rehash
183185
mkdir -p "$ROOT_DIR/build"
184186
CMAKE_CONFIG_PATH="$ROOT_DIR/build/CMakeConfig.txt"
@@ -187,11 +189,11 @@ sub_python(){
187189
echo eval "$(pyenv init -)" >> $ENV_FILE
188190
. $ENV_FILE
189191

190-
echo "-DPython3_INCLUDE_DIRS=$HOME/.pyenv/versions/3.11.1/include/python3.11" >> $CMAKE_CONFIG_PATH
191-
echo "-DPython3_LIBRARY=$HOME/.pyenv/versions/3.11.1/lib/libpython3.11.dylib" >> $CMAKE_CONFIG_PATH
192-
echo "-DPython3_EXECUTABLE=$HOME/.pyenv/versions/3.11.1/bin/python3.11" >> $CMAKE_CONFIG_PATH
193-
echo "-DPython3_ROOT=$HOME/.pyenv/versions/3.11.1" >> $CMAKE_CONFIG_PATH
194-
echo "-DPython3_VERSION=3.11.1" >> $CMAKE_CONFIG_PATH
192+
echo "-DPython3_INCLUDE_DIRS=$HOME/.pyenv/versions/${PYTHON_VERSION}/include/python${PYTHON_VERSION_SMALL}" >> $CMAKE_CONFIG_PATH
193+
echo "-DPython3_LIBRARY=$HOME/.pyenv/versions/${PYTHON_VERSION}/lib/libpython${PYTHON_VERSION_SMALL}.dylib" >> $CMAKE_CONFIG_PATH
194+
echo "-DPython3_EXECUTABLE=$HOME/.pyenv/versions/${PYTHON_VERSION}/bin/python${PYTHON_VERSION_SMALL}" >> $CMAKE_CONFIG_PATH
195+
echo "-DPython3_ROOT=$HOME/.pyenv/versions/${PYTHON_VERSION}" >> $CMAKE_CONFIG_PATH
196+
echo "-DPython3_VERSION=${PYTHON_VERSION}" >> $CMAKE_CONFIG_PATH
195197
echo "-DPython3_FIND_FRAMEWORK=NEVER" >> $CMAKE_CONFIG_PATH
196198

197199
pip3 install requests

0 commit comments

Comments
 (0)