- New Features:
- Add `use_tailwind` and `use_htmx` fields to `StructureOptions` and expose confirmation prompts via `get_tailwind_choice` and `get_htmx_choice`.
- Persist these selections in the generated metadata and pass them through the initialization flow.
- Enhancements:
- Include `use_tailwind` and `use_htmx` values when constructing the metadata dictionary.
- Display Tailwind CSS and HTMX choices in the final confirmation output.
- Bug Fixes: none
* New Features
* Replace the singular `STATICFILES_STORAGE` assignment with a `STORAGES` dictionary defining `default` and `staticfiles` backends.
* Enhancements
* Add `DEFAULT_AUTO_FIELD` setting for consistency with recent Django recommendations.
* Make storage backend definitions clearer and more extensible.
* Bug Fixes
* None.
Why: enable support for Python 3.13.
New Features
- Updated pyproject.toml template to target Python 3.13, allowing builds with newer interpreters.
Enhancements
- Improves compatibility with upcoming Python releases.
- New Features: Automatically include app URLs in project urls.py and api/v1/urls.py; Generate full AppConfig paths using a unified utility
- Enhancements: Improved nested-app detection and path resolution across predefined, standard, single, and unified structures; Refined context transformation for base settings; Updated URL template rendering
- Bug Fixes: Fixed duplicate include‑statement handling; Corrected URL update error paths and exception safety
- Add conditional logic to `_add_to_api_v1_urls` when `structure_type` is `"predefined"`
- Include `module_name` in contexts for `justfile` and `Procfile` templates
- Clarify `module_name` usage in `.env.sample` generation comment
New Features
- Replace double‑curly placeholder syntax with direct variable usage in justfile and procfile templates.
Enhancements
- Change psycopg2-binary to psycopg[binary] in pyproject.toml template.
- Update ruff.isort known‑first‑party from project_name to module_name.
- Adjust server commands to reference module_name placeholder and use variable syntax directly.
Bug Fixes- Fix placeholder expansion in dev‑server, makemigrations, install, and remove commands.
- Correct requirements generation script to handle missing pyproject.toml gracefully.
- Resolve incorrect variable substitution in gunicorn bind commands and worker count references.
Why: expose ability to toggle usage of DATABASE_URL in generated configuration.
New Features
- Add configurable `use_database_url` parameter to control inclusion of DATABASE_URL in generated pyproject.toml.
Enhancements
- Increase flexibility of database configuration for generated Django projects.
Bug Fixes
- (none)
Add conditional import of `dj_database_url` and a directive comment for `use_database_url` to enable automatic database configuration when the `use_database_url` flag is set, improving flexibility of the production settings template.
- New Features: Introduce support for reading `DATABASE_URL` to configure Django databases automatically.
- Enhancements: Conditional import improves template modularity and reduces unnecessary dependencies.
- Bug Fixes: None.
New Features
- Add optional `dj-database-url` dependency for database URL support.
Enhancements
- Replace `{{ project_name }}` with `[[ project_name ]]` in the env template for clearer interpolation.
Bug Fixes
- None
- Switch trigger to `pull_request_target` with `opened`, `synchronize`, and `reopened` events for safer automation
- Add explicit check that the actor is `dependabot[bot]` to prevent unintended executions
- Use `GITHUB_TOKEN` instead of a dedicated secret and enable `use-github-auto-merge` for automatic merging of minor updates
Remove leading space in SECRET_KEY assignment and replace uv pip compile with uv run python ... to produce requirements.txt.
New Features
- Introduce uv-driven dependency compilation in justfile.j2
- Ensure generated requirements.txt reflects project dependencies from pyproject.toml
Enhancements
- Align secret key configuration to match production standards (no extra whitespace)
Bug Fixes
- Eliminate accidental whitespace that could cause secret key validation issues
Remove legacy template placeholders that are no longer used in the project scaffold.
- New Features:
- Enhancements: Removed unused template files
- Bug Fixes:
Introduce command-line interface and supporting modules for project initialization.
- New Features:
- Add `cli.py` with Typer commands `secret` and `app`
- Implement custom exception hierarchy in `utils/exceptions.py`
- Provide secret key generation utilities in `utils/secretkey.py`
- Add name validation logic in `utils/validators.py`
- Initialize package with empty `__init__.py`
- Enhancements:
- Update `pyproject.toml` to include new modules and console script entry points
- Bug Fixes:
- (none)
The deletion of djinit's internal modules (cli, utils, services) eliminates obsolete code and prepares the repository for a streamlined Django project initialization approach.
- New Features:
- Enhancements:
- Bug Fixes:
These files (app.py, handler.py, secret.py) were no longer referenced by the active CLI flow and their removal eliminates dead code and import side‑effects.
New Features
-
Enhancements
- Streamlined command dispatch by dropping redundant handlers.
- Reduced module surface area, improving maintainability.
Bug Fixes
- Fixed import‑induced crashes when the CLI starts without these optional sub‑commands.
New Features
- Add Typer dependency.
Enhancements
- Move packages to src/ layout and update build configuration.
- Change console scripts to use djinit.cli:app.
- Exclude django-new from ruff checks.
- Raise minimum Python version to >=3.10.
Bug Fixes
- none
Added conditional comment handling for database settings in production template, introduced DATABASE_URL generation in env_sample, and corrected readme structure rendering.
New Features
- Added conditional comment handling for `use_database_url` and `database_type` in production settings.
- Added `DATABASE_URL` template logic for MySQL and PostgreSQL in env_sample.
- Updated `readme.md` template to properly render unified_structure sections.
Enhancements
- Ensured comment syntax consistency across all template files.
- Streamlined placeholder usage for clearer project scaffolding.
Bug Fixes
- Removed stray formatting characters from comment markers.
- Enhancements:
- Moved file and directory creation helpers into CommonUtils class
- Updated all call sites to use CommonUtils methods
- Removed unused standalone utility functions and imports
- Preserved existing behavior without functional changes
- Refactor imports to use CommonUtils for resolving package names
- Update calls in `InputCollector` and `get_user_input` to use `CommonUtils.get_package_name`
- No functional change; improve code consistency and future extensibility
New Features
- Added `app.py` command to scaffold Django apps with name validation and post‑creation instructions.
- Added `secret.py` command to generate configurable secret keys and display usage guidance.
Enhancements
- Refactored command dispatch in `handler.py` to delegate to specialized command classes, removing duplicated logic.
- Improved modularity and maintainability of command implementation.
Add foundational class hierarchy and refactor the template engine to use inheritance and common utilities, enhancing extensibility and code organization.
- New Feature: Added BaseObject, BaseService, BaseCommand, and BaseUtils classes in djinit/core/base.py providing common interfaces.
- Enhancement: Refactored TemplateEngine to inherit BaseService and utilize BaseUtils for logic parsing.
- Enhancement: Updated InFileLogicParser to enforce proper stack handling and simplified conditional block processing.
- Enhancement: Consolidated utility functions via CommonUtils in generator and ProjectManager, streamlining app configuration upgrades.
- New Features
- Detect and process nested project structures, generating correct module paths for AppConfig.
- Automatically upgrade legacy app configurations from simple module paths to full AppConfig paths.
- Enhancements
- Insert full AppConfig paths into USER_DEFINED_APPS, improving template rendering for all settings files.
- Provide clearer success and upgrade messages to users.
- Bug Fixes
- Avoid duplicate app entries and handle missing USER_DEFINED_APPS sections without crashing.
- Ensure proper __init__.py creation in nested directories.
Allows the generated AppConfig class to use a custom name derived from `app_config_name`, supporting optional `app_module` specification.
New Features
- Replace `app_name|title` placeholder with `app_config_name` for flexible config naming.
- Add conditional block that sets `name` to `app_module` when provided, otherwise falls back to `app_name`.
Enhancements
- Maintain backward compatibility by defaulting to the original `app_name` behavior.
- Improve template flexibility for future naming conventions.
Bug Fixes
- None.
This change introduces a helper to replace app entries in USER_DEFINED_APPS and makes the startapp command more flexible by allowing callers to specify the app module name.
New Features:
- Add replace_app_in_user_defined_apps utility function in djinit/utils/common.py
- Introduce app_config_name context and accept app_module argument in DjangoHelper.startapp()
Enhancements:
- Preserve indentation when replacing entries
- Allow custom app module specification instead of defaulting to app_name
Bug Fixes: (none)
New Features
- Adopt double-bracket placeholders (`[[ var ]]`) and rename templates to `.py-tpl`/.`md-tpl` extensions.
- Introduce new `runtime_txt-tpl` template.
Enhancements
- Update `api_readme`, `models`, `apps`, `routes`, `pyproject`, `readme`, and `requirements` templates with new syntax and naming.
- Align placeholder naming with a unified convention.
Bug Fixes
- None.
- New Features
* Introduce InFileLogicParser with support for @IF, @ELSEIF, @ELSE, @ENDIF, @LOOP syntax
- Enhancements
* Enable nested conditionals and iteration over iterables within templates
- Bug Fixes
* None
New Features
- Adopted .py-tpl/.j2-tpl suffixes for generated templates, making them distinct and Python-specific.
Enhancements
- Refactored TemplateEngine to use InFileLogicParser instead of Jinja2, simplifying rendering logic.
- Updated CLI utility to call create_pyproject for pyproject.toml generation.
- Modified template discovery to scan only files ending in -tpl.
- Adjusted file generation paths for Django app components and configuration files.
Bug Fixes
- Resolved template path resolution issues arising from the new suffix convention.
This change updates all template references from *.j2 to *.py-tpl to align with the new file naming convention and adds the required context for URL generation.
New Features
- Updated template paths to *.py-tpl for init, manage.py, settings, and component files
- Added `url_type` context for URL generation templates
Enhancements
- Modified `create_init_file` to use `init.py-tpl` template
- Updated all `create_file_from_template` calls to reference `.py-tpl` templates
- Adjusted context for URL templates to include project‑specific data
- Switched component URL template to `config/urls.py-tpl`
Bug Fixes
- None
New Features
- Replace hardcoded `core.settings.production` with templated `{{ project_name }}.settings.production` in both ASGI and WSGI config templates, enabling per‑project settings customization.
Enhancements
- Increase template flexibility for project‑specific configuration without manual edits.
Bug Fixes
- None
Set the default DJANGO_SETTINGS_MODULE environment variable to point to the production settings module derived from the project name, ensuring the Django management script runs with the correct configuration when no explicit DJANGO_SETTINGS_MODULE is provided.
New Features
- Automatically default the DJANGO_SETTINGS_MODULE to `<project_name>.settings.production`, simplifying project setup.
Enhancements
- Improves the management script initialization by providing a sensible production settings fallback.
Bug Fixes
- None.
- New Features
- Updated CI matrix to test Python 3.12 and 3.13.
- Enhancements
- Dropped support for Python 3.10 and 3.11.
- Reduces CI runtime and resource consumption.
- Bug Fixes
- No bug fixes included.
Refines the Dependabot auto-merge workflow by removing unnecessary whitespace, simplifying the conditional syntax, and updating the token reference for improved security.
**Enhancements & Refinements**
- Removed leading whitespace at the start of the file for cleaner formatting
- Simplified the `if` condition syntax from `${{github.actor == 'dependabot[bot]' }}` to `github.actor == 'dependabot[bot]'`
- Updated the GitHub token reference from `secrets.GITHUB_TOKEN` to `secrets.DEPENDABOT_TOKEN` for better security practices
- Fixed capitalization in step name from "Merge PR from dependabot" to "Merge PR from Dependabot" for consistency
```
The dependabot auto-merge workflow has been updated to use a new action and simplified logic for merging pull requests.
- **Enhancements & Refinements**:
- Replaced `dependabot/fetch-metadata` and `peter-evans/enable-pull-request-automerge` with `fastify/github-action-merge-dependabot`
- Simplified the workflow by removing conditional logic for update types
- Updated the condition syntax to use explicit expression syntax
- Added explicit `github-token` configuration for the new action
```
The Dependabot auto-merge workflow has been simplified and focused on essential functionality. Approval steps have been removed, leaving only the core auto-merge capability for minor and patch updates.
**New Features**
- Added explicit conditional filtering to run jobs **only for Dependabot PRs**
**Enhancements & Refinements**
- Renamed workflow from **Dependabot Auto-Approve and Auto-Merge** to **Dependabot Auto-Merge** to reflect simplified scope
- Improved workflow structure with clearer YAML syntax separation
- Reorganized **Fetch Dependabot metadata** step placement for better readability
- Removed redundant GitHub script approval step to reduce complexity