Skip to content

Commit bbce06a

Browse files
committed
[RELEASE] v1.3.0
1 parent 64691f2 commit bbce06a

2 files changed

Lines changed: 46 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,53 @@
11
# Changelog
22

3-
## v1.3.0 (Unreleased)
3+
## v1.3.0 (2026-05-06)
4+
5+
### Features
6+
7+
- **Architecture preset selection in interactive init**
8+
- `fastkit init --interactive` now includes an `Architecture Preset` step with `minimal`, `single-module`, `classic-layered`, and `domain-starter`.
9+
- The selected preset is saved in the interactive config and shown in the final summary.
10+
- CLI help and interactive docs were updated to match the new flow.
11+
- **Preset-aware project generation**
12+
- Interactive generation now selects a different base template for each preset.
13+
- `minimal` and `single-module` continue to use generated `main.py`, while `classic-layered` and `domain-starter` preserve the template-shipped entrypoint.
14+
- Database/auth config output paths, compatibility warnings, and app module resolution are now preset-aware.
15+
- `fastkit runserver` and generated Dockerfiles now resolve the correct app module for non-default layouts such as `src/app/main.py`.
16+
17+
### Templates
18+
19+
- **Add `fastapi-domain-starter` template**
20+
- New pyproject-first, domain-oriented starter for medium-sized FastAPI APIs.
21+
- Includes a built-in `/api/v1/health` endpoint and an example `items` domain.
22+
- Ships with FastAPI-fastkit identity markers in `pyproject.toml`.
23+
- Improve template metadata/path handling for the domain-oriented layout.
24+
- Update template README titles so `fastkit list-templates` shows readable descriptions.
25+
26+
### Documentation
27+
28+
- Add `Choosing a Starter` guide for template and preset selection.
29+
- Add `Preset Feature Matrix` reference docs for preset-specific generation behavior.
30+
- Add `fastapi-domain-starter` tutorial and generated project walkthrough.
31+
- Add translation status and source-of-truth policy docs, plus translation status notices on the English and Korean landing pages.
32+
- Refresh CLI examples and fix the Korean `init --interactive` walkthrough so docs match the current flow.
33+
34+
### Tests
35+
36+
- Add end-to-end coverage for architecture presets and `fastapi-domain-starter`.
37+
- Add regression tests for preset layout decisions, app module derivation, and interactive summary rendering.
38+
- Add package-manager compatibility coverage for `fastapi-domain-starter`, including the `pip` path.
39+
- Suite size: **612 tests passing** at the close of v1.3.0.
440

541
### Maintenances
642

7-
- **Modernize template contract to be pyproject-first** (#42)
8-
- Template inspection now accepts `pyproject.toml-tpl` (PEP 621) as the primary metadata file. A template passes structural validation as long as `tests/`, `README.md-tpl`, and **at least one** of `pyproject.toml-tpl` / `setup.py-tpl` are present. `requirements.txt-tpl` is no longer strictly required when `pyproject.toml-tpl` declares `[project].dependencies`.
9-
- `_check_dependencies` consults every available source (`requirements.txt-tpl`, `pyproject.toml-tpl` `[project].dependencies`, `setup.py-tpl` `install_requires`) independently and passes if **any** one declares `fastapi`. A template with a stale `requirements.txt-tpl` is no longer rejected when its `pyproject.toml-tpl` is authoritative.
10-
- `read_template_stack` gained a pyproject fallback between the existing `requirements.txt-tpl` and `setup.py-tpl` paths; legacy templates resolve dependencies exactly as before.
11-
- Template authoring docs (`src/fastapi_fastkit/fastapi_project_template/README.md`, `docs/en/contributing/template-creation-guide.md`, `docs/en/reference/template-quality-assurance.md`) now describe required vs optional files under the pyproject-first contract.
12-
- Added focused tests for the new rules (pyproject-only structural and dependency validation, setup.py-only legacy validation, pyproject fallback in `read_template_stack`, and `requirements.txt-tpl`-over-pyproject precedence).
13-
- **Pyproject-aware project identity detection** (follow-up to #42)
14-
- `is_fastkit_project()` now recognises FastAPI-fastkit-managed projects from `pyproject.toml` in addition to legacy `setup.py`. Detection precedence: `[tool.fastapi-fastkit].managed = true``[project].description` contains the `[FastAPI-fastkit templated]` marker (case-insensitive) → `setup.py` contains `fastapi-fastkit` (case-insensitive). Keeps the pre-existing setup.py path working; the new pyproject paths prevent pyproject-only templates from being mistaken for unrelated FastAPI projects in the user's workspace.
15-
- Canonical marker strings (`[FastAPI-fastkit templated]` and the `[tool.fastapi-fastkit]` table key `fastapi-fastkit`) are exported from `fastapi_fastkit.utils.main` as `FASTKIT_DESCRIPTION_MARKER` / `FASTKIT_TOOL_SECTION` so templates, metadata injection, and detection all reference the same strings.
16-
- `_process_pyproject_file` idempotently ensures the description marker and `[tool.fastapi-fastkit]\nmanaged = true` section are present after placeholder replacement, providing a safety net when a template author forgets to include them.
17-
- All 8 shipped `pyproject.toml-tpl` templates updated to carry `description = "[FastAPI-fastkit templated] <description>"` and a `[tool.fastapi-fastkit]` table with `managed = true`.
43+
- **Modernize template contract to be pyproject-first**
44+
- Template inspection now accepts `pyproject.toml-tpl` as a primary metadata source.
45+
- Dependency inspection and `read_template_stack` now support `pyproject.toml-tpl` alongside existing files.
46+
- Template authoring and QA docs were updated for the new contract.
47+
- **Add pyproject-aware project identity detection**
48+
- `is_fastkit_project()` now detects FastAPI-fastkit-managed projects from `pyproject.toml` as well as legacy `setup.py`.
49+
- Standardize the FastAPI-fastkit description marker and `[tool.fastapi-fastkit] managed = true` metadata across shipped pyproject templates.
50+
- Add `requirements.txt-tpl` to `fastapi-domain-starter` for full package-manager compatibility, including `pip`.
1851

1952
## v1.2.1 (2026-04-17)
2053

src/fastapi_fastkit/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.2.1"
1+
__version__ = "1.3.0"

0 commit comments

Comments
 (0)