From de3328cb3b62258baaea23ef69be10c3bc6cf9af Mon Sep 17 00:00:00 2001 From: "Lee, Jeong Han" Date: Sat, 31 Aug 2024 21:13:06 -0700 Subject: [PATCH 1/7] pull_39, issues_37, debian 13 - gcc 14.2.0 compile error --- devsupApp/src/dbapi.c | 4 ++-- devsupApp/src/dbfield.c | 6 +++++- makehelper.py | 17 +++++++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/devsupApp/src/dbapi.c b/devsupApp/src/dbapi.c index f859cd6..ccbc69c 100644 --- a/devsupApp/src/dbapi.c +++ b/devsupApp/src/dbapi.c @@ -289,11 +289,11 @@ static struct PyMethodDef dbapimethod[] = { #if PY_MAJOR_VERSION >= 3 static struct PyModuleDef dbapimodule = { - PyModuleDef_HEAD_INIT, + PyModuleDef_HEAD_INIT, "devsup._dbapi", NULL, -1, - &dbapimethod + dbapimethod }; #endif diff --git a/devsupApp/src/dbfield.c b/devsupApp/src/dbfield.c index 4a03cba..1b5c9a8 100644 --- a/devsupApp/src/dbfield.c +++ b/devsupApp/src/dbfield.c @@ -40,6 +40,10 @@ static const int dbf2np_map[DBF_MENU+1] = { NPY_INT16, // DBF_MENU }; static PyArray_Descr* dbf2np[DBF_MENU+1]; +#if NPY_ABI_VERSION < 0x02000000 + #define PyDataType_ELSIZE(descr) ((descr)->elsize) + #define PyDataType_SET_ELSIZE(descr, size) (descr)->elsize = size +#endif #endif typedef struct { @@ -98,7 +102,7 @@ static PyObject* build_array(PyObject* obj, void *data, unsigned short ftype, un desc = dbf2np[ftype]; if(ftype==DBF_STRING) { - desc->elsize = MAX_STRING_SIZE; + PyDataType_SET_ELSIZE(desc, MAX_STRING_SIZE); } Py_XINCREF(desc); diff --git a/makehelper.py b/makehelper.py index ef36d63..8420df7 100644 --- a/makehelper.py +++ b/makehelper.py @@ -26,15 +26,24 @@ pass out = open(sys.argv[1], 'w') -from distutils.sysconfig import get_config_var, get_python_inc +if sys.version_info >= (3,10,): + from sysconfig import get_config_var, get_path + incdirs = [get_path("include")] +else: + from distutils.sysconfig import get_config_var, get_python_inc + incdirs = [get_python_inc()] -incdirs = [get_python_inc()] libdir = get_config_var('LIBDIR') or '' have_np='NO' try: - from numpy.distutils.misc_util import get_numpy_include_dirs - incdirs = get_numpy_include_dirs()+incdirs + if sys.version_info >= (3,10,): + from numpy import get_include + numpy_dir = [get_include()] + else: + from numpy.distutils.misc_util import get_numpy_include_dirs + numpy_dir = get_numpy_include_dirs() + incdirs = numpy_dir+incdirs have_np='YES' except ImportError: pass From 4e6f05551a3563c761d31108f6ae660f46087c43 Mon Sep 17 00:00:00 2001 From: "Lee, Jeong Han" Date: Sat, 31 Aug 2024 21:40:17 -0700 Subject: [PATCH 2/7] more clean up for makehelper.py --- makehelper.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/makehelper.py b/makehelper.py index 8420df7..144476c 100644 --- a/makehelper.py +++ b/makehelper.py @@ -26,6 +26,12 @@ pass out = open(sys.argv[1], 'w') +""" +3.2, sysconfig +3.10, sysconfig.get_pathi +3.10.13 distutils is deprecated. +3.12, distutils was removed. +""" if sys.version_info >= (3,10,): from sysconfig import get_config_var, get_path incdirs = [get_path("include")] @@ -36,13 +42,12 @@ libdir = get_config_var('LIBDIR') or '' have_np='NO' +""" +Since numpy 1.18, numpy.get_include() exists. +""" try: - if sys.version_info >= (3,10,): - from numpy import get_include - numpy_dir = [get_include()] - else: - from numpy.distutils.misc_util import get_numpy_include_dirs - numpy_dir = get_numpy_include_dirs() + from numpy import get_include + numpy_dir = [get_include()] incdirs = numpy_dir+incdirs have_np='YES' except ImportError: From 796f7d7af6367a8b622f14b5b01062726e5a8c90 Mon Sep 17 00:00:00 2001 From: "Lee, Jeong Han" Date: Sat, 31 Aug 2024 21:50:27 -0700 Subject: [PATCH 3/7] add the min. version of numpy to requirements-latest --- makehelper.py | 11 ++++++----- requirements-latest.txt | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/makehelper.py b/makehelper.py index 144476c..05fd147 100644 --- a/makehelper.py +++ b/makehelper.py @@ -27,10 +27,10 @@ out = open(sys.argv[1], 'w') """ -3.2, sysconfig -3.10, sysconfig.get_pathi -3.10.13 distutils is deprecated. -3.12, distutils was removed. +3.2 sysconfig +3.10 sysconfig.get_path +3.10.13 distutils is deprecated. +3.12 distutils was removed. """ if sys.version_info >= (3,10,): from sysconfig import get_config_var, get_path @@ -42,8 +42,9 @@ libdir = get_config_var('LIBDIR') or '' have_np='NO' + """ -Since numpy 1.18, numpy.get_include() exists. +numpy 1.18, numpy.get_include() """ try: from numpy import get_include diff --git a/requirements-latest.txt b/requirements-latest.txt index 99ce0ab..5b989fd 100644 --- a/requirements-latest.txt +++ b/requirements-latest.txt @@ -1,2 +1,2 @@ -numpy +numpy>=1.18 nose2 From 898bc8453fb813641b55bb0c49b0722ffd46ed83 Mon Sep 17 00:00:00 2001 From: Tynan Ford Date: Thu, 2 Oct 2025 01:18:17 -0700 Subject: [PATCH 4/7] update ci scripts version --- .ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci b/.ci index 899b183..4e4f33e 160000 --- a/.ci +++ b/.ci @@ -1 +1 @@ -Subproject commit 899b18336b4ce3bd9328fd30c33621224c78a4d7 +Subproject commit 4e4f33e54f59343c77342200a95800073661e7ac From fa45a3c5dbfdfe7c4dc4bef522a94ba5b7f2426f Mon Sep 17 00:00:00 2001 From: Tynan Ford Date: Thu, 2 Oct 2025 01:21:54 -0700 Subject: [PATCH 5/7] Update CI jobs to include deb 11, 12, 13 and py3.6 to py3.13 --- .github/workflows/ci-scripts-build.yml | 73 +++++++++++++++++++++++++- requirements-deb11.txt | 2 + requirements-deb12.txt | 2 + requirements-deb13.txt | 2 + 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 requirements-deb11.txt create mode 100644 requirements-deb12.txt create mode 100644 requirements-deb13.txt diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml index 6729366..86b13bc 100644 --- a/.github/workflows/ci-scripts-build.yml +++ b/.github/workflows/ci-scripts-build.yml @@ -11,8 +11,9 @@ env: jobs: build-base: - name: ${{ matrix.base }}/${{ matrix.os }}/${{ matrix.python }}/${{ matrix.extra }} + name: ${{ matrix.base }}/${{ matrix.os }}/${{ matrix.profile }}/${{ matrix.python }}/${{ matrix.extra }} runs-on: ${{ matrix.os }} + container: ${{ matrix.container }} # Set environment variables from matrix parameters env: CMP: ${{ matrix.cmp }} @@ -33,6 +34,49 @@ jobs: base: "7.0" python: "3.7" profile: deb10 + container: "python:3.7" + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.9" + profile: deb11 + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.11" + profile: deb12 + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.13" + profile: deb13 + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.6" + container: "python:3.6" + profile: latest + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.7" + container: "python:3.7" + profile: latest test: yes - os: ubuntu-latest @@ -59,6 +103,30 @@ jobs: profile: latest test: yes + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.11" + profile: latest + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.12" + profile: latest + test: yes + + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "7.0" + python: "3.13" + profile: latest + test: yes + - os: macos-latest cmp: gcc configuration: default @@ -72,6 +140,7 @@ jobs: configuration: default base: "3.15" python: "3.7" + container: "python:3.7" profile: deb10 test: yes @@ -80,12 +149,14 @@ jobs: configuration: default base: "3.14" python: "3.7" + container: "python:3.7" profile: deb10 steps: - uses: actions/checkout@v3 with: submodules: true - name: Set up Python ${{ matrix.python }} + if: ${{ !matrix.container }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} diff --git a/requirements-deb11.txt b/requirements-deb11.txt new file mode 100644 index 0000000..bc9b6d9 --- /dev/null +++ b/requirements-deb11.txt @@ -0,0 +1,2 @@ +numpy==1.19.5 +nose2==0.9.2 diff --git a/requirements-deb12.txt b/requirements-deb12.txt new file mode 100644 index 0000000..13118a8 --- /dev/null +++ b/requirements-deb12.txt @@ -0,0 +1,2 @@ +numpy==1.24.2 +nose2==0.12.0 diff --git a/requirements-deb13.txt b/requirements-deb13.txt new file mode 100644 index 0000000..abb51c7 --- /dev/null +++ b/requirements-deb13.txt @@ -0,0 +1,2 @@ +numpy==2.2.4 +nose2==0.15.1 From 19d5a5ba7d39fb9154da17475d6e78475af07ae6 Mon Sep 17 00:00:00 2001 From: Tynan Ford Date: Thu, 2 Oct 2025 01:26:10 -0700 Subject: [PATCH 6/7] Fix numpy compatability between v1 and v2 for NPY_CARRAY and NPY_CARRAY --- devsupApp/src/dbfield.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/devsupApp/src/dbfield.c b/devsupApp/src/dbfield.c index 1b5c9a8..d909815 100644 --- a/devsupApp/src/dbfield.c +++ b/devsupApp/src/dbfield.c @@ -44,6 +44,12 @@ static PyArray_Descr* dbf2np[DBF_MENU+1]; #define PyDataType_ELSIZE(descr) ((descr)->elsize) #define PyDataType_SET_ELSIZE(descr, size) (descr)->elsize = size #endif +#ifndef NPY_CARRAY_RO + #define NPY_CARRAY_RO NPY_ARRAY_CARRAY_RO +#endif +#ifndef NPY_CARRAY + #define NPY_CARRAY NPY_ARRAY_CARRAY +#endif #endif typedef struct { From 0550f167cfc0393faa870bf927d91244e80eda88 Mon Sep 17 00:00:00 2001 From: Tynan Ford Date: Thu, 2 Oct 2025 01:27:44 -0700 Subject: [PATCH 7/7] Add python 3.13 to base 3.15 CI --- .github/workflows/ci-scripts-build.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml index 86b13bc..c46ce43 100644 --- a/.github/workflows/ci-scripts-build.yml +++ b/.github/workflows/ci-scripts-build.yml @@ -144,6 +144,14 @@ jobs: profile: deb10 test: yes + - os: ubuntu-latest + cmp: gcc + configuration: default + base: "3.15" + python: "3.13" + profile: deb13 + test: yes + - os: ubuntu-latest cmp: gcc configuration: default