All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
- Added Python 3.14 and Django 6.0/6.1 as template options.
- The generated
should_skipin the template's noxfile is now derived from a Django-to-minimum-Python mapping in the template extensions, rather than hardcoded per-version rules. Django 6.0+ andmainnow correctly require Python 3.12+. - Bumped the generated
django-upgradepre-commit hook to 1.31.1, which is the first pinned version that accepts a Django 5.2+--target-version. - Regenerated the examples.
- Removed EOL Python 3.9 as a template option.
- Removed EOL Django 4.2, 5.0, and 5.1 as template options.
- Dropped the
python -mprefix ingha_matrixnox session.
- Removed bootstrapping from template generation post-tasks. The tasks run in a temporary directory and so it does not create the venv or bootstrap the new project correctly.
- Removed EOL Python 3.8 as template option.
- Template is linted and bootstrapped after generation.
- Added a
gha_matrixnox session to template for generating GHA job matrix.
- Template now uses
uvas a project and dependency management tool. - GitHub Actions in template now use
astral-sh/setup-uvfor Python installation, dependency installation, and command running. - Moved documentation and copier commands to separate Just sub-modules.
- Now using
uvdev dependencies instead of[dev]extra. - Moved template's test dependencies to dedicated
[tests]extra.
- Python 3.8 support for
django-twc-packageproject. - Removed
[lint]extra from template's optional dependencies. This is now handled byuv run.
- Added correct Python version skip logic for Django 5.1 in template's
noxfile.py.
- Django 5.1 is now available as a version choice when generating template.
- Python 3.13 now selected by default in version list when generating template.
- Added both
CONTRIBUTING.mdandRELEASING.mdfiles to official documentation. - Added our documentation GitHub Team to
CODEOWNERS.
- Added
allow-prereleases: trueto all Python setup steps in GitHub Actions workflows. This should allow for easy testing of future, unreleased versions of Python.
- Changed documentation comment style to actual CSS comments in
docs/_static/css/custom.css.
- Added an initial
conftest.pyconfiguration for Pytest test suite. - Added an initial
test_conf.pyfor testing custom app settings in package'sconf.py.
- Python versions specified in all GitHub Actions workflows now surrounded by quotes, turning them from floats to strings. This avoids the potential for stripping trailing zeros, e.g.
3.10to3.1.
- Added
workflow_calltrigger totest.ymlGitHub Actions workflow, to allow for therelease.ymlworkflow to use it before cutting a new release.
- In preparation of it's upcoming release, Python 3.13 is now available as an option when generating template.
- Removed
labels.ymlGitHub Action. This is now handled by a GitHub bot. - Removed use of
westerveltco/setup-ci-actionin favor of just inlining what that action does.
- Added ruff to template's
pyproject.tomlunder dev extras. - Added
conf.pyto template for configuring library.
- Reworded two headers in the template README to better reflect their purpose.
- When cutting a release via
release.ymlGitHub Action workflow, run test suite before publishing package to PyPI. Previously the CLI toolsghandjqwere used to check the most recent run of the test suite.
- Removed unused Django 3.2 section from
should_skipfunction in template'snoxfile.py.
mypyconfiguration now excludes these directories:docs,migrations,tests, and.venv/venv.djlintconfiguration expanded.
- Dropped support for Django 3.2.
- Repo and template now have a
CODEOWNERSfile for auto-assigning reviewers to PRs.
- Added the ability to pass in arguments to the
noxfile.pytest sessions. - New
just installcommand in template package'sJustfileinstalls the package in editable mode with[dev]extras. - Added a GitHub Action workflow for syncing labels across all projects using this template.
just bootstrapcommand in template package'sJustfilenow calls@just installinstead ofuvinstallation command directly.
__template_version__variable has been removed from the template package's__init__.pyfile. This is already being set in the copier answers file, so it is unneeded.
- Python versions in template's
test.ymlGitHub Actions workflow are now correctly using the matrix version. - Adjusted how the
uvpackage is installed in thesetup-ci-actionGitHub Actions workflow.
- Changed how the package within the template is referenced when bootstrapping in editable mode. Confusingly with
uvin non-editable mode you must must specify the package name before the '@' symbol with a dot following, but in editable mode you do not need this and can reference it directly like you would expect.
- Now using
uvfor dependency management in template.
- Fixed alignment of badges in docs index.
- Now using
westerveltco/setup-ci-actionfor common Python and Node.js CI/CD setup. This action sets up a Python and Node.js environment with caching and installs all dependencies for a project. - Added example generation job to
test.ymlGitHub Actions workflow.
- Updated the
ruffconfiguration from deprecated settings to the newruffconfiguration.
- Removed the unneeded
RUN_TESTSenvironment variable from the GitHub Actions workflow.
- Added the
current_versionin.copier/package.ymlanswers file tobumpverconfiguration.
- Fixed a bug with the Python and Django versions in
.pre-commit-config.yaml.
- All
pre-commithooks have been updated to use the latest versions of the tools.django-upgradeto 1.16.0language-formatters-pre-commit-hooksto v2.12.0prettierto v4.0.0-alpha.8ruff-pre-committo 0.2.1rustywindto 0.21.0validate-pyprojectto v0.16
djhtmlhas been swapped out in favor ofdjLintfor HTML formatting.nox -l --jsonis now used to generate GitHub Actions matrix for testing.
create-release-prcommand fromJustfilewas removed and moved to a personal script.
- Path to
justcommand documentation in_cogcommand.
justis now installed when building documentation on Read the Docs.just _cogprivate command added to run the relevant docs through thecogtool. Useful for automatically generating documentation for cli tools such asjust. Currently, only thejustcommands are documented, but this can be expanded in the future (e.g.noxor Django management commands).
- Moved generation of the lists Python and Django versions in
noxfile.pyfrom Jinja2 template logic to Jinja2 extensions usingcopier-template-extensions.
- Added missing
SECRET_KEYsetting totests/settings.pyto fix thetestandtestallcommands on certain Django versions.
- Added the correct Jinja escape tags so that the
testandtestallcommands render correctly when generating a template.
- Added additional descriptions to example headings in
CHANGELOG.md. testandtestallJustfile commands now can take positional arguments to run specific tests.lintJustfile command now runs the relevantnoxcommand instead ofpre-commitdirectly.
- Moved the common test settings from plugin to
tests/settings.pyand added a note to the installation notes in README.
- Removed the
tests/plugins/dj_settings.pyfile.
generate-examplescommand now removes the previous example directory before generating an example.- Moved common test settings to separate plugin at
tests/plugins/dj_settings.py.
- Removed the dummy
tests/settings.py.
- A new
generate-examplescommand to theJustfilefor generating all of the examples at once.
- Added a few missing configuration settings to the
pyproject.tomlfile.
- Addressed a number of linting issues and nitpicks, detailed in issue #3.
Initial release! 🎉
- Initial project template.
- Initial documentation.
- Initial tests.
- Initial CI/CD (GitHub Actions).
- Josh Thomas josh@joshthomas.dev (maintainer)