From 8dba75249e379eab8cf6cc798a7cc12b1f17a8bc Mon Sep 17 00:00:00 2001 From: Brian Kohan Date: Wed, 24 Sep 2025 12:31:18 -0400 Subject: [PATCH 1/2] simplify CI with prerelease python flag --- .github/workflows/lint.yml | 15 ++++++++++++--- .github/workflows/test.yml | 37 ++++++++++++++++++++++--------------- uv.lock | 24 ++++++++++++------------ 3 files changed, 46 insertions(+), 30 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 90a0de2..f1c7093 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: # run static analysis on bleeding and trailing edges - python-version: [ '3.9', '3.13' ] + python-version: [ '3.9', '3.11', '3.14' ] django-version: - '3.2' # LTS April 2024 - '4.2' # LTS April 2026 @@ -36,11 +36,19 @@ jobs: exclude: - python-version: '3.9' django-version: '4.2' - - python-version: '3.13' - django-version: '3.2' - python-version: '3.9' django-version: '5.2' + - python-version: '3.11' + django-version: '3.2' + - python-version: '3.11' + django-version: '5.2' + + - python-version: '3.14' + django-version: '3.2' + - python-version: '3.14' + django-version: '4.2' + env: RDBMS: sqlite TEST_PYTHON_VERSION: ${{ matrix.python-version }} @@ -53,6 +61,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v6 with: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2bef8f0..38c84f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14.0-rc.3'] + python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] postgres-version: ['9.6', '12', 'latest'] psycopg-version: ['psycopg2', 'psycopg3'] django-version: @@ -81,15 +81,15 @@ jobs: psycopg-version: 'psycopg2' - - python-version: '3.14.0-rc.3' + - python-version: '3.14' django-version: '3.2' - - python-version: '3.14.0-rc.3' + - python-version: '3.14' django-version: '4.2' - - python-version: '3.14.0-rc.3' + - python-version: '3.14' django-version: '5.1' # https://github.com/psycopg/psycopg2/pull/1695 - - python-version: '3.14.0-rc.3' + - python-version: '3.14' psycopg-version: 'psycopg2' env: @@ -130,6 +130,7 @@ jobs: uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v6 with: @@ -174,7 +175,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.9', '3.13'] + python-version: [ '3.9', '3.14'] django-version: - '3.2' # LTS April 2024 - '4.2' # LTS April 2026 @@ -182,7 +183,7 @@ jobs: exclude: - python-version: '3.9' django-version: '5.2' - - python-version: '3.13' + - python-version: '3.14' django-version: '3.2' steps: @@ -192,6 +193,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v6 with: @@ -231,7 +233,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.9', '3.13'] + python-version: [ '3.9', '3.14'] mysql-version: ['5.7', 'latest'] mysqlclient-version: ['1.4.3', ''] django-version: @@ -239,7 +241,7 @@ jobs: - '4.2' # LTS April 2026 - '5.2' # LTS April 2028 exclude: - - python-version: '3.13' + - python-version: '3.14' django-version: '3.2' - python-version: '3.9' django-version: '5.2' @@ -291,6 +293,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install Emacs if: ${{ github.event.inputs.debug == 'true' }} run: | @@ -340,7 +343,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.9', '3.13'] + python-version: [ '3.9', '3.14'] mysqlclient-version: ['1.4.3', ''] mariadb-version: ['10.2', 'latest'] mariadb-healthcheck: ["mysqladmin ping", "healthcheck.sh --connect --innodb_initialized"] @@ -349,7 +352,7 @@ jobs: - '4.2' # LTS April 2026 - '5.2' # LTS April 2028 exclude: - - python-version: '3.13' + - python-version: '3.14' django-version: '3.2' - python-version: '3.9' django-version: '5.2' @@ -396,6 +399,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install Emacs if: ${{ github.event.inputs.debug == 'true' }} run: | @@ -497,6 +501,7 @@ jobs: uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install Emacs if: ${{ github.event.inputs.debug == 'true' }} run: | @@ -551,14 +556,14 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.9', '3.13'] + python-version: [ '3.9', '3.14'] django-version: - '3.2' # LTS April 2024 - '5.2' # LTS April 2028 exclude: - python-version: '3.9' django-version: '5.2' - - python-version: '3.13' + - python-version: '3.14' django-version: '3.2' steps: @@ -568,6 +573,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v6 with: @@ -612,14 +618,14 @@ jobs: strategy: fail-fast: false matrix: - python-version: [ '3.9', '3.13'] + python-version: [ '3.9', '3.14'] django-version: - '3.2' # LTS April 2024 - '5.2' # LTS April 2028 exclude: - python-version: '3.9' django-version: '5.2' - - python-version: '3.13' + - python-version: '3.14' django-version: '3.2' steps: @@ -629,6 +635,7 @@ jobs: id: sp with: python-version: ${{ matrix.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v6 with: diff --git a/uv.lock b/uv.lock index ed0d8ff..e456307 100644 --- a/uv.lock +++ b/uv.lock @@ -50,7 +50,7 @@ wheels = [ [[package]] name = "anyio" -version = "4.10.0" +version = "4.11.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, @@ -58,21 +58,21 @@ dependencies = [ { name = "sniffio" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f1/b4/636b3b65173d3ce9a38ef5f0522789614e590dab6a8d505340a4efe4c567/anyio-4.10.0.tar.gz", hash = "sha256:3f3fae35c96039744587aa5b8371e7e8e603c0702999535961dd336026973ba6", size = 213252, upload-time = "2025-08-04T08:54:26.451Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/12/e5e0282d673bb9746bacfb6e2dba8719989d3660cdb2ea79aee9a9651afb/anyio-4.10.0-py3-none-any.whl", hash = "sha256:60e474ac86736bbfd6f210f7a61218939c318f43f9972497381f1c5e930ed3d1", size = 107213, upload-time = "2025-08-04T08:54:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, ] [[package]] name = "asgiref" -version = "3.9.1" +version = "3.9.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/61/0aa957eec22ff70b830b22ff91f825e70e1ef732c06666a805730f28b36b/asgiref-3.9.1.tar.gz", hash = "sha256:a5ab6582236218e5ef1648f242fd9f10626cfd4de8dc377db215d5d5098e3142", size = 36870, upload-time = "2025-07-08T09:07:43.344Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/bf/0f3ecda32f1cb3bf1dca480aca08a7a8a3bdc4bed2343a103f30731565c9/asgiref-3.9.2.tar.gz", hash = "sha256:a0249afacb66688ef258ffe503528360443e2b9a8d8c4581b6ebefa58c841ef1", size = 36894, upload-time = "2025-09-23T15:00:55.136Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/3c/0464dcada90d5da0e71018c04a140ad6349558afb30b3051b4264cc5b965/asgiref-3.9.1-py3-none-any.whl", hash = "sha256:f3bba7092a48005b5f5bacd747d36ee4a5a61f4a269a6df590b43144355ebd2c", size = 23790, upload-time = "2025-07-08T09:07:41.548Z" }, + { url = "https://files.pythonhosted.org/packages/c7/d1/69d02ce34caddb0a7ae088b84c356a625a93cd4ff57b2f97644c03fad905/asgiref-3.9.2-py3-none-any.whl", hash = "sha256:0b61526596219d70396548fc003635056856dba5d0d086f86476f10b33c75960", size = 23788, upload-time = "2025-09-23T15:00:53.627Z" }, ] [[package]] @@ -3590,7 +3590,7 @@ wheels = [ [[package]] name = "uvicorn" -version = "0.36.0" +version = "0.37.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click", version = "8.1.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -3598,9 +3598,9 @@ dependencies = [ { name = "h11" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ef/5e/f0cd46063a02fd8515f0e880c37d2657845b7306c16ce6c4ffc44afd9036/uvicorn-0.36.0.tar.gz", hash = "sha256:527dc68d77819919d90a6b267be55f0e76704dca829d34aea9480be831a9b9d9", size = 80032, upload-time = "2025-09-20T01:07:14.418Z" } +sdist = { url = "https://files.pythonhosted.org/packages/71/57/1616c8274c3442d802621abf5deb230771c7a0fec9414cb6763900eb3868/uvicorn-0.37.0.tar.gz", hash = "sha256:4115c8add6d3fd536c8ee77f0e14a7fd2ebba939fed9b02583a97f80648f9e13", size = 80367, upload-time = "2025-09-23T13:33:47.486Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/96/06/5cc0542b47c0338c1cb676b348e24a1c29acabc81000bced518231dded6f/uvicorn-0.36.0-py3-none-any.whl", hash = "sha256:6bb4ba67f16024883af8adf13aba3a9919e415358604ce46780d3f9bdc36d731", size = 67675, upload-time = "2025-09-20T01:07:12.984Z" }, + { url = "https://files.pythonhosted.org/packages/85/cd/584a2ceb5532af99dd09e50919e3615ba99aa127e9850eafe5f31ddfdb9a/uvicorn-0.37.0-py3-none-any.whl", hash = "sha256:913b2b88672343739927ce381ff9e2ad62541f9f8289664fa1d1d3803fa2ce6c", size = 67976, upload-time = "2025-09-23T13:33:45.842Z" }, ] [[package]] @@ -3736,11 +3736,11 @@ wheels = [ [[package]] name = "wcwidth" -version = "0.2.13" +version = "0.2.14" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/30/6b0809f4510673dc723187aeaf24c7f5459922d01e2f794277a3dfb90345/wcwidth-0.2.14.tar.gz", hash = "sha256:4d478375d31bc5395a3c55c40ccdf3354688364cd61c4f6adacaa9215d0b3605", size = 102293, upload-time = "2025-09-22T16:29:53.023Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" }, + { url = "https://files.pythonhosted.org/packages/af/b5/123f13c975e9f27ab9c0770f514345bd406d0e8d3b7a0723af9d43f710af/wcwidth-0.2.14-py2.py3-none-any.whl", hash = "sha256:a7bb560c8aee30f9957e5f9895805edd20602f2d7f720186dfd906e82b4982e1", size = 37286, upload-time = "2025-09-22T16:29:51.641Z" }, ] [[package]] From 2f8d279224f0f6edd3170afc75a548f9837b3d6e Mon Sep 17 00:00:00 2001 From: Brian Kohan Date: Fri, 26 Sep 2025 09:47:59 -0700 Subject: [PATCH 2/2] remove 3.14/4.2 CI runs --- .github/workflows/test.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 38c84f3..a6a353c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -185,6 +185,8 @@ jobs: django-version: '5.2' - python-version: '3.14' django-version: '3.2' + - python-version: '3.14' + django-version: '4.2' steps: - uses: actions/checkout@v5 @@ -245,6 +247,8 @@ jobs: django-version: '3.2' - python-version: '3.9' django-version: '5.2' + - python-version: '3.14' + django-version: '4.2' - django-version: '3.2' @@ -356,6 +360,8 @@ jobs: django-version: '3.2' - python-version: '3.9' django-version: '5.2' + - python-version: '3.14' + django-version: '4.2' - django-version: '3.2' mariadb-version: 'latest' @@ -565,6 +571,8 @@ jobs: django-version: '5.2' - python-version: '3.14' django-version: '3.2' + - python-version: '3.14' + django-version: '4.2' steps: - uses: actions/checkout@v5 @@ -627,6 +635,8 @@ jobs: django-version: '5.2' - python-version: '3.14' django-version: '3.2' + - python-version: '3.14' + django-version: '4.2' steps: - uses: actions/checkout@v5