Python 3.14 build
- Bumped CONNECTOR_VERSION to the latest version 3.4.1 -> 3.4.7
- Bumped Django version to the latest version 4.2.16 -> 5.2.7
- Added Python 3.14 in matrix strategy
I did not intend to change " to ' in certain cases but my IDE insisted.
Why this PR?
I've decided to upgrade my Django stack from Python 3.13.3 to 3.14.0 and this package is one of those packages which have not been updated yet to support Python 3.14.0.
× Building wheel for mysqlclient (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [81 lines of output]
C:\Users\ME\AppData\Local\Temp\pip-build-env-iqxgzq2g\overlay\Lib\site-packages\setuptools\config\_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
!!
********************************************************************************
Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
By 2026-Feb-18, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
corresp(dist, value, root_dir)
C:\Users\ME\AppData\Local\Temp\pip-build-env-iqxgzq2g\overlay\Lib\site-packages\setuptools\config\_apply_pyprojecttoml.py:61: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
dist._finalize_license_expression()
C:\Users\ME\AppData\Local\Temp\pip-build-env-iqxgzq2g\overlay\Lib\site-packages\setuptools\dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: GNU General Public License v2 or later (GPLv2+)
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
# Options for building extension module:
library_dirs: ['C:/mariadb-connector\\lib\\mariadb', 'C:/mariadb-connector\\lib']
libraries: ['kernel32', 'advapi32', 'wsock32', 'shlwapi', 'Ws2_32', 'crypt32', 'secur32', 'bcrypt', 'mariadbclient']
extra_link_args: ['/MANIFEST']
include_dirs: ['C:/mariadb-connector\\include\\mariadb', 'C:/mariadb-connector\\include\\mysql', 'C:/mariadb-connector\\include']
extra_objects: []
define_macros: [('version_info', (2, 2, 7, 'final', 0)), ('__version__', '2.2.7')]
running bdist_wheel
running build
running build_py
creating build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\connections.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\converters.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\cursors.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\release.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\times.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\_exceptions.py -> build\lib.win-amd64-cpython-314\MySQLdb
copying src\MySQLdb\__init__.py -> build\lib.win-amd64-cpython-314\MySQLdb
creating build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\CR.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\ER.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\FLAG.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
copying src\MySQLdb\constants\__init__.py -> build\lib.win-amd64-cpython-314\MySQLdb\constants
running egg_info
writing src\mysqlclient.egg-info\PKG-INFO
writing dependency_links to src\mysqlclient.egg-info\dependency_links.txt
writing top-level names to src\mysqlclient.egg-info\top_level.txt
reading manifest file 'src\mysqlclient.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'src\mysqlclient.egg-info\SOURCES.txt'
copying src\MySQLdb\_mysql.c -> build\lib.win-amd64-cpython-314\MySQLdb
running build_ext
building 'MySQLdb._mysql' extension
creating build\temp.win-amd64-cpython-314\Release\src\MySQLdb
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD "-Dversion_info=(2, 2, 7, 'final', 0)" -D__version__=2.2.7 -IC:/mariadb-connector\include\mariadb -IC:/mariadb-connector\include\mysql -IC:/mariadb-connector\include -ID:\work\Project\APP-Backend\venv\include -IC:\Users\ME\AppData\Local\Programs\Python\Python314\include -IC:\Users\ME\AppData\Local\Programs\Python\Python314\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.41.34120\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.22621.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.22621.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" /Tcsrc/MySQLdb/_mysql.c /Fobuild\temp.win-amd64-cpython-314\Release\src\MySQLdb\_mysql.obj
_mysql.c
src/MySQLdb/_mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.41.34120\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mysqlclient
Failed to build mysqlclient
Solution?
I've compiled mysqlclient.whl for my windows system running Python 3.14.0, Django 5.2.7 and MariaDB C Connector 3.4.7
dist.zip and it works.
I've bumped versions in the CI/CD Pipeline in the hopes the pip issue will resolve once the correct build for the mysqlclient wheel package is available on pip. However, it seems to me that the Pipeline is not responsible for publishing to PyPi.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 88.84%. Comparing base (e2a908b) to head (25877ba).
:warning: Report is 29 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #767 +/- ##
==========================================
- Coverage 88.86% 88.84% -0.02%
==========================================
Files 7 7
Lines 548 556 +8
==========================================
+ Hits 487 494 +7
- Misses 61 62 +1
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Even while downgrading back to the default "LTS" tests, the tests fail. But 5.2.7 should be LTS, so those tests are outdated? I don't know
Yesterday I did the same - build my own whl. i've created https://github.com/PyMySQL/mysqlclient/issues/770, because i don't seen you pull request before, sorry.