Skip to content

chore(deps): guard against re-breaking django pin for Python <3.12 - #203

Merged
Koosha-Owji merged 2 commits into
mainfrom
chore/guard-django-python-compat
Aug 26, 2026
Merged

chore(deps): guard against re-breaking django pin for Python <3.12#203
Koosha-Owji merged 2 commits into
mainfrom
chore/guard-django-python-compat

Conversation

@dtoxvanilla1991

Copy link
Copy Markdown
Contributor

Replaces #200.

What renovate PR #200 proposed

Bump the requirements.txt line django>=4.2.0,<5.0.0; python_version < "3.12" to django>=6.1,<6.2.0; python_version < "3.12".

Why it's unsafe as-is

Django 6.0+ dropped support for Python < 3.12 - it only supports 3.12, 3.13, 3.14. Installing django>=6.1 on Python 3.9/3.10/3.11 fails, which is exactly what broke CI on PR #200 (unittest (3.10) failed, other jobs cancelled).

This isn't new: the same breaking bump was already proposed and rejected once before, in #198 (chore(deps): update dependency django to v6.1fix: scope django 6.1 to supported Python versions). Renovate re-proposed the identical breaking change in #200 because nothing in renovate.json told it the <3.12 pin was intentional.

Also worth noting: django isn't an actual runtime dependency of this SDK (it's not in pyproject.toml's dependencies) - it's only used by pytest-django for framework-detection tests, so there's no SDK-facing migration needed either way.

What this PR does instead

  • requirements.txt is left as-is (already correct/safe: django>=4.2.0,<5.0.0 for <3.12, django>=6.1,<6.2.0 for >=3.12).
  • renovate.json: added a packageRules entry that scopes allowedVersions: "<5.0.0" to just the <3.12 line (matched via matchCurrentValue), so Renovate keeps proposing Django 4.2.x patch updates for that line but can't re-suggest the incompatible 6.x bump again. The >=3.12 line is untouched and keeps getting normal 6.1.x updates.
  • CHANGELOG.md: documented the decision under Unreleased.

Follow-up

Please close #200 once this merges.

@dtoxvanilla1991
dtoxvanilla1991 requested a review from a team as a code owner August 26, 2026 00:30
@coderabbitai

coderabbitai Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4d17cb14-4242-4676-a50a-5e471e006a8c

📥 Commits

Reviewing files that changed from the base of the PR and between d58d9f4 and 19906ae.

⛔ Files ignored due to path filters (1)
  • renovate.json is excluded by !**/*.json
📒 Files selected for processing (1)
  • CHANGELOG.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The changelog adds an [Unreleased] entry for a Renovate fix. The fix prevents Django 6.x proposals for Python versions below 3.12 and retains the Django 4.2–5.0 constraint.

Changes

Django Renovate compatibility

Layer / File(s) Summary
Document Renovate compatibility fix
CHANGELOG.md
Adds an [Unreleased] entry describing the Renovate constraint for Django versions on Python <3.12.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 19906

This PR preserves the Python-compatible Django pin for older Python versions and prevents Renovate from proposing the incompatible upgrade again; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: koosha-owji

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Linked Issues check ⚠️ Warning The PR intentionally does not implement the primary requirement in [#200], which is to upgrade Django to >=6.1,<6.2.0. The claimed Renovate safeguard also cannot be verified because renovate.json is e… Either update [#200] to document that its upgrade is superseded by this compatibility fix, or implement the upgrade requested by [#200]. Review renovate.json separately to verify the allowedVersions rule and disabled automerge setting.
Out of Scope Changes check ❓ Inconclusive The visible changelog change is related to the Django and Renovate dependency objective. The claimed renovate.json change is also related, but that file is excluded by the !**/*.json path filter and c… Include renovate.json in the review or provide its relevant diff so reviewers can verify that it contains only the stated Renovate safeguard.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: preventing Renovate from re-proposing an incompatible Django version for Python versions below 3.12.
Description check ✅ Passed The description directly explains the Django compatibility problem, the Renovate configuration change, and the changelog update.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Full details: Linked Issues check

Explanation

The PR intentionally does not implement the primary requirement in [#200], which is to upgrade Django to >=6.1,<6.2.0. The claimed Renovate safeguard also cannot be verified because renovate.json is excluded from review.

Full details: Out of Scope Changes check

Explanation

The visible changelog change is related to the Django and Renovate dependency objective. The claimed renovate.json change is also related, but that file is excluded by the !**/*.json path filter and cannot be assessed for unrelated changes.

Full details: Docstring Coverage

Explanation

No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/guard-django-python-compat

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@dtoxvanilla1991 dtoxvanilla1991 self-assigned this Aug 26, 2026
@Koosha-Owji
Koosha-Owji merged commit 18f3734 into main Aug 26, 2026
8 checks passed
@Koosha-Owji
Koosha-Owji deleted the chore/guard-django-python-compat branch August 26, 2026 07:57
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.

2 participants