From 7da50e65482a3c7d1ebcd7b1a864dc8312694d63 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 18:34:33 +0100 Subject: [PATCH 1/9] CHANGE: Bump connector version; Linted yaml file --- .github/workflows/windows.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index f8dbf87a..e99f647c 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -2,7 +2,7 @@ name: Build windows wheels on: push: - branches: ["main", "ci"] + branches: ['main', 'ci'] pull_request: workflow_dispatch: @@ -10,7 +10,7 @@ jobs: build: runs-on: windows-latest env: - CONNECTOR_VERSION: "3.4.1" + CONNECTOR_VERSION: '3.4.7' steps: - name: Cache Connector id: cache-connector @@ -79,10 +79,10 @@ jobs: - name: Build wheels working-directory: mysqlclient env: - CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9" - CIBW_ARCHS: "AMD64" + CIBW_PROJECT_REQUIRES_PYTHON: '>=3.9' + CIBW_ARCHS: 'AMD64' CIBW_TEST_COMMAND: 'python -c "import MySQLdb; print(MySQLdb.version_info)" ' - run: "python -m cibuildwheel --prerelease-pythons --output-dir dist" + run: 'python -m cibuildwheel --prerelease-pythons --output-dir dist' - name: Build sdist working-directory: mysqlclient From 38840cd990ea35b763571c67c87bb8f0e93822f0 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 18:35:33 +0100 Subject: [PATCH 2/9] ADD: Python 3.14; CHANGE: Linted yaml --- .github/workflows/tests.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index cf784c78..5bf38b13 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -2,7 +2,7 @@ name: Test on: push: - branches: ["main"] + branches: ['main'] pull_request: jobs: @@ -13,9 +13,9 @@ jobs: PIP_DISABLE_PIP_VERSION_CHECK: 1 strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] + python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] include: - - python-version: "3.12" + - python-version: '3.12' mariadb: 1 steps: - if: ${{ matrix.mariadb }} @@ -41,8 +41,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - cache: "pip" - cache-dependency-path: "requirements.txt" + cache: 'pip' + cache-dependency-path: 'requirements.txt' allow-prereleases: true - name: Install mysqlclient @@ -52,7 +52,7 @@ jobs: - name: Install test dependencies run: | pip install -r requirements.txt - + - name: Run tests env: TESTDB: actions.cnf @@ -62,13 +62,13 @@ jobs: - uses: codecov/codecov-action@v5 django-test: - name: "Run Django LTS test suite" + name: 'Run Django LTS test suite' needs: test runs-on: ubuntu-latest env: PIP_NO_PYTHON_VERSION_WARNING: 1 PIP_DISABLE_PIP_VERSION_CHECK: 1 - DJANGO_VERSION: "4.2.16" + DJANGO_VERSION: '4.2.16' steps: - name: Start MySQL run: | @@ -83,9 +83,9 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: "3.12" - cache: "pip" - cache-dependency-path: "ci/django-requirements.txt" + python-version: '3.14' + cache: 'pip' + cache-dependency-path: 'ci/django-requirements.txt' - name: Install mysqlclient run: | From b76908e6ba2dc5d67a8afd27e692ce8136212161 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 18:40:04 +0100 Subject: [PATCH 3/9] CHANGE: Bump Django version --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 5bf38b13..c3ff3fd8 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -68,7 +68,7 @@ jobs: env: PIP_NO_PYTHON_VERSION_WARNING: 1 PIP_DISABLE_PIP_VERSION_CHECK: 1 - DJANGO_VERSION: '4.2.16' + DJANGO_VERSION: '5.2.7' steps: - name: Start MySQL run: | From edec79aede4fd52d2458b379b087ba8f63b4c585 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 19:11:53 +0100 Subject: [PATCH 4/9] FIX: Character encoding --- ci/test_mysql.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/test_mysql.py b/ci/test_mysql.py index 498be7cf..18d213ac 100644 --- a/ci/test_mysql.py +++ b/ci/test_mysql.py @@ -19,7 +19,7 @@ "HOST": "127.0.0.1", "USER": "scott", "PASSWORD": "tiger", - "TEST": {"CHARSET": "utf8mb3", "COLLATION": "utf8mb3_general_ci"}, + "TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"}, }, "other": { "ENGINE": "django.db.backends.mysql", @@ -27,7 +27,7 @@ "HOST": "127.0.0.1", "USER": "scott", "PASSWORD": "tiger", - "TEST": {"CHARSET": "utf8mb3", "COLLATION": "utf8mb3_general_ci"}, + "TEST": {"CHARSET": "utf8mb4", "COLLATION": "utf8mb4_general_ci"}, }, } From 5ea1f5e2fff283369a8991643af8e67fbe8a271b Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 19:12:36 +0100 Subject: [PATCH 5/9] REMOVE: Pre-release versions of Python due to 3.14 falsely labeld as pre-release --- .github/workflows/windows.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index e99f647c..b0634119 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -82,7 +82,7 @@ jobs: CIBW_PROJECT_REQUIRES_PYTHON: '>=3.9' CIBW_ARCHS: 'AMD64' CIBW_TEST_COMMAND: 'python -c "import MySQLdb; print(MySQLdb.version_info)" ' - run: 'python -m cibuildwheel --prerelease-pythons --output-dir dist' + run: 'python -m cibuildwheel --output-dir dist' # We removed '--prerelease-pythons', Python 3.14 is still flagged as prerelease but has been released - name: Build sdist working-directory: mysqlclient From 5e5702ec79f59e8aa22d1f99223eda073056ec42 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 19:27:17 +0100 Subject: [PATCH 6/9] FIX: Python 3.14 is missing, we now build with that specific version --- .github/workflows/windows.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/windows.yaml b/.github/workflows/windows.yaml index b0634119..81dbbe5c 100644 --- a/.github/workflows/windows.yaml +++ b/.github/workflows/windows.yaml @@ -74,15 +74,18 @@ jobs: cat site.cfg - uses: actions/setup-python@v5 + with: + python-version: '3.14.0' - name: Install cibuildwheel - run: python -m pip install cibuildwheel + run: python -m pip install --upgrade cibuildwheel - name: Build wheels working-directory: mysqlclient env: CIBW_PROJECT_REQUIRES_PYTHON: '>=3.9' CIBW_ARCHS: 'AMD64' + CIBW_BUILD: 'cp3*-win_amd64' CIBW_TEST_COMMAND: 'python -c "import MySQLdb; print(MySQLdb.version_info)" ' - run: 'python -m cibuildwheel --output-dir dist' # We removed '--prerelease-pythons', Python 3.14 is still flagged as prerelease but has been released + run: 'python -m cibuildwheel --output-dir dist' - name: Build sdist working-directory: mysqlclient From e80add56ce189588c033b5e58b1b9719c59fde6a Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 19:33:10 +0100 Subject: [PATCH 7/9] CHANGE: The test failure is due to a Django test (test_pickle_errors_detection) that expects a TypeError when unpickling a custom exception, but in Python 3.14, the exception is now picklable, causing the assertion to fail. --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index c3ff3fd8..39213766 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -83,7 +83,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.14' + python-version: '3.13' cache: 'pip' cache-dependency-path: 'ci/django-requirements.txt' From 41dd0793af8d50647cd7a2684bcb2239d551224e Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 19:56:41 +0100 Subject: [PATCH 8/9] CHANGE: Downgrade python version for tests --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 39213766..0e0ff82f 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -83,7 +83,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v5 with: - python-version: '3.13' + python-version: '3.12' cache: 'pip' cache-dependency-path: 'ci/django-requirements.txt' From 25877ba32eb80f5fe629f73df4f615e89815ee40 Mon Sep 17 00:00:00 2001 From: 0x78f1935 Date: Tue, 28 Oct 2025 20:16:37 +0100 Subject: [PATCH 9/9] CHANGE: Downgrade Django version for tests (old LTS) --- .github/workflows/tests.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 0e0ff82f..079c9094 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -68,7 +68,7 @@ jobs: env: PIP_NO_PYTHON_VERSION_WARNING: 1 PIP_DISABLE_PIP_VERSION_CHECK: 1 - DJANGO_VERSION: '5.2.7' + DJANGO_VERSION: '4.2.16' steps: - name: Start MySQL run: |