Summary
When applying extension layers, mergepyproject.toml (and related tooling tables) instead of last-writer-wins copy overwrite.
Today #27 / loaders only do copy_tree. Extensions that need deps must either ship a full pyproject.toml or document manual reconcile — blocking realistic FastAPI/docker/postgres-style addons.
CNA mapping
CNA: package/index.js + package/dependencies.js / devDependencies.js merge into package.json.
CPA target: deep-merge TOML tables for:
[project].dependencies / optional-dependencies[dependency-groups][tool.ruff], [tool.pytest.ini_options], etc. (documented merge rules)
Acceptance criteria
Related
Blocked by
none (can ship before Jinja)
Blocks
Richer cpa-templates extensions that only declare deps/tooling overlays.
Reference
Summary
When applying extension layers, merge
pyproject.toml(and related tooling tables) instead of last-writer-wins copy overwrite.Today
#27/ loaders only docopy_tree. Extensions that need deps must either ship a fullpyproject.tomlor document manual reconcile — blocking realistic FastAPI/docker/postgres-style addons.CNA mapping
CNA:
package/index.js+package/dependencies.js/devDependencies.jsmerge intopackage.json.CPA target: deep-merge TOML tables for:
[project].dependencies/ optional-dependencies[dependency-groups][tool.ruff],[tool.pytest.ini_options], etc. (documented merge rules)Acceptance criteria
pyproject.tomlrather than blindly replacing itpyproject.tomlfiles keep current copy/overwrite (or.appendonce that lands)cpa-templatesAUTHORING at themRelated
.template/.appendwork (can land independently)Blocked by
none (can ship before Jinja)
Blocks
Richer
cpa-templatesextensions that only declare deps/tooling overlays.Reference
package.ts/package/systempackages/create-python-app-core/src/create_python_app_core/loaders.py