Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pymssql for openSUSE:Factory 
checked in at 2025-06-27 23:02:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pymssql (Old)
 and      /work/SRC/openSUSE:Factory/.python-pymssql.new.7067 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pymssql"

Fri Jun 27 23:02:30 2025 rev:8 rq:1288866 version:2.3.5

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pymssql/python-pymssql.changes    
2024-11-24 11:05:13.657408239 +0100
+++ /work/SRC/openSUSE:Factory/.python-pymssql.new.7067/python-pymssql.changes  
2025-06-27 23:09:38.993993189 +0200
@@ -1,0 +2,8 @@
+Thu Jun 26 12:16:12 UTC 2025 - Martin Hauke <mar...@gmx.de>
+
+- Update to version 2.3.5
+  * Make mssql cython 3.1.0 compatible
+  * Fix sqlalchemy.orm.exc.MappedAnnotationError in tests.
+  * Add py.typed which marks pymssql as suporting typechecks.
+
+-------------------------------------------------------------------

Old:
----
  pymssql-2.3.2.tar.gz

New:
----
  pymssql-2.3.5.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pymssql.spec ++++++
--- /var/tmp/diff_new_pack.V15jsA/_old  2025-06-27 23:09:39.542015934 +0200
+++ /var/tmp/diff_new_pack.V15jsA/_new  2025-06-27 23:09:39.546016100 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-pymssql
 #
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-pymssql
-Version:        2.3.2
+Version:        2.3.5
 Release:        0
 Summary:        A simple database interface to MS-SQL for Python
 License:        LGPL-2.1-only

