Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

#### Core Features
- Copier-based Django project template with flexible configuration options
- Django 5.2 with Python 3.12/3.13/3.14 support
- Django 5.2/6.0 with Python 3.12/3.13/3.14 support
- Multiple package managers: uv, Poetry
- Split settings structure: base, dev, test, prod
- 12-Factor App compliance with environment-based configuration
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Build **SaaS applications**, **API backends**, **web apps**, or **internal tools
[![CI](https://github.com/CuriousLearner/django-keel/actions/workflows/ci.yml/badge.svg)](https://github.com/CuriousLearner/django-keel/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![Django 5.2](https://img.shields.io/badge/django-5.2-green.svg)](https://www.djangoproject.com/)
[![Django 6.0](https://img.shields.io/badge/django-6.0-green.svg)](https://www.djangoproject.com/)
[![Documentation](https://readthedocs.org/projects/django-keel/badge/?version=latest)](https://django-keel.readthedocs.io/en/latest/?badge=latest)

> [!NOTE]
Expand Down Expand Up @@ -312,15 +312,18 @@ We test Django Keel against:
| ------ | ------ | --------- |
| 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)
- **LTS versions** get priority bug fixes
- **Security patches** backported for 1 year

Expand All @@ -340,7 +343,7 @@ Every commit is tested against:

### 🎯 Core

- **Django 5.2** with Python 3.12/3.13/3.14 support
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
- **uv** or **Poetry** for blazing-fast dependency management
- **[12-Factor App](https://12factor.net/) aligned** - Implements all 12 factors in practice ([docs](docs/12-factor.md))
- Single codebase with multiple deploys
Expand Down
8 changes: 8 additions & 0 deletions copier.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ python_version:
- "3.14"
default: "3.14"

django_version:
type: str
help: Django version
choices:
- "5.2"
- "6.0"
default: "6.0"

dependency_manager:
type: str
help: Package manager
Expand Down
2 changes: 1 addition & 1 deletion docs/12-factor.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Django Keel strictly adheres to the [12-Factor App](https://12factor.net/) metho
**Example:**
```toml
dependencies = [
"django>=5.2,<5.3",
"django>=5.2,<=6.0",
"psycopg[binary]>=3.2.0",
"gunicorn>=22.0.0",
]
Expand Down
2 changes: 1 addition & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

#### Core Features
- Copier-based Django project template with flexible configuration options
- Django 5.2 with Python 3.12/3.13/3.14 support
- Django 5.2/6.0 with Python 3.12/3.13/3.14 support
- Multiple package managers: uv, Poetry
- Split settings structure: base, dev, test, prod
- 12-Factor App compliance with environment-based configuration
Expand Down
4 changes: 2 additions & 2 deletions docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

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

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.

## ✨ Features

### 🎯 Core
- **Django 5.2** with Python 3.12/3.13/3.14 support
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
- **uv** or **Poetry** for blazing-fast dependency management
- **12-Factor App** configuration with django-environ
- **Custom User Model** from day one
Expand Down
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

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

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

### 🎯 Core Foundation

- **Django 5.2** with Python 3.12/3.13/3.14 support
- **Django 5.2/6.0** with Python 3.12/3.13/3.14 support
- **Custom User Model** from day one
- **Split Settings** (base/dev/test/prod)
- **12-Factor App** configuration with django-environ
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ classifiers = [
"Framework :: Django",
"Framework :: Django :: 5.1",
"Framework :: Django :: 5.2",
"Framework :: Django :: 6.0",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
Expand Down
2 changes: 1 addition & 1 deletion template/CHANGELOG.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added
- Initial project setup generated with django-keel
- Django {{ '5.2' }} with Python {{ python_version }}
- Django {{ django_version }} with Python {{ python_version }}
{% if api_style == 'drf' -%}
- Django REST Framework API
{% elif api_style == 'graphql-strawberry' -%}
Expand Down
2 changes: 1 addition & 1 deletion template/README.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

## Features

- **Django {{ '5.2' }}** with Python {{ python_version }}
- **Django {{ django_version }}** with Python {{ python_version }}
- **Package Management**: {{ dependency_manager }}
- **Database**: {{ database }}
{% if cache == 'redis' -%}
Expand Down
2 changes: 1 addition & 1 deletion template/docs/development/testing.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -313,4 +313,4 @@ poetry run pytest -vv
{% if api_style != 'none' -%}
- [DRF testing](https://www.django-rest-framework.org/api-guide/testing/)
{% endif -%}
- [Django testing](https://docs.djangoproject.com/en/5.2/topics/testing/)
- [Django testing](https://docs.djangoproject.com/en/{{ django_version }}/topics/testing/)
2 changes: 1 addition & 1 deletion template/docs/index.md.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Welcome to the {{ project_name }} documentation!
## Features

### Core
- **Django 5.2** with Python {{ python_version }}
- **Django {{ django_version }}** with Python {{ python_version }}
- **Package Management**: {{ dependency_manager }}
- **Database**: {{ database }} with connection pooling
{% if cache == 'redis' -%}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ license = "{{ license }}"

[tool.poetry.dependencies]
python = "^{{ python_version }}"
django = "^5.2"
django = "^{{ django_version }}"
django-environ = "^0.11.2"
psycopg = {extras = ["binary"], version = "^3.2.0"}
{% if cache == 'redis' -%}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ requires-python = ">={{ python_version }}"
license = {text = "{{ license }}"}

dependencies = [
"django>=5.2,<5.3",
"django>={{ django_version }}",
"django-environ>=0.11.2",
"psycopg[binary]>=3.2.0",
{% if cache == 'redis' -%}
Expand Down
Loading