Skip to content

Conversation

@CuriousLearner
Copy link
Owner

@CuriousLearner CuriousLearner commented Oct 23, 2025

Summary

Closes #13

Django 6.0b1 is released. This is a pre-relase test to have support for Django 6.x when it's released in Dec 2025.

Why

Django 6.x is planned to be released in Dec 2025. Django 6.0b1 is released and this should offer support for Django 6.x

Changes

  • Code
  • Tests
  • Docs (README / RTD)
  • Copier prompts updated

Breaking changes

  • Yes (documented in CHANGELOG with ⚠️)
  • No

Screenshots / logs

@CuriousLearner CuriousLearner changed the title [WIP] chore: Add support for Django 6.x chore: Add support for Django 6.x Oct 23, 2025
@CuriousLearner CuriousLearner marked this pull request as ready for review December 16, 2025 20:00
Copilot AI review requested due to automatic review settings December 16, 2025 20:00
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Django 6.0 to the django-keel template project, allowing users to choose between Django 5.2 and 6.0 when generating new projects. The changes prepare the template for Django 6.0's official release in December 2025, with Django 6.0b1 already available for testing.

Key Changes:

  • Added Django 6.0 as a selectable option in copier.yml configuration
  • Updated documentation badges and version references to reflect Django 5.2/6.0 support
  • Parameterized hardcoded Django version strings to use the {{ django_version }} template variable
  • Updated the testing compatibility matrix to include Django 6.0 combinations

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
copier.yml Adds django_version parameter with choices "5.2" and "6.0", defaulting to "6.0"
template/docs/index.md.jinja Replaces hardcoded "5.2" with {{ django_version }} variable
template/docs/development/testing.md.jinja Updates Django documentation link to use {{ django_version }}
template/README.md.jinja Replaces hardcoded "5.2" with {{ django_version }} variable
template/CHANGELOG.md.jinja Replaces hardcoded "5.2" with {{ django_version }} variable
pyproject.toml Adds Django 6.0 classifier
docs/index.md Updates badge from "5.2" to "6.0" and feature list to "5.2/6.0"
docs/getting-started/installation.md Updates badge and features to show "5.2/6.0" support
docs/CHANGELOG.md Updates version reference to "5.2/6.0"
docs/12-factor.md Updates dependency example constraint to ">=5.2,<=6.0"
README.md Updates badges to "6.0", adds Django 6.0 rows to testing matrix, updates feature list to "5.2/6.0"
CHANGELOG.md Updates version reference to "5.2/6.0"

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

| 3.12 | 5.2 | ✅ Tested |
| 3.12 | 6.0 | ✅ Tested |
| 3.13 | 5.1 | ✅ Tested |
| 3.13 | 5.2 | ✅ Tested |
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The testing matrix is missing a row for Python 3.13 with Django 6.0. Based on the pattern, there should be a row showing "3.13 | 6.0 | ✅ Tested" between the existing Python 3.13 rows and the Python 3.14 rows.

Suggested change
| 3.13 | 5.2 | ✅ Tested |
| 3.13 | 5.2 | ✅ Tested |
| 3.13 | 6.0 | ✅ Tested |

Copilot uses AI. Check for mistakes.
README.md Outdated
Comment on lines 313 to 326
| 3.12 | 5.1 | ✅ Tested |
| 3.12 | 5.2 | ✅ Tested |
| 3.12 | 6.0 | ✅ Tested |
| 3.13 | 5.1 | ✅ Tested |
| 3.13 | 5.2 | ✅ Tested |
| 3.14 | 6.0 | ✅ Tested |
| 3.14 | 5.1 | ✅ Tested |
| 3.14 | 5.2 | ✅ Tested |
| 3.14 | 5.2 | ✅ Tested |
| 3.14 | 6.0 | ✅ Tested |

### Support Policy

- **Python**: Last 2-3 minor versions (currently 3.12, 3.13, 3.14)
- **Django**: Last 2-3 minor versions (currently 5.1, 5.2)
- **Django**: Last 2-3 minor versions (currently 5.1, 5.2, 6.0)
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The copier.yml configuration only offers Django 5.2 and 6.0 as choices, but the README.md testing matrix and pyproject.toml classifiers reference Django 5.1 support. This creates inconsistency - users cannot actually select Django 5.1 through the template, so either Django 5.1 should be added as a choice in copier.yml, or the references to it in the testing matrix should be removed if it's no longer supported.

Copilot uses AI. Check for mistakes.
```toml
dependencies = [
"django>=5.2,<5.3",
"django>=5.2,<=6.0",
Copy link

Copilot AI Dec 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 12-factor.md documentation shows an example with a restrictive version constraint "django>=5.2,<=6.0" that doesn't align with how the actual template files handle Django versioning. The templates use either "^{{ django_version }}" (Poetry) or ">={{ django_version }}" (uv), which automatically handle version ranges. This example should be updated to reflect actual usage, or be changed to a more appropriate range like "django>=5.2,<7.0" to allow all 5.x and 6.x versions.

Suggested change
"django>=5.2,<=6.0",
"django>=5.2,<7.0",

Copilot uses AI. Check for mistakes.
* main:
  chore(deps): bump node from 20-slim to 25-slim in /template (#34)
  feat(frontend): add Vite bundling option for HTMX+Tailwind (#32)
  fix(ci): add required copier fields to scheduled workflow (#33)
  chore(deps): bump actions/checkout from 5 to 6 (#30)
  chore: Update Issue/PR template (#29)
  feat(ecs): make deployment production-ready with monitoring (#28)
  feat: add complete Fly.io deployment implementation (#27)
  fix: Remove git config changes
  fix: remove unsafe _tasks section to eliminate copier trust warning
  feat: enhance copier template user experience (#22)
  chore: Modify CI triggers for pull requests
  docs: Clarify pytest coverage implies code coverage
  docs: Update link to GitHub discussions
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 311 to +318
| Python | Django | Status |
| ------ | ------ | --------- |
| 3.12 | 5.1 | ✅ Tested |
| 3.12 | 5.2 | ✅ Tested |
| 3.13 | 5.1 | ✅ Tested |
| 3.12 | 6.0 | ✅ Tested |
| 3.13 | 5.2 | ✅ Tested |
| 3.13 | 6.0 | ✅ Tested |
| 3.14 | 5.2 | ✅ Tested |
| 3.14 | 5.2 | ✅ Tested |
| 3.14 | 6.0 | ✅ Tested |
Copy link

Copilot AI Dec 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The compatibility matrix claims that all Python + Django version combinations are tested, but the CI workflows (ci.yml and scheduled.yml) do not appear to include a matrix for testing different Django versions. Consider either updating the CI to actually test these combinations, or clarifying that these are "supported" rather than actively "tested" combinations.

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 16 out of 16 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@CuriousLearner CuriousLearner merged commit ce2cc78 into main Dec 21, 2025
46 checks passed
@CuriousLearner CuriousLearner deleted the support-django-6x branch December 21, 2025 05:32
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.

Add support for Django 6.0 [Release pending in Dec 2025]

2 participants