++++++ pymssql-2.3.2.tar.gz -> pymssql-2.3.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/.github/workflows/build_wheels.yml 
new/pymssql-2.3.5/.github/workflows/build_wheels.yml
--- old/pymssql-2.3.2/.github/workflows/build_wheels.yml        1970-01-01 
01:00:00.000000000 +0100
+++ new/pymssql-2.3.5/.github/workflows/build_wheels.yml        2025-06-25 
04:28:26.000000000 +0200
@@ -0,0 +1,220 @@
+name: Wheels
+
+on:
+  push:
+    branches:
+        - '**'
+    paths-ignore:
+        - docs/**
+        - ChangeLog*
+    tags:
+        - 'v[0-9]+.[0-9]+.[0-9]+'
+        - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
+  pull_request:
+    branches:
+        - '**'
+    paths-ignore:
+        - docs/**
+        - ChangeLog*
+
+  workflow_dispatch:
+
+jobs:
+
+  build_sdist:
+
+    name: SDist
+    runs-on: ubuntu-latest
+
+    steps:
+
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - name: Set up Python
+        uses: actions/setup-python@v5
+        with:
+          python-version: 3.12
+
+      - name: Build sdist
+        run: |
+            python -m pip install build
+            python -m build --sdist --outdir wheelhouse
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: pymssql-sdist-${{ github.sha }}
+          path: wheelhouse
+
+  build-wheels-matrix:
+    runs-on: ubuntu-latest
+    outputs:
+      include: ${{ steps.set-matrix.outputs.include }}
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions/setup-python@v5
+        with:
+          python-version: "3.x"
+      - run: pip install cibuildwheel==3.0.0
+      - id: set-matrix
+        run: |
+          MATRIX_INCLUDE=$(
+            {
+              cibuildwheel --print-build-identifiers --platform linux --archs 
x86_64 | grep cp |  jq -nRc '{"only": inputs, "os": "ubuntu-latest"}'
+            } | jq -sc
+          )
+          echo "include=$MATRIX_INCLUDE" >> $GITHUB_OUTPUT
+
+  build_wheels:
+
+    needs: build-wheels-matrix
+    name: ${{ matrix.only }}
+    runs-on: ${{ matrix.os }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}
+
+    services:
+      SQLServer:
+        image: mcr.microsoft.com/mssql/server:2017-latest
+        env:
+          ACCEPT_EULA: Y
+          SA_PASSWORD: sqlServerPassw0rd
+        ports:
+          - 1433:1433
+
+    steps:
+
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - uses: pypa/cibuildwheel@v3.0.0  # v2.21.3
+        with:
+          only: ${{ matrix.only }}
+        #env:
+          #CIBW_BUILD_VERBOSITY: 1
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: wheels-${{ matrix.os }}-${{ matrix.only }}
+          path: wheelhouse
+
+  build_wheels_2:
+
+    name: ${{ matrix.os }}
+    runs-on: ${{ matrix.os }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ubuntu-24.04-arm, macos-13, macos-14]
+        arch: [auto]
+
+    steps:
+
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - name: Build wheels
+        uses: pypa/cibuildwheel@v3.0.0
+        env:
+          CIBW_ARCHS_LINUX: ${{ matrix.arch }}
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: wheels-${{ matrix.os }}-${{ matrix.arch }}
+          path: wheelhouse
+
+  build_wheels_windows:
+
+    name: ${{ matrix.os }}-${{ matrix.arch }}
+    runs-on: ${{ matrix.os }}
+
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [windows-latest]
+        arch: [AMD64, x86]
+
+    steps:
+
+      - uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - name: Install OpenSSL x86
+        if: matrix.arch == 'x86'
+        run: choco install openssl --forcex86 --version=1.1.1.2100
+
+      - name: Install OpenSSL AMD64
+        if: matrix.arch == 'AMD64'
+        run: choco install openssl --version=3.1.1
+
+      - name: Install gperf
+        run: choco install gperf
+
+      - name: Build wheels
+        uses: pypa/cibuildwheel@v3.0.0
+        env:
+          CIBW_ARCHS_WINDOWS: ${{ matrix.arch }}
+
+      - uses: actions/upload-artifact@v4
+        with:
+          name: wheels-${{ matrix.os }}-${{ matrix.arch }}
+          path: wheelhouse
+
+  merge_wheels:
+    needs: [build_wheels, build_wheels_2, build_wheels_windows]
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/upload-artifact/merge@v4
+        with:
+          name: wheels
+          separate-directories: false
+          delete-merged: false
+
+  check_wheels:
+    needs: [merge_wheels]
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/download-artifact@v4
+        with:
+          name: wheels
+          path: dist/
+
+      - name: Check wheels
+        run: |
+            # upgrade packaging for PEP 639
+            python -m pip install packaging>=24.2 --upgrade
+            python -m pip install twine --upgrade
+            python -m twine check --strict dist/*
+
+  upload-wheels:
+    needs: [check_wheels]
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/download-artifact@v4
+        with:
+          name: wheels
+          path: dist/
+
+      - name: Publish wheels and sdist
+        if: github.repository_owner == 'pymssql' && startsWith(github.ref, 
'refs/tags/v')
+        run: |
+            # upgrade packaging for PEP 639
+            python -m pip install packaging>=24.2 --upgrade
+            python -m pip install twine --upgrade
+            twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_PYPI_TOKEN}} dist/*
+
+      #- name: Publish wheels and sdist on test.pypi.org
+        #if: github.repository_owner == 'pymssql' && github.ref == 
'refs/heads/master'
+        #run: |
+            ## upgrade packaging for PEP 639
+            #python -m pip install packaging>=24.2 --upgrade
+            #python -m pip install twine --upgrade
+            #twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_TEST_PYPI_TOKEN}} 
--repository-url=https://test.pypi.org/legacy/ dist/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/.github/workflows/test_linux.yml 
new/pymssql-2.3.5/.github/workflows/test_linux.yml
--- old/pymssql-2.3.2/.github/workflows/test_linux.yml  2024-11-21 
05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/.github/workflows/test_linux.yml  1970-01-01 
01:00:00.000000000 +0100
@@ -1,135 +0,0 @@
-name: Linux
-
-on:
-  push:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux_aarch64.yml
-    tags:
-        - 'v[0-9]+.[0-9]+.[0-9]+'
-        - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
-  pull_request:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux_aarch64.yml
-
-  workflow_dispatch:
-
-
-jobs:
-
-  build:
-
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
-        os: [ubuntu-20.04]
-
-    services:
-      SQLServer:
-        image: mcr.microsoft.com/mssql/server:2017-latest
-        env:
-          ACCEPT_EULA: Y
-          SA_PASSWORD: sqlServerPassw0rd
-        ports:
-          - 1433:1433
-
-    steps:
-
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v5
-      with:
-        python-version: ${{ matrix.python-version }}
-
-    - name: build & install
-      run: |
-        sudo apt-get update
-        sudo apt-get install libssl-dev libkrb5-dev
-        python -m pip install --upgrade pip
-        pip install -r dev/requirements-dev.txt
-        python dev/build.py \
-            --ws-dir=./freetds \
-            --dist-dir=./dist \
-            --with-openssl=yes \
-            --enable-krb5 \
-            --sdist \
-            --static-freetds
-        pip install pymssql --no-index -f dist
-        python -c "import pymssql; print(pymssql.version_info())"
-
-    - name: Test with pytest
-      run: |
-        pip install twine --upgrade
-        twine check dist/*
-        pytest -sv --durations=0
-
-  wheels:
-
-    services:
-      SQLServer:
-        image: mcr.microsoft.com/mssql/server:2017-latest
-        env:
-          ACCEPT_EULA: Y
-          SA_PASSWORD: sqlServerPassw0rd
-        ports:
-          - 1433:1433
-
-    runs-on: ubuntu-latest
-    strategy:
-      fail-fast: false
-      matrix:
-        arch: [i686, x86_64]
-        manylinux: [manylinux1, manylinux2014, manylinux_2_28, musllinux_1_1, 
musllinux_1_2]
-        exclude:
-            - arch: i686
-              manylinux: manylinux_2_28
-
-    steps:
-
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python
-      uses: actions/setup-python@v5
-
-    - name: Build and test wheels
-      env:
-        DOCKER_IMAGE: quay.io/pypa/${{ matrix.manylinux }}_${{ matrix.arch }}
-      run: |
-        docker pull $DOCKER_IMAGE
-        docker run --rm --net="host" -w=/io -v `pwd`:/io -e MANYLINUX=${{ 
matrix.manylinux }} $DOCKER_IMAGE /io/dev/build_manylinux_wheels.sh
-
-    - name: Archive wheels and sdist
-      uses: actions/upload-artifact@v4
-      with:
-        name: pymssql-${{ matrix.runs-on }}-${{ matrix.manylinux }}_${{ 
matrix.arch }}-${{ github.sha }}
-        path: dist
-        overwrite: true
-
-    - name: Publish wheels and sdist
-      if: github.repository_owner == 'pymssql' && startsWith(github.ref, 
'refs/tags/v')
-      run: |
-        pip install twine --upgrade
-        twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_PYPI_TOKEN}} dist/*
-
-    #- name: Publish wheels and sdist on test.pypi.org
-      #if: github.repository_owner == 'pymssql' && github.ref == 
'refs/heads/master'
-      #run: |
-        #pip install twine --upgrade
-        #twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_TEST_PYPI_TOKEN}} 
--repository-url=https://test.pypi.org/legacy/ dist/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pymssql-2.3.2/.github/workflows/test_linux_aarch64.yml 
new/pymssql-2.3.5/.github/workflows/test_linux_aarch64.yml
--- old/pymssql-2.3.2/.github/workflows/test_linux_aarch64.yml  2024-11-21 
05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/.github/workflows/test_linux_aarch64.yml  1970-01-01 
01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-name: Linux-aarch64
-
-on:
-  push:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux.yml
-    tags:
-        - 'v[0-9]+.[0-9]+.[0-9]+'
-        - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
-  pull_request:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux.yml
-
-jobs:
-
-  build:
-
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
-        os: [ubuntu-20.04]
-
-    services:
-      SQLServer:
-        image: mcr.microsoft.com/mssql/server:2017-latest
-        env:
-          ACCEPT_EULA: Y
-          SA_PASSWORD: sqlServerPassw0rd
-        ports:
-          - 1433:1433
-
-    steps:
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v5
-      with:
-        python-version: ${{ matrix.python-version }}
-
-    - name: build & install
-      run: |
-        sudo apt-get update
-        sudo apt-get install libssl-dev libkrb5-dev
-        python -m pip install --upgrade pip
-        pip install -r dev/requirements-dev.txt
-        python dev/build.py \
-            --ws-dir=./freetds \
-            --dist-dir=./dist \
-            --with-openssl=yes \
-            --enable-krb5 \
-            --sdist \
-            --static-freetds
-        pip install pymssql --no-index -f dist
-        python -c "import pymssql; print(pymssql.version_info())"
-
-    - name: Test with pytest
-      run: |
-        pip install twine --upgrade
-        twine check dist/*
-        pytest -sv --durations=0
-
-  wheels:
-
-    services:
-      SQLServer:
-        image: mcr.microsoft.com/mssql/server:2017-latest
-        env:
-          ACCEPT_EULA: Y
-          SA_PASSWORD: sqlServerPassw0rd
-        ports:
-          - 1433:1433
-
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        arch: [aarch64]
-        manylinux: [manylinux2014]
-
-    steps:
-
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python
-      uses: actions/setup-python@v5
-
-    - name: Set up QEMU
-      uses: docker/setup-qemu-action@v3
-      with:
-        platforms: arm64
-
-    - name: Build and test wheels
-      env:
-        DOCKER_IMAGE: quay.io/pypa/${{ matrix.manylinux }}_${{ matrix.arch }}
-      run: |
-        docker pull $DOCKER_IMAGE
-        docker run --rm --net="host" -w=/io -v `pwd`:/io -e MANYLINUX=${{ 
matrix.manylinux }} $DOCKER_IMAGE /io/dev/build_manylinux_wheels.sh
-
-    - name: Archive wheels and sdist
-      uses: actions/upload-artifact@v4
-      with:
-        name: pymssql-${{ matrix.runs-on }}-${{ matrix.manylinux }}_${{ 
matrix.arch }}-${{ github.sha }}
-        path: dist
-        overwrite: true
-
-    - name: Publish wheels and sdist
-      if: github.repository_owner == 'pymssql' && startsWith(github.ref, 
'refs/tags/v')
-      run: |
-        pip install twine --upgrade
-        twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_PYPI_TOKEN}} dist/*
-
-    #- name: Publish wheels and sdist on test.pypi.org
-      #if: github.repository_owner == 'pymssql' && github.ref == 
'refs/heads/master'
-      #run: |
-        #pip install twine --upgrade
-        #twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_TEST_PYPI_TOKEN}} 
--repository-url=https://test.pypi.org/legacy/ dist/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/.github/workflows/test_macos.yml 
new/pymssql-2.3.5/.github/workflows/test_macos.yml
--- old/pymssql-2.3.2/.github/workflows/test_macos.yml  2024-11-21 
05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/.github/workflows/test_macos.yml  1970-01-01 
01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-name: macOS
-
-on:
-  push:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_linux.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux_aarch64.yml
-        - dev/build_manylinux_wheels.sh
-    tags:
-        - 'v[0-9]+.[0-9]+.[0-9]+'
-        - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
-  pull_request:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_linux.yml
-        - .github/workflows/test_windows.yml
-        - .github/workflows/test_linux_aarch64.yml
-        - dev/build_manylinux_wheels.sh
-
-jobs:
-  build:
-
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-            python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
-            os: [macos-13]
-
-    steps:
-
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v5
-      with:
-            python-version: ${{ matrix.python-version }}
-
-    - name: build wheel and sdist
-      run: |
-            pip install --upgrade pip
-            pip install -r dev/requirements-dev.txt
-            pip install delocate
-            python setup.py sdist
-            brew install openssl
-            brew install libiconv
-            python dev/build.py \
-                --ws-dir=./freetds \
-                --dist-dir=./dist \
-                --with-openssl=yes \
-                --sdist \
-                --static-freetds
-            delocate-listdeps --all dist/*.whl
-            delocate-wheel -v dist/*.whl
-            delocate-listdeps --all dist/*.whl
-            pip install pymssql --no-index -f dist
-            python -c "import pymssql; print(pymssql.version_info())"
-
-    - name: Test with pytest
-      run: |
-        pip install twine --upgrade
-        twine check dist/*
-        pytest -sv --durations=0
-
-    - name: Archive wheels and sdist
-      uses: actions/upload-artifact@v4
-      with:
-        name: pymssql-${{ matrix.runs-on }}-${{ matrix.python-version }}-${{ 
github.sha }}
-        path: dist
-        overwrite: true
-
-    - name: Publish wheels
-      if: github.repository_owner == 'pymssql' && startsWith(github.ref, 
'refs/tags/v')
-      run: |
-        pip install twine --upgrade
-        twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_PYPI_TOKEN}} dist/*.whl
-
-    #- name: Publish wheels on test.pypi.org
-      #if: github.repository_owner == 'pymssql' && github.ref == 
'refs/heads/master'
-      #run: |
-        #pip install twine --upgrade
-        #twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_TEST_PYPI_TOKEN}} 
--repository-url=https://test.pypi.org/legacy/ dist/*.whl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/.github/workflows/test_windows.yml 
new/pymssql-2.3.5/.github/workflows/test_windows.yml
--- old/pymssql-2.3.2/.github/workflows/test_windows.yml        2024-11-21 
05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/.github/workflows/test_windows.yml        1970-01-01 
01:00:00.000000000 +0100
@@ -1,92 +0,0 @@
-name: Windows
-
-on:
-  push:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_linux.yml
-        - .github/workflows/test_linux_aarch64.yml
-        - dev/build_manylinux_wheels.sh
-    tags:
-        - 'v[0-9]+.[0-9]+.[0-9]+'
-        - 'v[0-9]+.[0-9]+.[0-9]+rc[0-9]+'
-  pull_request:
-    branches:
-        - '**'
-    paths-ignore:
-        - docs/**
-        - ChangeLog*
-        - .github/workflows/test_macos.yml
-        - .github/workflows/test_linux.yml
-        - .github/workflows/test_linux_aarch64.yml
-        - dev/build_manylinux_wheels.sh
-
-jobs:
-  build:
-
-    runs-on: ${{ matrix.os }}
-
-    strategy:
-      fail-fast: false
-      matrix:
-            python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
-            os: [windows-latest]
-            python-architecture: [x86, x64]
-
-    steps:
-
-    - uses: actions/checkout@v4
-      with:
-        fetch-depth: 0
-
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v5
-      with:
-            python-version: ${{ matrix.python-version }}
-            architecture: ${{ matrix.python-architecture}}
-
-    - name: Install OpenSSL x86
-      if: matrix.python-architecture == 'x86'
-      run: choco install openssl --forcex86 --version=1.1.1.2100
-
-    - name: Install OpenSSL x64
-      if: matrix.python-architecture == 'x64'
-      run: choco install openssl --version=3.1.1
-
-    - name: Install & build dependencies
-      run: |
-        choco install gperf
-        python -m pip install --upgrade pip
-        pip install -r dev/requirements-dev.txt
-        python dev/build.py --ws-dir=freetds --dist-dir=dist --sdist
-        pip install pymssql --no-index -f dist
-        python -c "import pymssql; print(pymssql.version_info())"
-
-    - name: Test with pytest
-      run: |
-        pip install twine --upgrade
-        twine check dist/*
-        pytest -sv --durations=0
-
-    - name: Archive wheels and sdist
-      uses: actions/upload-artifact@v4
-      with:
-        name: pymssql-${{ matrix.runs-on }}-${{ matrix.python-architecture 
}}-${{ matrix.arch }}-${{ github.sha }}
-        path: dist
-        overwrite: true
-
-    - name: Publish wheels
-      if: github.repository_owner == 'pymssql' && startsWith(github.ref, 
'refs/tags/v')
-      run: |
-        pip install twine --upgrade
-        twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_PYPI_TOKEN}} dist/*.whl
-
-    #- name: Publish wheels on test.pypi.org
-      #if: github.repository_owner == 'pymssql' && github.ref == 
'refs/heads/master'
-      #run: |
-        #pip install twine --upgrade
-        #twine upload --skip-existing -u __token__ -p 
${{secrets.PYMSSQL_TEST_PYPI_TOKEN}} 
--repository-url=https://test.pypi.org/legacy/ dist/*.whl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/.gitignore new/pymssql-2.3.5/.gitignore
--- old/pymssql-2.3.2/.gitignore        2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/.gitignore        2025-06-25 04:28:26.000000000 +0200
@@ -9,6 +9,7 @@
 .tox
 dist
 wheelhouse
+*.whl
 *.egg
 *.egg-info
 docs/_build
@@ -22,6 +23,10 @@
 .eggs
 .eric?project
 *.e4p
+*.epj
+.spyproject
+.jedi
+.vscode
 cython_debug/*
 src/pymssql/version.h
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/ChangeLog.rst 
new/pymssql-2.3.5/ChangeLog.rst
--- old/pymssql-2.3.2/ChangeLog.rst     2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/ChangeLog.rst     2025-06-25 04:28:26.000000000 +0200
@@ -1,6 +1,43 @@
 Recent Changes
 ==============
 
+
+Version 2.3.5 - 2025-06-24 - Mikhail Terekhov
+=============================================
+
+General
+-------
+
+- Build ARM wheels for MacOS (closes #612, #727, #731, #763, #768, #822, #882).
+- Fix Windows wheels build (closes #930, #931).
+- Make mssql cython 3.1.0 compatible, thanks to Timotheus Bachinger (closes 
#937, #939, #945, #946, #948).
+- Fix manylinux1 build for Cython-3.1.0.
+- Fix sqlalchemy.orm.exc.MappedAnnotationError in tests, thanks to Timotheus 
Bachinger.
+
+Internals
+---------
+
+- Use cibuildwheel in GitHub Actions.
+
+Version 2.3.4 - 2025-04-01 - Mikhail Terekhov
+=============================================
+
+General
+-------
+
+- Update packaging to fix metadata, thanks to AbigailColwell.
+
+
+Version 2.3.3 - 2025-03-31 - Mikhail Terekhov
+=============================================
+
+General
+-------
+
+- Update FreeTDS to 1.4.26.
+- Add py.typed which marks pymssql as suporting typechecks, thanks Niklas 
Mertsch (closes #925).
+
+
 Version 2.3.2 - 2024-11-20 - Mikhail Terekhov
 =============================================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/PKG-INFO new/pymssql-2.3.5/PKG-INFO
--- old/pymssql-2.3.2/PKG-INFO  2024-11-21 05:06:30.449875000 +0100
+++ new/pymssql-2.3.5/PKG-INFO  2025-06-25 04:28:32.722050200 +0200
@@ -1,27 +1,25 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: pymssql
-Version: 2.3.2
+Version: 2.3.5
 Summary: DB-API interface to Microsoft SQL Server for Python. (new 
Cython-based version)
-Author: Damien Churchill
-Author-email: dam...@gmail.com
-Maintainer: Mikhail Terekhov
-Maintainer-email: ter...@gmail.com
-License: LGPL
-Project-URL: Documentation, http://pymssql.readthedocs.io
-Project-URL: Source, https://github.com/pymssql/pymssql
+Author-email: Damien Churchill <dam...@gmail.com>
+Maintainer-email: Mikhail Terekhov <ter...@gmail.com>
+License-Expression: LGPL-2.1-or-later
+Project-URL: homepage, https://github.com/pymssql/pymssql
+Project-URL: repository, https://github.com/pymssql/pymssql
+Project-URL: documentation, http://pymssql.readthedocs.io
+Project-URL: Bug Tracker, https://github.com/pymssql/pymssql/issues
 Project-URL: Changelog, 
https://github.com/pymssql/pymssql/blob/master/ChangeLog.rst
 Keywords: mssql,SQL Server,database,DB-API
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: GNU Library or Lesser General Public 
License (LGPL)
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Topic :: Database
 Classifier: Topic :: Database :: Database Engines/Servers
@@ -29,21 +27,20 @@
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: Unix
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
 License-File: LICENSE
+Dynamic: description
+Dynamic: description-content-type
+Dynamic: license-file
+Dynamic: platform
 
 
 pymssql - DB-API interface to Microsoft SQL Server
 ==================================================
 
-.. image:: https://github.com/pymssql/pymssql/workflows/Linux/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Linux%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/macOS/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22macOS%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/Windows/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Windows%22
+.. image:: https://github.com/pymssql/pymssql/workflows/Wheels/badge.svg
+        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Wheels%22
 
 .. image:: http://img.shields.io/pypi/dm/pymssql.svg
         :target: https://pypi.python.org/pypi/pymssql/
@@ -111,34 +108,28 @@
 Recent Changes
 ==============
 
-Version 2.3.2 - 2024-11-20 - Mikhail Terekhov
+
+Version 2.3.5 - 2025-06-24 - Mikhail Terekhov
 =============================================
 
 General
 -------
 
-- Update FreeTDS to 1.4.23.
-- Build wheels for Python-3.13 on Windows and MacOS.
+- Build ARM wheels for MacOS (closes #612, #727, #731, #763, #768, #822, #882).
+- Fix Windows wheels build (closes #930, #931).
+- Make mssql cython 3.1.0 compatible, thanks to Timotheus Bachinger (closes 
#937, #939, #945, #946, #948).
+- Fix manylinux1 build for Cython-3.1.0.
+- Fix sqlalchemy.orm.exc.MappedAnnotationError in tests, thanks to Timotheus 
Bachinger.
 
 Internals
 ---------
 
-- Fix build wheels for Python-3.13 on Windows.
-- Drop build in actions for Python 3.6, 3.7 and 3.8.
-- Add build in actions for Python-3.13.
-- Workaround setuptools-74.0 changes.
-
+- Use cibuildwheel in GitHub Actions.
 
-Version 2.3.1 - 2024-08-25 - Mikhail Terekhov
+Version 2.3.4 - 2025-04-01 - Mikhail Terekhov
 =============================================
 
 General
 -------
 
-- Fix SP returning NULL (closes #441).
-- Update FreeTDS to 1.4.22 (closes #895).
-- Require Cython>3.0.10.
-- Add python 3.13 Linux wheels (closes #900).
-- Drop manylinux2010 wheels.
-- Drop 3.7 and 3.8 wheels on MacOS.
-- Drop 3.6 wheels on Linux.
+- Update packaging to fix metadata, thanks to AbigailColwell.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/README.rst new/pymssql-2.3.5/README.rst
--- old/pymssql-2.3.2/README.rst        2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/README.rst        2025-06-25 04:28:26.000000000 +0200
@@ -2,14 +2,8 @@
 pymssql - DB-API interface to Microsoft SQL Server
 ==================================================
 
-.. image:: https://github.com/pymssql/pymssql/workflows/Linux/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Linux%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/macOS/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22macOS%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/Windows/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Windows%22
+.. image:: https://github.com/pymssql/pymssql/workflows/Wheels/badge.svg
+        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Wheels%22
 
 .. image:: http://img.shields.io/pypi/dm/pymssql.svg
         :target: https://pypi.python.org/pypi/pymssql/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/dev/build.py 
new/pymssql-2.3.5/dev/build.py
--- old/pymssql-2.3.2/dev/build.py      2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/dev/build.py      2025-06-25 04:28:26.000000000 +0200
@@ -4,7 +4,6 @@
 """
 
 import argparse
-from distutils.util import get_platform
 import multiprocessing
 import os
 from pathlib import Path
@@ -17,6 +16,7 @@
 
 def run(cmd, cwd=None, env=None, shell=True):
 
+    print(f"build.py: {cmd}")
     check_call(str(cmd), cwd=str(cwd) if cwd else cwd, env=env, shell=shell, 
stderr=STDOUT)
 
 
@@ -85,7 +85,7 @@
         configure.extend(["--enable-shared", "--disable-static"])
     cmd = ' '.join(configure)
     env = os.environ.copy()
-    env.update(CFLAGS="-fPIC")
+    env.update(CFLAGS="-fPIC -Wno-incompatible-pointer-types")
     run(cmd, cwd=blddir, env=env)
     make = f"make -j {multiprocessing.cpu_count()}"
     run(make, cwd=blddir, env=env)
@@ -96,8 +96,13 @@
 def find_vcvarsall_env():
 
     from distutils import _msvccompiler as _msvcc
+    from distutils.util import get_platform
 
     plat_name = get_platform()
+    CIBW_ARCHS_WINDOWS = os.environ.get("CIBW_ARCHS_WINDOWS")
+    if CIBW_ARCHS_WINDOWS == 'x86':
+        plat_name = 'win32'
+
     try:
         plat_spec = _msvcc.PLAT_TO_VCVARS[plat_name]
     except AttributeError:
@@ -119,6 +124,7 @@
 def build_windows(args, freetds_archive, iconv_archive):
 
     from zipfile import ZipFile
+
     wiconv = args.ws_dir / "win-iconv"
     if wiconv.exists():
         shutil.rmtree(wiconv)
@@ -204,7 +210,7 @@
 
     a('-f', '--force-download', action='store_true',
             help="force archive download")
-    a('-u', '--freetds-url', 
default="http://ftp.freetds.org/pub/freetds/stable";,
+    a('-u', '--freetds-url', default="https://www.freetds.org/files/stable/";,
             help="URL to download FreeTDS archive")
     a('-v', '--freetds-version', default='', type=freetds_version,
             help="""Specific FreeTDS version to build or 'latest'.
@@ -224,6 +230,9 @@
             help="workspace directory for building FreeTDS")
     a('-p', '--prefix', default=None, type=lambda x: Path(x) if x else None,
             help="prefix for installing FreeTDS, default is WS_DIR/prefix")
+
+    a('-W', '--wheel', action='store_true',
+            help="Build wheel.")
     a('-d', '--dist-dir', default=Path('./dist'), type=Path,
             help="where to put pymssql wheel, default is './dist'")
     a('-s', '--sdist', action='store_true',
@@ -258,10 +267,11 @@
     else:
         build(args, freetds_archive)
 
-    args.dist_dir = args.dist_dir.absolute()
-    env = os.environ.copy()
-    env.update(PYMSSQL_FREETDS=f"{args.prefix}")
-    run(f"{sys.executable} -m pip wheel . -w {args.dist_dir}", shell=True, 
env=env)
+    if args.wheel:
+        args.dist_dir = args.dist_dir.absolute()
+        env = os.environ.copy()
+        env.update(PYMSSQL_FREETDS=f"{args.prefix}")
+        run(f"{sys.executable} -m pip wheel . -w {args.dist_dir}", shell=True, 
env=env)
     if args.sdist:
         fmt = 'zip' if platform.system() == 'Windows' else 'gztar'
         run(f"{sys.executable} setup.py sdist --formats={fmt} -d 
{args.dist_dir}", shell=True, env=env)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/dev/build_manylinux_wheels.sh 
new/pymssql-2.3.5/dev/build_manylinux_wheels.sh
--- old/pymssql-2.3.2/dev/build_manylinux_wheels.sh     2024-11-21 
05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/dev/build_manylinux_wheels.sh     2025-06-25 
04:28:26.000000000 +0200
@@ -55,6 +55,7 @@
     --prefix=/usr/local \
     --with-openssl=yes \
     --enable-krb5 \
+    --wheel \
     --static-freetds
 
 # Install Python dependencies and compile wheels
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/dev/requirements-dev.txt 
new/pymssql-2.3.5/dev/requirements-dev.txt
--- old/pymssql-2.3.2/dev/requirements-dev.txt  2024-11-21 05:04:43.000000000 
+0100
+++ new/pymssql-2.3.5/dev/requirements-dev.txt  2025-06-25 04:28:26.000000000 
+0200
@@ -1,10 +1,11 @@
-cython>=3.0.7
+cython>=3.1.0
 gevent
 psutil<5.9.9
 pytest
 pytest-subtests
 pytest-timeout
-setuptools>=54.0
+packaging>=24.2
+setuptools>=80.0
 setuptools_scm[toml]>=5.0,<9.0
 sphinx-rtd-theme
 sphinx
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/dev/requirements-test.txt 
new/pymssql-2.3.5/dev/requirements-test.txt
--- old/pymssql-2.3.2/dev/requirements-test.txt 1970-01-01 01:00:00.000000000 
+0100
+++ new/pymssql-2.3.5/dev/requirements-test.txt 2025-06-25 04:28:26.000000000 
+0200
@@ -0,0 +1,6 @@
+gevent ; python_version>="3.9"
+psutil<5.9.9
+pytest
+pytest-subtests
+pytest-timeout
+sqlalchemy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/docs/freetds.rst 
new/pymssql-2.3.5/docs/freetds.rst
--- old/pymssql-2.3.2/docs/freetds.rst  2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/docs/freetds.rst  2025-06-25 04:28:26.000000000 +0200
@@ -16,49 +16,6 @@
 
 * `Build it and install yourself 
<http://www.freetds.org/userguide/build.htm>`_.
 
-* Use the bundled static FreeTDS libraries:
-
-  .. code-block:: bash
-
-      export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
-      pip install pymssql
-
-  These static libraries are built on a x86_64 Ubuntu 14.04 system by using the
-  following sequence:
-
-  .. code-block:: bash
-
-      export CFLAGS="-fPIC"  # for the 64 bits version
-
-  or
-
-  .. code-block:: bash
-
-      export CFLAGS="-m32 -fPIC" LDFLAGS="-m32"  # for the 32 bits version
-
-  and then:
-
-  .. code-block:: bash
-
-      ./configure --enable-msdblib \
-        --prefix=/usr --sysconfdir=/etc/freetds --with-tdsver=7.1 \
-        --disable-apps --disable-server --disable-pool --disable-odbc \
-        --with-openssl=no --with-gnutls=no
-      make
-
-  .. versionchanged:: 2.1.3
-    Version of FreeTDS Linux static libraries bundled with pymssql is
-    `0.95.95`_.
-
-  .. versionchanged:: 2.1.2
-    Version of FreeTDS Linux static libraries bundled with pymssql is
-    `0.95.81`_ obtained from branch `Branch-0_95`_ of the official Git
-    repository. Up to 2.1.1 the version of FreeTDS bundled was 0.91.
-
-.. _0.95.95: 
https://github.com/FreeTDS/freetds/tree/c9d284c767e569c9ae58ca0e2ad9dcd7c2cc9e55
-.. _0.95.81: 
https://github.com/FreeTDS/freetds/tree/110179b9c83fe9af88d4c29658dca05e5295ecbb
-.. _Branch-0_95: https://github.com/FreeTDS/freetds/tree/Branch-0_95
-
 Mac OS X (with `Homebrew <http://brew.sh/>`_)
 ---------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/docs/intro.rst 
new/pymssql-2.3.5/docs/intro.rst
--- old/pymssql-2.3.2/docs/intro.rst    2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/docs/intro.rst    2025-06-25 04:28:26.000000000 +0200
@@ -83,7 +83,7 @@
 
 :Python: Python 3.x: 3.6 or newer.
 :FreeTDS: 1.4.10 or newer.
-:Cython: 3.0.7 or newer.
+:Cython: 3.1.0 or newer.
 :Microsoft SQL Server: 2005 or newer.
 
 Project Discussion
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/docs/pymssql_examples.rst 
new/pymssql-2.3.5/docs/pymssql_examples.rst
--- old/pymssql-2.3.2/docs/pymssql_examples.rst 2024-11-21 05:04:43.000000000 
+0100
+++ new/pymssql-2.3.5/docs/pymssql_examples.rst 2025-06-25 04:28:26.000000000 
+0200
@@ -256,6 +256,7 @@
     cursor.close()
 
     conn.bulk_copy("example", [(1, 2)] * 1000000)
+    conn.commit()
 
 .. note:: ``bulk_copy`` does not verify columns data type.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/pyproject.toml 
new/pymssql-2.3.5/pyproject.toml
--- old/pymssql-2.3.2/pyproject.toml    2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/pyproject.toml    2025-06-25 04:28:26.000000000 +0200
@@ -1,16 +1,103 @@
 [build-system]
 requires = [
-    "setuptools>=54.0",
-    "setuptools_scm[toml]>=5.0",
+    "packaging>=24.2",
+    "setuptools>80.0",
+    "setuptools_scm[toml]>=8.0",
     "wheel>=0.36.2",
-    "Cython>=3.0.10",
+    "Cython>=3.1.0",
     "tomli",
+    "standard-distutils ; python_version>='3.12'"
     ]
 
+[tool.setuptools.packages.find]
+where = ["src"]
+
+[tool.setuptools.package-data]
+"pymssql" = ["py.typed"]
+
 [tool.setuptools_scm]
 write_to = "src/pymssql/version.h"
 write_to_template = 'const char* PYMSSQL_VERSION = "{version}";'
 local_scheme = "no-local-version"
 
 [tool.freetds]
-version_for_pypi_wheels = "1.4.23"
+version_for_pypi_wheels = "1.4.27"
+
+[project]
+name =  "pymssql"
+dynamic =  ["version", "readme"]
+description = 'DB-API interface to Microsoft SQL Server for Python. (new 
Cython-based version)'
+license = "LGPL-2.1-or-later"
+authors = [{name = "Damien Churchill", email = "dam...@gmail.com"}]
+maintainers = [{name = "Mikhail Terekhov", email = "ter...@gmail.com"}]
+keywords = ['mssql', 'SQL Server', 'database', 'DB-API']
+requires-python = ">=3.9"
+classifiers=[
+    "Development Status :: 5 - Production/Stable",
+    "Intended Audience :: Developers",
+    "Programming Language :: Python",
+    "Programming Language :: Python :: 3.9",
+    "Programming Language :: Python :: 3.10",
+    "Programming Language :: Python :: 3.11",
+    "Programming Language :: Python :: 3.12",
+    "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: Implementation :: CPython",
+    "Topic :: Database",
+    "Topic :: Database :: Database Engines/Servers",
+    "Topic :: Software Development :: Libraries :: Python Modules",
+    "Operating System :: Microsoft :: Windows",
+    "Operating System :: POSIX",
+    "Operating System :: Unix",
+]
+
+[project.urls]
+homepage = "https://github.com/pymssql/pymssql";
+repository = "https://github.com/pymssql/pymssql";
+documentation = "http://pymssql.readthedocs.io";
+"Bug Tracker" = "https://github.com/pymssql/pymssql/issues";
+"Changelog" =  "https://github.com/pymssql/pymssql/blob/master/ChangeLog.rst";
+
+[tool.cibuildwheel]
+build-verbosity = 1
+before-test = "pip install -r dev/requirements-test.txt"
+test-requires = "pytest"
+test-command = "pytest {project}/tests"
+container-engine = { name = "docker", create-args = ["--network", "host"] }
+
+[tool.cibuildwheel.linux]
+environment = { PYMSSQL_FREETDS = "./deps", LD_LIBRARY_PATH = "./deps/lib", 
CFLAGS = "-Wno-incompatible-pointer-types" }
+before-all = [
+            "yum install -y openssl-devel krb5-devel",
+            "python3 ./dev/build.py --prefix=./deps --enable-krb5 
--static-freetds"
+            ]
+
+[[tool.cibuildwheel.overrides]]
+select = "*-musllinux*"
+before-all = [
+            "apk add openssl-dev krb5-dev",
+            "python3 ./dev/build.py --prefix=./deps --enable-krb5 
--static-freetds"
+            ]
+
+[tool.cibuildwheel.macos]
+environment = { PYMSSQL_FREETDS = "./deps", LD_LIBRARY_PATH = "./deps/lib" }
+before-all = [
+            "brew install openssl",
+            "brew install libiconv",
+            "python3 ./dev/build.py --prefix=./deps --static-freetds"
+            ]
+
+[[tool.cibuildwheel.overrides]]
+select = "*macosx_x86_64"
+inherit.environment = "append"
+environment.MACOSX_DEPLOYMENT_TARGET="13.0"
+
+[[tool.cibuildwheel.overrides]]
+select = "*macosx_arm64"
+inherit.environment = "append"
+environment.MACOSX_DEPLOYMENT_TARGET="14.0"
+
+[tool.cibuildwheel.windows]
+environment = { PYMSSQL_FREETDS = "./deps", LD_LIBRARY_PATH = "./deps/lib" }
+before-all = [
+            "python3 ./dev/build.py --prefix=./deps",
+            ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/setup.cfg new/pymssql-2.3.5/setup.cfg
--- old/pymssql-2.3.2/setup.cfg 2024-11-21 05:06:30.453875000 +0100
+++ new/pymssql-2.3.5/setup.cfg 2025-06-25 04:28:32.723050400 +0200
@@ -1,9 +1,10 @@
 [options]
 setup_requires = 
-       cython>=3.0.7
-       setuptools>=54.0
-       setuptools_scm[toml]>=5.0,<7.0
+       cython>=3.1.0
+       setuptools>80.0
+       setuptools_scm[toml]>=8.0
        wheel>=0.36.2
+       packaging>=24.2
 
 [egg_info]
 tag_build = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/setup.py new/pymssql-2.3.5/setup.py
--- old/pymssql-2.3.2/setup.py  2024-11-21 05:04:43.000000000 +0100
+++ new/pymssql-2.3.5/setup.py  2025-06-25 04:28:26.000000000 +0200
@@ -41,7 +41,7 @@
 else:
     # Force `setup_requires` stuff like Cython to be installed before 
proceeding
     from setuptools.dist import Distribution
-    Distribution(dict(setup_requires='Cython>=3.0'))
+    Distribution(dict(setup_requires='Cython>=3.1.0'))
     from Cython.Distutils import build_ext as _build_ext
 
 def check_env(env_name, default):
@@ -59,6 +59,7 @@
 
 # 32 bit or 64 bit system?
 BITNESS = struct.calcsize("P") * 8
+print(f"setup.py: BITNESS='{BITNESS}'")
 WINDOWS = platform.system() == 'Windows'
 MACOS = platform.system() == 'Darwin'
 
@@ -79,7 +80,7 @@
     prefix = "/opt/local"
 elif exists("/sw/include/sqlfront.h"): # Fink
     prefix = "/sw"
-print(f"prefix='{prefix}'")
+print(f"setup.py: prefix='{prefix}'")
 
 if os.getenv('PYMSSQL_FREETDS_INCLUDEDIR'):
     include_dirs = [ os.getenv('PYMSSQL_FREETDS_INCLUDEDIR') ]
@@ -96,7 +97,7 @@
 
 if MACOS:
     pref = subprocess.getoutput('brew --prefix openssl')
-    print(f"PREFIX={pref}")
+    print(f"setup.py: PREFIX={pref}")
     include_dirs.append(f"{pref}/include")
     library_dirs.append(f"{pref}/lib")
 
@@ -259,12 +260,12 @@
 
     ext_modules = [
         Extension('pymssql._mssql', [join('src', 'pymssql', '_mssql.%s' % 
source_extension)],
-            extra_compile_args = [ '-DMSDBLIB' ],
+            extra_compile_args = [ '-DMSDBLIB', '-std=c99' ],
             include_dirs = include_dirs,
             library_dirs = library_dirs,
         ),
         Extension('pymssql._pymssql', [join('src', 'pymssql', '_pymssql.%s' % 
source_extension)],
-            extra_compile_args = [ '-DMSDBLIB' ],
+            extra_compile_args = [ '-DMSDBLIB', '-std=c99' ],
             include_dirs = include_dirs,
             library_dirs = library_dirs,
         ),
@@ -293,54 +294,20 @@
 
 
 setup(
-    name  = 'pymssql',
     use_scm_version = {
         "write_to": "src/pymssql/version.h",
         "write_to_template": 'const char* PYMSSQL_VERSION = "{version}";',
         "local_scheme": "no-local-version",
     },
-    description = 'DB-API interface to Microsoft SQL Server for Python. (new 
Cython-based version)',
     long_description = mk_long_description(2),
     long_description_content_type = 'text/x-rst',
-    author = 'Damien Churchill',
-    author_email = 'dam...@gmail.com',
-    maintainer = 'Mikhail Terekhov',
-    maintainer_email = 'ter...@gmail.com',
-    license = 'LGPL',
     platforms = 'any',
-    keywords = ['mssql', 'SQL Server', 'database', 'DB-API'],
-    project_urls={
-        "Documentation": "http://pymssql.readthedocs.io";,
-        "Source": "https://github.com/pymssql/pymssql";,
-        "Changelog": 
"https://github.com/pymssql/pymssql/blob/master/ChangeLog.rst";,
-    },
     cmdclass = {
         'build_ext': build_ext,
         'clean': clean,
         'release': release,
     },
-    classifiers=[
-      "Development Status :: 5 - Production/Stable",
-      "Intended Audience :: Developers",
-      "License :: OSI Approved :: GNU Library or Lesser General Public License 
(LGPL)",
-      "Programming Language :: Python",
-      "Programming Language :: Python :: 3.7",
-      "Programming Language :: Python :: 3.8",
-      "Programming Language :: Python :: 3.9",
-      "Programming Language :: Python :: 3.10",
-      "Programming Language :: Python :: 3.11",
-      "Programming Language :: Python :: 3.12",
-      "Programming Language :: Python :: Implementation :: CPython",
-      "Topic :: Database",
-      "Topic :: Database :: Database Engines/Servers",
-      "Topic :: Software Development :: Libraries :: Python Modules",
-      "Operating System :: Microsoft :: Windows",
-      "Operating System :: POSIX",
-      "Operating System :: Unix",
-    ],
     zip_safe = False,
-    setup_requires=['setuptools_scm[toml]>=5.0,<9.0', 'Cython>=3.0.7'],
-    tests_require=['psutil<5.9.9', 'pytest', 'pytest-timeout', 
'pytest-subtests'],
     ext_modules = ext_modules(),
     packages = [ 'pymssql'],
     package_dir = {'': 'src'},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/src/pymssql/_mssql.pyx 
new/pymssql-2.3.5/src/pymssql/_mssql.pyx
--- old/pymssql-2.3.2/src/pymssql/_mssql.pyx    2024-11-21 05:04:43.000000000 
+0100
+++ new/pymssql-2.3.5/src/pymssql/_mssql.pyx    2025-06-25 04:28:26.000000000 
+0200
@@ -833,7 +833,7 @@
         log("_mssql.MSSQLConnection.convert_db_value()")
         cdef char buf[NUMERIC_BUF_SZ] # buffer in which we store text rep of 
bug nums
         cdef int converted_length
-        cdef long prevPrecision
+        cdef int prevPrecision
         cdef BYTE precision
         cdef DBDATEREC2 di
         cdef DBDATETIME dt
@@ -855,7 +855,7 @@
             return int(<int>(<DBINT *>data)[0])
 
         elif dbtype == SQLINT8:
-            return long(<PY_LONG_LONG>(<PY_LONG_LONG *>data)[0])
+            return int(<PY_LONG_LONG>(<PY_LONG_LONG *>data)[0])
 
         elif dbtype == SQLFLT4:
             return float(<float>(<DBREAL *>data)[0])
@@ -1048,7 +1048,7 @@
             return 0
 
         if dbtype[0] in (SQLMONEY, SQLMONEY4, SQLNUMERIC, SQLDECIMAL):
-            if type(value) in (int, long, bytes):
+            if type(value) in (int, bytes):
                 value = decimal.Decimal(value)
 
             if type(value) not in (decimal.Decimal, float):
@@ -1992,7 +1992,7 @@
     if isinstance(value, float):
         return repr(value).encode(charset)
 
-    if isinstance(value, (int, long, decimal.Decimal)):
+    if isinstance(value, (int, decimal.Decimal)):
         return str(value).encode(charset)
 
     if isinstance(value, uuid.UUID):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/src/pymssql/py.typed 
new/pymssql-2.3.5/src/pymssql/py.typed
--- old/pymssql-2.3.2/src/pymssql/py.typed      1970-01-01 01:00:00.000000000 
+0100
+++ new/pymssql-2.3.5/src/pymssql/py.typed      2025-06-25 04:28:26.000000000 
+0200
@@ -0,0 +1 @@
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/src/pymssql/version.h 
new/pymssql-2.3.5/src/pymssql/version.h
--- old/pymssql-2.3.2/src/pymssql/version.h     2024-11-21 05:06:30.000000000 
+0100
+++ new/pymssql-2.3.5/src/pymssql/version.h     2025-06-25 04:28:32.000000000 
+0200
@@ -1 +1 @@
-const char* PYMSSQL_VERSION = "2.3.2";
\ No newline at end of file
+const char* PYMSSQL_VERSION = "2.3.5";
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/src/pymssql.egg-info/PKG-INFO 
new/pymssql-2.3.5/src/pymssql.egg-info/PKG-INFO
--- old/pymssql-2.3.2/src/pymssql.egg-info/PKG-INFO     2024-11-21 
05:06:30.000000000 +0100
+++ new/pymssql-2.3.5/src/pymssql.egg-info/PKG-INFO     2025-06-25 
04:28:32.000000000 +0200
@@ -1,27 +1,25 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: pymssql
-Version: 2.3.2
+Version: 2.3.5
 Summary: DB-API interface to Microsoft SQL Server for Python. (new 
Cython-based version)
-Author: Damien Churchill
-Author-email: dam...@gmail.com
-Maintainer: Mikhail Terekhov
-Maintainer-email: ter...@gmail.com
-License: LGPL
-Project-URL: Documentation, http://pymssql.readthedocs.io
-Project-URL: Source, https://github.com/pymssql/pymssql
+Author-email: Damien Churchill <dam...@gmail.com>
+Maintainer-email: Mikhail Terekhov <ter...@gmail.com>
+License-Expression: LGPL-2.1-or-later
+Project-URL: homepage, https://github.com/pymssql/pymssql
+Project-URL: repository, https://github.com/pymssql/pymssql
+Project-URL: documentation, http://pymssql.readthedocs.io
+Project-URL: Bug Tracker, https://github.com/pymssql/pymssql/issues
 Project-URL: Changelog, 
https://github.com/pymssql/pymssql/blob/master/ChangeLog.rst
 Keywords: mssql,SQL Server,database,DB-API
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: GNU Library or Lesser General Public 
License (LGPL)
 Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Programming Language :: Python :: 3.8
 Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Topic :: Database
 Classifier: Topic :: Database :: Database Engines/Servers
@@ -29,21 +27,20 @@
 Classifier: Operating System :: Microsoft :: Windows
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: Unix
+Requires-Python: >=3.9
 Description-Content-Type: text/x-rst
 License-File: LICENSE
+Dynamic: description
+Dynamic: description-content-type
+Dynamic: license-file
+Dynamic: platform
 
 
 pymssql - DB-API interface to Microsoft SQL Server
 ==================================================
 
-.. image:: https://github.com/pymssql/pymssql/workflows/Linux/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Linux%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/macOS/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22macOS%22
-
-.. image:: https://github.com/pymssql/pymssql/workflows/Windows/badge.svg
-        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Windows%22
+.. image:: https://github.com/pymssql/pymssql/workflows/Wheels/badge.svg
+        :target: 
https://github.com/pymssql/pymssql/actions?query=workflow%3A%22Wheels%22
 
 .. image:: http://img.shields.io/pypi/dm/pymssql.svg
         :target: https://pypi.python.org/pypi/pymssql/
@@ -111,34 +108,28 @@
 Recent Changes
 ==============
 
-Version 2.3.2 - 2024-11-20 - Mikhail Terekhov
+
+Version 2.3.5 - 2025-06-24 - Mikhail Terekhov
 =============================================
 
 General
 -------
 
-- Update FreeTDS to 1.4.23.
-- Build wheels for Python-3.13 on Windows and MacOS.
+- Build ARM wheels for MacOS (closes #612, #727, #731, #763, #768, #822, #882).
+- Fix Windows wheels build (closes #930, #931).
+- Make mssql cython 3.1.0 compatible, thanks to Timotheus Bachinger (closes 
#937, #939, #945, #946, #948).
+- Fix manylinux1 build for Cython-3.1.0.
+- Fix sqlalchemy.orm.exc.MappedAnnotationError in tests, thanks to Timotheus 
Bachinger.
 
 Internals
 ---------
 
-- Fix build wheels for Python-3.13 on Windows.
-- Drop build in actions for Python 3.6, 3.7 and 3.8.
-- Add build in actions for Python-3.13.
-- Workaround setuptools-74.0 changes.
-
+- Use cibuildwheel in GitHub Actions.
 
-Version 2.3.1 - 2024-08-25 - Mikhail Terekhov
+Version 2.3.4 - 2025-04-01 - Mikhail Terekhov
 =============================================
 
 General
 -------
 
-- Fix SP returning NULL (closes #441).
-- Update FreeTDS to 1.4.22 (closes #895).
-- Require Cython>3.0.10.
-- Add python 3.13 Linux wheels (closes #900).
-- Drop manylinux2010 wheels.
-- Drop 3.7 and 3.8 wheels on MacOS.
-- Drop 3.6 wheels on Linux.
+- Update packaging to fix metadata, thanks to AbigailColwell.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/src/pymssql.egg-info/SOURCES.txt 
new/pymssql-2.3.5/src/pymssql.egg-info/SOURCES.txt
--- old/pymssql-2.3.2/src/pymssql.egg-info/SOURCES.txt  2024-11-21 
05:06:30.000000000 +0100
+++ new/pymssql-2.3.5/src/pymssql.egg-info/SOURCES.txt  2025-06-25 
04:28:32.000000000 +0200
@@ -16,10 +16,7 @@
 setup.py
 .github/dependabot.yml
 .github/ISSUE_TEMPLATE/bug_report.md
-.github/workflows/test_linux.yml
-.github/workflows/test_linux_aarch64.yml
-.github/workflows/test_macos.yml
-.github/workflows/test_windows.yml
+.github/workflows/build_wheels.yml
 dev/__init__.py
 dev/build.py
 dev/build_freetds.sh
@@ -30,6 +27,7 @@
 dev/memtest.py
 dev/memtest.sh
 dev/requirements-dev.txt
+dev/requirements-test.txt
 dev/test_manylinux_wheels.sh
 dev/appveyor/install-win-iconv.ps1
 dev/appveyor/install.ps1
@@ -69,6 +67,7 @@
 src/pymssql/_pymssql.pyx
 src/pymssql/exceptions.py
 src/pymssql/exceptions.pyi
+src/pymssql/py.typed
 src/pymssql/sqlfront.pxd
 src/pymssql/version.h
 src/pymssql.egg-info/PKG-INFO
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pymssql-2.3.2/tests/test_sqlalchemy.py 
new/pymssql-2.3.5/tests/test_sqlalchemy.py
--- old/pymssql-2.3.2/tests/test_sqlalchemy.py  2024-11-21 05:04:43.000000000 
+0100
+++ new/pymssql-2.3.5/tests/test_sqlalchemy.py  2025-06-25 04:28:26.000000000 
+0200
@@ -34,6 +34,7 @@
 
 class SAObj(Base):
     __tablename__ = 'sa_test_objs'
+    __allow_unmapped__ = True
     id = sa.Column(sa.Integer, primary_key=True)
     name = sa.Column(sa.String(50))
     data = sa.Column(sa.PickleType)

Reply via email to