diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml index f74cf8e7c..5c95e5905 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages.yml @@ -1,6 +1,7 @@ --- name: Build packages on: + - push - workflow_dispatch @@ -27,6 +28,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: + name: sdist-${{ matrix.package_name }} path: | dist/*.tar.gz @@ -64,7 +66,7 @@ jobs: matrix: platform: [manylinux, musllinux] arch: [x86_64, i686, aarch64, ppc64le] - pyver: [cp37, cp38, cp39, cp310, cp311, cp312] + pyver: [cp38, cp39, cp310, cp311, cp312, cp313] runs-on: ubuntu-latest steps: @@ -81,7 +83,7 @@ jobs: key: libpq-${{ env.LIBPQ_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }} - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v2.21.2 env: CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 CIBW_MANYLINUX_I686_IMAGE: manylinux2014 @@ -110,6 +112,7 @@ jobs: - uses: actions/upload-artifact@v4 with: + name: linux-${{matrix.pyver}}-${{matrix.platform}}_${{matrix.arch}} path: ./wheelhouse/*.whl services: @@ -128,7 +131,7 @@ jobs: build-macos: - runs-on: macos-latest + runs-on: macos-${{ matrix.macver }} if: true strategy: @@ -136,22 +139,37 @@ jobs: matrix: # These archs require an Apple M1 runner: [arm64, universal2] arch: [x86_64] - pyver: [cp37, cp38, cp39, cp310, cp311, cp312] + pyver: [cp38, cp39, cp310, cp311, cp312, cp313] + macver: ["12"] + include: + - arch: arm64 + pyver: cp310 + macver: "14" + - arch: arm64 + pyver: cp311 + macver: "14" + - arch: arm64 + pyver: cp312 + macver: "14" + - arch: arm64 + pyver: cp313 + macver: "14" steps: - name: Checkout repos uses: actions/checkout@v4 - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v2.21.2 env: CIBW_BUILD: ${{matrix.pyver}}-macosx_${{matrix.arch}} - CIBW_ARCHS_MACOS: x86_64 + CIBW_ARCHS_MACOS: ${{matrix.arch}} CIBW_BEFORE_ALL_MACOS: ./scripts/build/wheel_macos_before_all.sh CIBW_TEST_COMMAND: >- export PYTHONPATH={project} && python -c "import tests; tests.unittest.main(defaultTest='tests.test_suite')" CIBW_ENVIRONMENT: >- + MACOSX_DEPLOYMENT_TARGET=${{ matrix.macver }}.0 PG_VERSION=16 PACKAGE_NAME=psycopg2-binary PSYCOPG2_TESTDB=postgres @@ -161,4 +179,5 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v4 with: + name: macos-${{matrix.pyver}}-macos-${{matrix.macver}}_${{matrix.arch}} path: ./wheelhouse/*.whl diff --git a/scripts/build/build_libpq.sh b/scripts/build/build_libpq.sh index 6c722336c..8a99fbe82 100755 --- a/scripts/build/build_libpq.sh +++ b/scripts/build/build_libpq.sh @@ -35,7 +35,7 @@ case "$ID" in alpine) apk upgrade - apk add --no-cache zlib-dev krb5-dev linux-pam-dev openldap-dev + apk add --no-cache zlib-dev krb5-dev linux-pam-dev openldap-dev openssl-dev ;; *) diff --git a/scripts/build/wheel_macos_before_all.sh b/scripts/build/wheel_macos_before_all.sh index 4aaee3f81..882b887fa 100755 --- a/scripts/build/wheel_macos_before_all.sh +++ b/scripts/build/wheel_macos_before_all.sh @@ -12,9 +12,10 @@ dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" prjdir="$( cd "${dir}/../.." && pwd )" brew install gnu-sed postgresql@${PG_VERSION} +brew link --overwrite postgresql@${PG_VERSION} # Start the database for testing -brew services start postgresql +brew services start postgresql@${PG_VERSION} # Wait for postgres to come up for i in $(seq 10 -1 0); do diff --git a/setup.py b/setup.py index 572d88756..f7a8caa5b 100644 --- a/setup.py +++ b/setup.py @@ -552,7 +552,7 @@ def is_py_64(): url="https://psycopg.org/", license="LGPL with exceptions", platforms=["any"], - python_requires='>=3.7', + python_requires='>=3.8', description=readme.split("\n")[0], long_description="\n".join(readme.split("\n")[2:]).lstrip(), classifiers=[x for x in classifiers.split("\n") if x],