Skip to content

ci: hard pin python to <3.14 to fix build loop#69

Merged
JacksonFergusonDev merged 2 commits intomainfrom
fix/renovate-config-v4
Feb 16, 2026
Merged

ci: hard pin python to <3.14 to fix build loop#69
JacksonFergusonDev merged 2 commits intomainfrom
fix/renovate-config-v4

Conversation

@JacksonFergusonDev
Copy link
Copy Markdown
Owner

@JacksonFergusonDev JacksonFergusonDev commented Feb 16, 2026

Description

This PR fixes the CI failure where Renovate effectively "broke" the build by upgrading the project's Python requirement to 3.14 while the CI environment remained pinned to 3.13.

Changes

  • pyproject.toml:
    • Changed requires-python to ">=3.13,<3.14".
    • Reason: The previous ~=3.13.0 allowed Renovate to propose ~=3.14.3 as a "minor" upgrade. The new explicit range strictly forbids 3.14, ensuring uv is never forced to look for an interpreter that doesn't exist in our CI.
  • .github/renovate.json:
    • Added a rule specifically for matchDatasources: ["python-version"].
    • Reason: Renovate treats requires-python updates differently than standard dependencies. This rule explicitly tells the bot that metadata updates for Python are also restricted to the 3.13.* regex pattern.

Context

Renovate previously opened a PR changing requires-python to ~=3.14.3. Because we successfully pinned our GitHub Actions runner to 3.13.12 in the last PR, this created a conflict:

error: The Python request ... resolved to Python 3.13.12, which is incompatible with ... >=3.14.3

This change aligns the project metadata (pyproject.toml) with the runtime reality (GitHub Actions), creating a consistent 3.13 environment.

Add a targeted rule for the "python-version" datasource. This specifically prevents Renovate from attempting to upgrade the "requires-python" field in pyproject.toml to 3.14+, ensuring project metadata remains consistent with our runtime pins.
Change `requires-python` from `~=3.13.0` to `">=3.13,<3.14"`. While the tilde operator is valid, using an explicit upper bound (<3.14) is unambiguous and prevents automated tools from interpreting the constraint as "movable" to the 3.14 release series.
@JacksonFergusonDev JacksonFergusonDev merged commit b9cd390 into main Feb 16, 2026
1 check passed
@JacksonFergusonDev JacksonFergusonDev deleted the fix/renovate-config-v4 branch February 16, 2026 05:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant