Skip to content

Commit ce2cc78

Browse files
chore: Add support for Django 6.x (#15)
1 parent 7bc8db3 commit ce2cc78

16 files changed

+80
-21
lines changed

.github/workflows/ci.yml

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,50 @@ jobs:
114114
! grep -r "{{" . --include="*.py" --include="*.md" --include="*.toml"
115115
! grep -r "{%" . --include="*.py" --include="*.md" --include="*.toml"
116116
117+
test-version-matrix:
118+
name: Test Python + Django Versions
119+
runs-on: ubuntu-latest
120+
strategy:
121+
fail-fast: false
122+
matrix:
123+
python-version: ["3.12", "3.13", "3.14"]
124+
django-version: ["5.2", "6.0"]
125+
steps:
126+
- uses: actions/checkout@v6
127+
128+
- name: Set up Python ${{ matrix.python-version }}
129+
uses: actions/setup-python@v6
130+
with:
131+
python-version: ${{ matrix.python-version }}
132+
133+
- name: Install Copier
134+
run: |
135+
python -m pip install --upgrade pip
136+
pip install copier
137+
138+
- name: Generate project with Python ${{ matrix.python-version }} + Django ${{ matrix.django-version }}
139+
run: |
140+
copier copy . ../test_versions \
141+
--data project_name="Test Versions" \
142+
--data project_slug="test_versions" \
143+
--data project_description="Test Python ${{ matrix.python-version }} + Django ${{ matrix.django-version }}" \
144+
--data author_name="Django Keel CI" \
145+
--data author_email="[email protected]" \
146+
--data python_version="${{ matrix.python-version }}" \
147+
--data django_version="${{ matrix.django-version }}" \
148+
--defaults \
149+
--trust
150+
151+
- name: Verify Python version in pyproject.toml
152+
run: |
153+
cd ../test_versions
154+
grep -q 'requires-python = ">=${{ matrix.python-version }}"' pyproject.toml
155+
156+
- name: Verify Django version in pyproject.toml
157+
run: |
158+
cd ../test_versions
159+
grep -q 'django.*${{ matrix.django-version }}' pyproject.toml
160+
117161
validate-yaml:
118162
name: Validate YAML Files
119163
runs-on: ubuntu-latest
@@ -192,7 +236,7 @@ jobs:
192236

193237
all-checks:
194238
name: All Checks Passed
195-
needs: [lint, test, test-generation, validate-yaml, security, docs]
239+
needs: [lint, test, test-generation, test-version-matrix, validate-yaml, security, docs]
196240
runs-on: ubuntu-latest
197241
steps:
198242
- name: Confirm all checks passed

.github/workflows/scheduled.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ jobs:
1414
fail-fast: false
1515
matrix:
1616
python-version: ["3.12", "3.13", "3.14"]
17+
django-version: ["5.2", "6.0"]
1718
dependency-manager: [uv, poetry]
1819
database: [postgresql, sqlite-dev-postgres-prod]
1920

@@ -37,6 +38,7 @@ jobs:
3738
--data author_name="CI Test" \
3839
--data author_email="[email protected]" \
3940
--data python_version="${{ matrix.python-version }}" \
41+
--data django_version="${{ matrix.django-version }}" \
4042
--data dependency_manager="${{ matrix.dependency-manager }}" \
4143
--data database="${{ matrix.database }}" \
4244
--defaults \

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
#### Core Features
1313
- Copier-based Django project template with flexible configuration options
14-
- Django 5.2 with Python 3.12/3.13/3.14 support
14+
- Django 5.2/6.0 with Python 3.12/3.13/3.14 support
1515
- Multiple package managers: uv, Poetry
1616
- Split settings structure: base, dev, test, prod
1717
- 12-Factor App compliance with environment-based configuration
@@ -69,6 +69,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6969
#### CI/CD
7070
- GitHub Actions workflow template
7171
- GitLab CI workflow template
72+
- Python + Django version matrix testing to verify all supported combinations
73+
74+
#### Version Support
75+
- Django 5.2 and 6.0 support
76+
- Python 3.12, 3.13, and 3.14 support
7277

7378
#### Documentation
7479
- ReadTheDocs integration with MkDocs Material theme

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Build **SaaS applications**, **API backends**, **web apps**, or **internal tools
77
[![CI](https://github.com/CuriousLearner/django-keel/actions/workflows/ci.yml/badge.svg)](https://github.com/CuriousLearner/django-keel/actions/workflows/ci.yml)
88
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
99
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
10-
[![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg)](https://www.djangoproject.com/)
10+
[![Django 6.0](https://img.shields.io/badge/django-6.0-green.svg)](https://www.djangoproject.com/)
1111
[![Documentation](https://readthedocs.org/projects/django-keel/badge/?version=latest)](https://django-keel.readthedocs.io/en/latest/?badge=latest)
1212

1313
> [!NOTE]
@@ -310,17 +310,17 @@ We test Django Keel against:
310310

311311
| Python | Django | Status |
312312
| ------ | ------ | --------- |
313-
| 3.12 | 5.1 | ✅ Tested |
314313
| 3.12 | 5.2 | ✅ Tested |
315-
| 3.13 | 5.1 | ✅ Tested |
314+
| 3.12 | 6.0 | ✅ Tested |
316315
| 3.13 | 5.2 | ✅ Tested |
316+
| 3.13 | 6.0 | ✅ Tested |
317317
| 3.14 | 5.2 | ✅ Tested |
318-
| 3.14 | 5.2 | ✅ Tested |
318+
| 3.14 | 6.0 | ✅ Tested |
319319

320320
### Support Policy
321321

322322
- **Python**: Last 2-3 minor versions (currently 3.12, 3.13, 3.14)
323-
- **Django**: Last 2-3 minor versions (currently 5.1, 5.2)
323+
- **Django**: Last 2-3 minor versions (currently 5.2, 6.0)
324324
- **LTS versions** get priority bug fixes
325325
- **Security patches** backported for 1 year
326326

@@ -340,7 +340,7 @@ Every commit is tested against:
340340

341341
### 🎯 Core
342342

343-
- **Django 5.2** with Python 3.12/3.13/3.14 support
343+
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
344344
- **uv** or **Poetry** for blazing-fast dependency management
345345
- **[12-Factor App](https://12factor.net/) aligned** - Implements all 12 factors in practice ([docs](docs/12-factor.md))
346346
- Single codebase with multiple deploys

copier.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,14 @@ python_version:
6464
- "3.12"
6565
default: "3.14"
6666

67+
django_version:
68+
type: str
69+
help: Django version
70+
choices:
71+
- "5.2"
72+
- "6.0"
73+
default: "6.0"
74+
6775
dependency_manager:
6876
type: str
6977
help: Package manager

docs/12-factor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Django Keel strictly adheres to the [12-Factor App](https://12factor.net/) metho
2525
**Example:**
2626
```toml
2727
dependencies = [
28-
"django>=5.2,<5.3",
28+
"django>=5.2,<7.0",
2929
"psycopg[binary]>=3.2.0",
3030
"gunicorn>=22.0.0",
3131
]

docs/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
#### Core Features
1313
- Copier-based Django project template with flexible configuration options
14-
- Django 5.2 with Python 3.12/3.13/3.14 support
14+
- Django 5.2/6.0 with Python 3.12/3.13/3.14 support
1515
- Multiple package managers: uv, Poetry
1616
- Split settings structure: base, dev, test, prod
1717
- 12-Factor App compliance with environment-based configuration

docs/getting-started/installation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
66
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
7-
[![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg)](https://www.djangoproject.com/)
7+
[![Django 6.0](https://img.shields.io/badge/django-6.0-green.svg)](https://www.djangoproject.com/)
88

99
Django Keel is a comprehensive Copier template for Django projects that combines the best practices from over a decade of production Django development with modern tooling and deployment strategies.
1010

1111
## ✨ Features
1212

1313
### 🎯 Core
14-
- **Django 5.2** with Python 3.12/3.13/3.14 support
14+
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
1515
- **uv** or **Poetry** for blazing-fast dependency management
1616
- **12-Factor App** configuration with django-environ
1717
- **Custom User Model** from day one

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
66
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
7-
[![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg)](https://www.djangoproject.com/)
7+
[![Django 6.0](https://img.shields.io/badge/django-6.0-green.svg)](https://www.djangoproject.com/)
88
[![Documentation Status](https://readthedocs.org/projects/django-keel/badge/?version=latest)](https://django-keel.readthedocs.io/en/latest/?badge=latest)
99

1010
Build **SaaS applications**, **API backends**, **web apps**, or **internal tools** with one comprehensive template.
@@ -112,7 +112,7 @@ Visit:
112112

113113
### 🎯 Core Foundation
114114

115-
- **Django 5.2** with Python 3.12/3.13/3.14 support
115+
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
116116
- **Custom User Model** from day one
117117
- **Split Settings** (base/dev/test/prod)
118118
- **12-Factor App** configuration with django-environ

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ keywords = ["django", "template", "copier", "saas", "production"]
1616
classifiers = [
1717
"Development Status :: 4 - Beta",
1818
"Framework :: Django",
19-
"Framework :: Django :: 5.1",
2019
"Framework :: Django :: 5.2",
20+
"Framework :: Django :: 6.0",
2121
"Intended Audience :: Developers",
2222
"License :: OSI Approved :: MIT License",
2323
"Programming Language :: Python :: 3",

0 commit comments

Comments
 (0)