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)