create-forge 0.2.1__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {create_forge-0.2.1 → create_forge-0.3.0}/CHANGELOG.md +35 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/PKG-INFO +106 -11
- {create_forge-0.2.1 → create_forge-0.3.0}/README.md +104 -9
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/adr/README.md +12 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/README.md +21 -2
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/08-reference-archetype-validation/README.md +5 -1
- create_forge-0.3.0/docs/roadmap-v1/roadmap/09-blueprint-compatibility/README.md +62 -0
- create_forge-0.3.0/docs/roadmap-v2/README.md +55 -0
- create_forge-0.3.0/docs/roadmap-v2/roadmap/10-data-science-architecture-contract/README.md +61 -0
- create_forge-0.3.0/docs/roadmap-v2/roadmap/11-reusable-data-science-capabilities/README.md +59 -0
- create_forge-0.3.0/docs/roadmap-v2/roadmap/12-data-science-archetype/README.md +60 -0
- create_forge-0.3.0/docs/roadmap-v2/roadmap/13-data-science-cli-integration/README.md +97 -0
- create_forge-0.3.0/docs/roadmap-v2/roadmap/14-data-science-validation-and-rollout/README.md +92 -0
- create_forge-0.3.0/examples/README.md +91 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/pyproject.toml +18 -12
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/cli.py +506 -35
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/compat.py +18 -8
- create_forge-0.3.0/src/create_forge/pipeline.py +310 -0
- create_forge-0.3.0/src/create_forge/prompts.py +601 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/runner.py +25 -11
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/spec.py +169 -1
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/conftest.py +42 -0
- create_forge-0.3.0/tests/installed_client.py +307 -0
- create_forge-0.3.0/tests/test_archetype_parity.py +215 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_cli.py +389 -32
- create_forge-0.3.0/tests/test_component_selection.py +974 -0
- create_forge-0.3.0/tests/test_data_science_pipeline.py +538 -0
- create_forge-0.3.0/tests/test_downstream_reference.py +397 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_e2e_engine_generation.py +94 -12
- create_forge-0.3.0/tests/test_e2e_installed_data_science.py +478 -0
- create_forge-0.3.0/tests/test_e2e_installed_rollout.py +712 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_engine_adapter.py +35 -15
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_engine_contract.py +90 -5
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_engine_cross_repository.py +90 -9
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_pipeline.py +158 -16
- create_forge-0.3.0/tests/test_policy_hook.py +177 -0
- create_forge-0.3.0/tests/test_prompts.py +497 -0
- create_forge-0.3.0/tests/test_reference_client_boundary.py +87 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_runner.py +66 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_update.py +66 -3
- create_forge-0.2.1/docs/roadmap-v1/roadmap/09-blueprint-compatibility/README.md +0 -25
- create_forge-0.2.1/src/create_forge/pipeline.py +0 -166
- create_forge-0.2.1/src/create_forge/prompts.py +0 -231
- create_forge-0.2.1/tests/test_archetype_parity.py +0 -161
- create_forge-0.2.1/tests/test_prompts.py +0 -187
- {create_forge-0.2.1 → create_forge-0.3.0}/.gitignore +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/LICENSE +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/00-governance-and-principles/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/01-python-core/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/02-developer-experience/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/03-quality-and-ci/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/04-runtime-and-configuration/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/05-security-and-supply-chain/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/06-extension-and-composition-contract/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/docs/roadmap-v1/roadmap/07-forge-cli-integration/README.md +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/__init__.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/config.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/engine.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/models.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/registry.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/staging.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/src/create_forge/templates.toml +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/__init__.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_adr.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_config.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_drift.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_e2e_generation.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_labels.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_models.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_registry.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_spec.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_staging.py +0 -0
- {create_forge-0.2.1 → create_forge-0.3.0}/tests/test_update_network.py +0 -0
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
Generated by git-cliff from Conventional Commits.
|
|
4
|
+
## [0.3.0] - 2026-09-05
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
- Handle template clone failures
|
|
9
|
+
|
|
10
|
+
### Documentation
|
|
11
|
+
|
|
12
|
+
- Link canonical organisation policy model
|
|
13
|
+
- Sync canonical Stage 09 contracts
|
|
14
|
+
- Validate the reference-client boundary
|
|
15
|
+
- Add Data Science CLI roadmap
|
|
16
|
+
- Add Data Science CLI issue plan
|
|
17
|
+
- Link canonical Data Science project shape
|
|
18
|
+
- Link canonical Data Science capability contracts
|
|
19
|
+
- Link production Jupyter capability
|
|
20
|
+
- Link production Scientific Python capability
|
|
21
|
+
- Record forge-template 0.4.0 release
|
|
22
|
+
- Define generic component-selection CLI conventions (#122)
|
|
23
|
+
|
|
24
|
+
### Features
|
|
25
|
+
|
|
26
|
+
- Define the downstream policy-consumption hook (#97)
|
|
27
|
+
- Add a downstream CLI integration reference (#98)
|
|
28
|
+
- Add dry-run support to update
|
|
29
|
+
- Prompt engine options from discovery, not the registry (#102)
|
|
30
|
+
- Adopt the forge-template 0.4 compatibility line (#121)
|
|
31
|
+
- Select capabilities and platforms from discovery (#123)
|
|
32
|
+
- Collect options for every selected component (#124)
|
|
33
|
+
|
|
34
|
+
### Testing
|
|
35
|
+
|
|
36
|
+
- Validate the Data Science preview pipeline (#125)
|
|
37
|
+
- Validate installed Data Science generation (#127)
|
|
38
|
+
- Complete the rollout regression and failure matrix (#128)
|
|
4
39
|
## [0.2.1] - 2026-08-31
|
|
5
40
|
|
|
6
41
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: create-forge
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Scaffold modern Python projects from maintained templates.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Sandsy09/create-forge
|
|
6
6
|
Project-URL: Repository, https://github.com/Sandsy09/create-forge
|
|
@@ -26,7 +26,7 @@ Requires-Dist: questionary>=2.0
|
|
|
26
26
|
Requires-Dist: rich>=13.9
|
|
27
27
|
Requires-Dist: typer>=0.15
|
|
28
28
|
Provides-Extra: engine
|
|
29
|
-
Requires-Dist: forge-template<0.
|
|
29
|
+
Requires-Dist: forge-template<0.5,>=0.4.1; extra == 'engine'
|
|
30
30
|
Requires-Dist: uv<0.13,>=0.12; extra == 'engine'
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
@@ -89,6 +89,9 @@ uvx create-forge new "My Lib" --yes \
|
|
|
89
89
|
--data build_backend=hatchling \
|
|
90
90
|
--data versioning=vcs \
|
|
91
91
|
--data type_checking=both
|
|
92
|
+
|
|
93
|
+
# Validate an update without changing project files
|
|
94
|
+
uvx create-forge update --dry-run
|
|
92
95
|
```
|
|
93
96
|
|
|
94
97
|
| Command | What it does |
|
|
@@ -102,6 +105,9 @@ uvx create-forge new "My Lib" --yes \
|
|
|
102
105
|
Useful flags on `new`: `--template/-t`, `--path/-p`, `--data/-d`, `--yes/-y`,
|
|
103
106
|
`--ref`, `--dry-run`.
|
|
104
107
|
|
|
108
|
+
Useful flags on `update`: `--ref`, `--dry-run`. An update dry run validates the
|
|
109
|
+
requested template update but does not apply it or produce a file-by-file diff.
|
|
110
|
+
|
|
105
111
|
## Configuration
|
|
106
112
|
|
|
107
113
|
Optional. Saves retyping the same answers:
|
|
@@ -146,6 +152,27 @@ and [component manifest protocol v1](https://github.com/Sandsy09/forge-template/
|
|
|
146
152
|
are now implemented behind the canonical
|
|
147
153
|
[stable template-engine API](https://github.com/Sandsy09/forge-template/blob/main/docs/template-engine-api.md)
|
|
148
154
|
([ADR 0029](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0029-stable-template-engine-api.md)).
|
|
155
|
+
The canonical
|
|
156
|
+
[organisation-policy protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md)
|
|
157
|
+
defines how downstream clients resolve component-selection defaults and
|
|
158
|
+
constraints before constructing that effective ProjectSpec. CF-09.01
|
|
159
|
+
([ADR 0022](docs/adr/0022-downstream-organisation-policy-hook.md)) delivered
|
|
160
|
+
the client-side consumption hook — this repository still resolves no policy
|
|
161
|
+
itself; see the canonical
|
|
162
|
+
[downstream policy-consumption contract](docs/organisation-policy-consumption.md).
|
|
163
|
+
The canonical
|
|
164
|
+
[safe extension contract](https://github.com/Sandsy09/forge-template/blob/main/docs/extension-points.md),
|
|
165
|
+
[organisation-policy fixture](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy-fixtures.md),
|
|
166
|
+
[compatibility policy](https://github.com/Sandsy09/forge-template/blob/main/docs/compatibility-policy.md),
|
|
167
|
+
and [no-copy proof](https://github.com/Sandsy09/forge-template/blob/main/docs/no-copy-inheritance.md)
|
|
168
|
+
complete forge-template's Stage 09 boundary. They deny arbitrary file
|
|
169
|
+
replacement and prove that a client can retain policy/orchestration concerns
|
|
170
|
+
without copying engine content or importing private engine modules. The
|
|
171
|
+
decisions are recorded by forge-template
|
|
172
|
+
[ADRs 0039](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0039-deny-policy-file-overrides.md),
|
|
173
|
+
[0040](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0040-organisation-policy-reference-fixture.md),
|
|
174
|
+
[0041](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0041-forge-blueprint-compatibility-policy.md),
|
|
175
|
+
and [0042](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0042-validate-no-copy-downstream-inheritance.md).
|
|
149
176
|
The accepted
|
|
150
177
|
[Library archetype contract](https://github.com/Sandsy09/forge-template/blob/main/docs/library-archetype.md)
|
|
151
178
|
defines the first production component, implemented on `forge-template/main`
|
|
@@ -172,9 +199,13 @@ The engine now also defines in-memory
|
|
|
172
199
|
([ADR 0030](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0030-generated-project-validation.md))
|
|
173
200
|
before rendered output is returned; `render_project` already calls it before
|
|
174
201
|
`--engine-preview` receives a result.
|
|
175
|
-
This repository
|
|
176
|
-
`>=0.
|
|
177
|
-
|
|
202
|
+
This repository depends on a real, released `forge-template` range —
|
|
203
|
+
`>=0.4.1,<0.5`. [ADR 0026](docs/adr/0026-adopt-the-0-4-engine-compatibility-line.md)
|
|
204
|
+
moved it from the first assigned `>=0.3.1,<0.4`, and
|
|
205
|
+
[ADR 0031](docs/adr/0031-adopt-the-reviewed-forge-template-0-4-1-release.md)
|
|
206
|
+
adopted the reviewed `0.4.1` release as its lower bound. It is published to
|
|
207
|
+
PyPI with
|
|
208
|
+
`uv>=0.12,<0.13` as the optional `engine` extra
|
|
178
209
|
(`pip install 'create-forge[engine]'`; [#9](https://github.com/Sandsy09/create-forge/issues/9),
|
|
179
210
|
[ADR 0018](docs/adr/0018-pypi-distribution-and-the-first-engine-range.md)) —
|
|
180
211
|
rather than a development-only pin. That range is reachable only behind
|
|
@@ -200,12 +231,76 @@ issue.
|
|
|
200
231
|
|
|
201
232
|
## Using this at work
|
|
202
233
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
234
|
+
The preferred route for organisation defaults, required selections, and
|
|
235
|
+
forbidden selections is a downstream client of the public `forge-template`
|
|
236
|
+
engine, resolving the canonical
|
|
237
|
+
[organisation-policy protocol](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md)
|
|
238
|
+
before constructing a ProjectSpec — see the canonical
|
|
239
|
+
[downstream policy-consumption contract](docs/organisation-policy-consumption.md)
|
|
240
|
+
and [ADR 0022](docs/adr/0022-downstream-organisation-policy-hook.md).
|
|
241
|
+
[`examples/downstream_cli.py`](examples/downstream_cli.py) is a runnable,
|
|
242
|
+
second, independent client demonstrating exactly this — no dependency on
|
|
243
|
+
`create-forge` at all — see the canonical
|
|
244
|
+
[downstream client reference](docs/downstream-client-reference.md) and
|
|
245
|
+
[ADR 0023](docs/adr/0023-downstream-client-reference.md).
|
|
246
|
+
[ADR 0024](docs/adr/0024-reference-client-not-framework-dependency.md)
|
|
247
|
+
completes the Stage 09 boundary: `create-forge` is one reference client, not a
|
|
248
|
+
framework dependency for that client, the engine, or generated projects.
|
|
249
|
+
|
|
250
|
+
Forking this repository remains appropriate only for genuinely custom
|
|
251
|
+
executable template content that has no equivalent in the reviewed public
|
|
252
|
+
engine — point the bundled registry at your own templates and maintain the
|
|
253
|
+
fork internally, as v0.1.x always supported. See the
|
|
254
|
+
[integration contract](docs/integration-contract.md) for the full boundary.
|
|
255
|
+
|
|
256
|
+
The [accepted Data Science shape](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-archetype.md)
|
|
257
|
+
is an independent, package-backed, notebook-oriented third archetype. The
|
|
258
|
+
[initial capability contracts](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-capabilities.md)
|
|
259
|
+
define its required reusable Jupyter tooling and independently optional
|
|
260
|
+
Scientific Python stack. FT-11.02 implements Jupyter under [ADR
|
|
261
|
+
0050](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0050-production-jupyter-capability.md),
|
|
262
|
+
and FT-11.03 implements Scientific Python under [ADR
|
|
263
|
+
0051](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0051-production-scientific-python-capability.md).
|
|
264
|
+
Stage 11 then validated their production composition, and Stage 12 added and
|
|
265
|
+
validated the `data-science` archetype. The complete five-component catalogue
|
|
266
|
+
is published as
|
|
267
|
+
[`forge-template 0.4.0`](https://github.com/Sandsy09/forge-template/releases/tag/v0.4.0)
|
|
268
|
+
on [PyPI](https://pypi.org/project/forge-template/0.4.0/); its
|
|
269
|
+
[published acceptance evidence](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-validation.md#published-040-release-verification)
|
|
270
|
+
was the immutable provider hand-off to Stage 13.
|
|
271
|
+
[CF-13.01](https://github.com/Sandsy09/create-forge/issues/106)
|
|
272
|
+
([ADR 0026](docs/adr/0026-adopt-the-0-4-engine-compatibility-line.md)) adopted
|
|
273
|
+
`forge-template>=0.4,<0.5`, so the engine-preview path now discovers all five
|
|
274
|
+
components, and CF-13.02
|
|
275
|
+
([ADR 0027](docs/adr/0027-generic-component-selection-conventions.md)) fixed
|
|
276
|
+
how they are selected in the canonical
|
|
277
|
+
[component selection contract](docs/component-selection.md). CF-13.03
|
|
278
|
+
([ADR 0028](docs/adr/0028-discovery-driven-component-selection.md)) implemented
|
|
279
|
+
capability and platform selection behind `--engine-preview`, and CF-13.04
|
|
280
|
+
([ADR 0029](docs/adr/0029-per-component-option-collection.md)) per-component
|
|
281
|
+
option collection and `--component-option`. CF-13.05
|
|
282
|
+
([ADR 0030](docs/adr/0030-data-science-preview-pipeline-validation.md))
|
|
283
|
+
validated the Data Science composition through the shared pipeline against the
|
|
284
|
+
released engine, closing **Stage 13**; Stage 14 then takes the released client
|
|
285
|
+
and engine pair through installed-console validation and rollout. CF-14.01
|
|
286
|
+
([ADR 0031](docs/adr/0031-adopt-the-reviewed-forge-template-0-4-1-release.md))
|
|
287
|
+
adopts the reviewed `forge-template 0.4.1` release as the new
|
|
288
|
+
`>=0.4.1,<0.5` lower bound and prepares create-forge `0.3.0`. CF-14.02
|
|
289
|
+
([ADR 0032](docs/adr/0032-validate-installed-data-science-generation.md))
|
|
290
|
+
validates both Data Science compositions through the installed candidate
|
|
291
|
+
wheel, and CF-14.03
|
|
292
|
+
([ADR 0033](docs/adr/0033-complete-rollout-regression-validation.md)) reuses it
|
|
293
|
+
for the Library / CLI Application engine paths, the engine-less default Copier
|
|
294
|
+
path, a real out-of-range engine, and the full failure matrix; CF-14.04 owns
|
|
295
|
+
publication. See the canonical
|
|
296
|
+
[installed Data Science validation](docs/installed-data-science-validation.md)
|
|
297
|
+
and
|
|
298
|
+
[rollout regression and failure validation](docs/rollout-regression-validation.md)
|
|
299
|
+
records. The
|
|
300
|
+
[Data Science roadmap](docs/roadmap-v2/README.md) runs Stages 10–14.
|
|
301
|
+
All 24 child issues are filed and attached across both repositories; GitHub
|
|
302
|
+
issue bodies and native relationships are authoritative. The default Copier
|
|
303
|
+
path remains unchanged.
|
|
209
304
|
|
|
210
305
|
## Contributing
|
|
211
306
|
|
|
@@ -57,6 +57,9 @@ uvx create-forge new "My Lib" --yes \
|
|
|
57
57
|
--data build_backend=hatchling \
|
|
58
58
|
--data versioning=vcs \
|
|
59
59
|
--data type_checking=both
|
|
60
|
+
|
|
61
|
+
# Validate an update without changing project files
|
|
62
|
+
uvx create-forge update --dry-run
|
|
60
63
|
```
|
|
61
64
|
|
|
62
65
|
| Command | What it does |
|
|
@@ -70,6 +73,9 @@ uvx create-forge new "My Lib" --yes \
|
|
|
70
73
|
Useful flags on `new`: `--template/-t`, `--path/-p`, `--data/-d`, `--yes/-y`,
|
|
71
74
|
`--ref`, `--dry-run`.
|
|
72
75
|
|
|
76
|
+
Useful flags on `update`: `--ref`, `--dry-run`. An update dry run validates the
|
|
77
|
+
requested template update but does not apply it or produce a file-by-file diff.
|
|
78
|
+
|
|
73
79
|
## Configuration
|
|
74
80
|
|
|
75
81
|
Optional. Saves retyping the same answers:
|
|
@@ -114,6 +120,27 @@ and [component manifest protocol v1](https://github.com/Sandsy09/forge-template/
|
|
|
114
120
|
are now implemented behind the canonical
|
|
115
121
|
[stable template-engine API](https://github.com/Sandsy09/forge-template/blob/main/docs/template-engine-api.md)
|
|
116
122
|
([ADR 0029](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0029-stable-template-engine-api.md)).
|
|
123
|
+
The canonical
|
|
124
|
+
[organisation-policy protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md)
|
|
125
|
+
defines how downstream clients resolve component-selection defaults and
|
|
126
|
+
constraints before constructing that effective ProjectSpec. CF-09.01
|
|
127
|
+
([ADR 0022](docs/adr/0022-downstream-organisation-policy-hook.md)) delivered
|
|
128
|
+
the client-side consumption hook — this repository still resolves no policy
|
|
129
|
+
itself; see the canonical
|
|
130
|
+
[downstream policy-consumption contract](docs/organisation-policy-consumption.md).
|
|
131
|
+
The canonical
|
|
132
|
+
[safe extension contract](https://github.com/Sandsy09/forge-template/blob/main/docs/extension-points.md),
|
|
133
|
+
[organisation-policy fixture](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy-fixtures.md),
|
|
134
|
+
[compatibility policy](https://github.com/Sandsy09/forge-template/blob/main/docs/compatibility-policy.md),
|
|
135
|
+
and [no-copy proof](https://github.com/Sandsy09/forge-template/blob/main/docs/no-copy-inheritance.md)
|
|
136
|
+
complete forge-template's Stage 09 boundary. They deny arbitrary file
|
|
137
|
+
replacement and prove that a client can retain policy/orchestration concerns
|
|
138
|
+
without copying engine content or importing private engine modules. The
|
|
139
|
+
decisions are recorded by forge-template
|
|
140
|
+
[ADRs 0039](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0039-deny-policy-file-overrides.md),
|
|
141
|
+
[0040](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0040-organisation-policy-reference-fixture.md),
|
|
142
|
+
[0041](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0041-forge-blueprint-compatibility-policy.md),
|
|
143
|
+
and [0042](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0042-validate-no-copy-downstream-inheritance.md).
|
|
117
144
|
The accepted
|
|
118
145
|
[Library archetype contract](https://github.com/Sandsy09/forge-template/blob/main/docs/library-archetype.md)
|
|
119
146
|
defines the first production component, implemented on `forge-template/main`
|
|
@@ -140,9 +167,13 @@ The engine now also defines in-memory
|
|
|
140
167
|
([ADR 0030](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0030-generated-project-validation.md))
|
|
141
168
|
before rendered output is returned; `render_project` already calls it before
|
|
142
169
|
`--engine-preview` receives a result.
|
|
143
|
-
This repository
|
|
144
|
-
`>=0.
|
|
145
|
-
|
|
170
|
+
This repository depends on a real, released `forge-template` range —
|
|
171
|
+
`>=0.4.1,<0.5`. [ADR 0026](docs/adr/0026-adopt-the-0-4-engine-compatibility-line.md)
|
|
172
|
+
moved it from the first assigned `>=0.3.1,<0.4`, and
|
|
173
|
+
[ADR 0031](docs/adr/0031-adopt-the-reviewed-forge-template-0-4-1-release.md)
|
|
174
|
+
adopted the reviewed `0.4.1` release as its lower bound. It is published to
|
|
175
|
+
PyPI with
|
|
176
|
+
`uv>=0.12,<0.13` as the optional `engine` extra
|
|
146
177
|
(`pip install 'create-forge[engine]'`; [#9](https://github.com/Sandsy09/create-forge/issues/9),
|
|
147
178
|
[ADR 0018](docs/adr/0018-pypi-distribution-and-the-first-engine-range.md)) —
|
|
148
179
|
rather than a development-only pin. That range is reachable only behind
|
|
@@ -168,12 +199,76 @@ issue.
|
|
|
168
199
|
|
|
169
200
|
## Using this at work
|
|
170
201
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
202
|
+
The preferred route for organisation defaults, required selections, and
|
|
203
|
+
forbidden selections is a downstream client of the public `forge-template`
|
|
204
|
+
engine, resolving the canonical
|
|
205
|
+
[organisation-policy protocol](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md)
|
|
206
|
+
before constructing a ProjectSpec — see the canonical
|
|
207
|
+
[downstream policy-consumption contract](docs/organisation-policy-consumption.md)
|
|
208
|
+
and [ADR 0022](docs/adr/0022-downstream-organisation-policy-hook.md).
|
|
209
|
+
[`examples/downstream_cli.py`](examples/downstream_cli.py) is a runnable,
|
|
210
|
+
second, independent client demonstrating exactly this — no dependency on
|
|
211
|
+
`create-forge` at all — see the canonical
|
|
212
|
+
[downstream client reference](docs/downstream-client-reference.md) and
|
|
213
|
+
[ADR 0023](docs/adr/0023-downstream-client-reference.md).
|
|
214
|
+
[ADR 0024](docs/adr/0024-reference-client-not-framework-dependency.md)
|
|
215
|
+
completes the Stage 09 boundary: `create-forge` is one reference client, not a
|
|
216
|
+
framework dependency for that client, the engine, or generated projects.
|
|
217
|
+
|
|
218
|
+
Forking this repository remains appropriate only for genuinely custom
|
|
219
|
+
executable template content that has no equivalent in the reviewed public
|
|
220
|
+
engine — point the bundled registry at your own templates and maintain the
|
|
221
|
+
fork internally, as v0.1.x always supported. See the
|
|
222
|
+
[integration contract](docs/integration-contract.md) for the full boundary.
|
|
223
|
+
|
|
224
|
+
The [accepted Data Science shape](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-archetype.md)
|
|
225
|
+
is an independent, package-backed, notebook-oriented third archetype. The
|
|
226
|
+
[initial capability contracts](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-capabilities.md)
|
|
227
|
+
define its required reusable Jupyter tooling and independently optional
|
|
228
|
+
Scientific Python stack. FT-11.02 implements Jupyter under [ADR
|
|
229
|
+
0050](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0050-production-jupyter-capability.md),
|
|
230
|
+
and FT-11.03 implements Scientific Python under [ADR
|
|
231
|
+
0051](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0051-production-scientific-python-capability.md).
|
|
232
|
+
Stage 11 then validated their production composition, and Stage 12 added and
|
|
233
|
+
validated the `data-science` archetype. The complete five-component catalogue
|
|
234
|
+
is published as
|
|
235
|
+
[`forge-template 0.4.0`](https://github.com/Sandsy09/forge-template/releases/tag/v0.4.0)
|
|
236
|
+
on [PyPI](https://pypi.org/project/forge-template/0.4.0/); its
|
|
237
|
+
[published acceptance evidence](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-validation.md#published-040-release-verification)
|
|
238
|
+
was the immutable provider hand-off to Stage 13.
|
|
239
|
+
[CF-13.01](https://github.com/Sandsy09/create-forge/issues/106)
|
|
240
|
+
([ADR 0026](docs/adr/0026-adopt-the-0-4-engine-compatibility-line.md)) adopted
|
|
241
|
+
`forge-template>=0.4,<0.5`, so the engine-preview path now discovers all five
|
|
242
|
+
components, and CF-13.02
|
|
243
|
+
([ADR 0027](docs/adr/0027-generic-component-selection-conventions.md)) fixed
|
|
244
|
+
how they are selected in the canonical
|
|
245
|
+
[component selection contract](docs/component-selection.md). CF-13.03
|
|
246
|
+
([ADR 0028](docs/adr/0028-discovery-driven-component-selection.md)) implemented
|
|
247
|
+
capability and platform selection behind `--engine-preview`, and CF-13.04
|
|
248
|
+
([ADR 0029](docs/adr/0029-per-component-option-collection.md)) per-component
|
|
249
|
+
option collection and `--component-option`. CF-13.05
|
|
250
|
+
([ADR 0030](docs/adr/0030-data-science-preview-pipeline-validation.md))
|
|
251
|
+
validated the Data Science composition through the shared pipeline against the
|
|
252
|
+
released engine, closing **Stage 13**; Stage 14 then takes the released client
|
|
253
|
+
and engine pair through installed-console validation and rollout. CF-14.01
|
|
254
|
+
([ADR 0031](docs/adr/0031-adopt-the-reviewed-forge-template-0-4-1-release.md))
|
|
255
|
+
adopts the reviewed `forge-template 0.4.1` release as the new
|
|
256
|
+
`>=0.4.1,<0.5` lower bound and prepares create-forge `0.3.0`. CF-14.02
|
|
257
|
+
([ADR 0032](docs/adr/0032-validate-installed-data-science-generation.md))
|
|
258
|
+
validates both Data Science compositions through the installed candidate
|
|
259
|
+
wheel, and CF-14.03
|
|
260
|
+
([ADR 0033](docs/adr/0033-complete-rollout-regression-validation.md)) reuses it
|
|
261
|
+
for the Library / CLI Application engine paths, the engine-less default Copier
|
|
262
|
+
path, a real out-of-range engine, and the full failure matrix; CF-14.04 owns
|
|
263
|
+
publication. See the canonical
|
|
264
|
+
[installed Data Science validation](docs/installed-data-science-validation.md)
|
|
265
|
+
and
|
|
266
|
+
[rollout regression and failure validation](docs/rollout-regression-validation.md)
|
|
267
|
+
records. The
|
|
268
|
+
[Data Science roadmap](docs/roadmap-v2/README.md) runs Stages 10–14.
|
|
269
|
+
All 24 child issues are filed and attached across both repositories; GitHub
|
|
270
|
+
issue bodies and native relationships are authoritative. The default Copier
|
|
271
|
+
path remains unchanged.
|
|
177
272
|
|
|
178
273
|
## Contributing
|
|
179
274
|
|
|
@@ -24,6 +24,18 @@ format](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
|
|
|
24
24
|
- [0019 — CLI archetype-parity review](0019-cli-archetype-parity-review.md)
|
|
25
25
|
- [0020 — Test the public engine path end to end](0020-engine-path-end-to-end-tests.md)
|
|
26
26
|
- [0021 — Finalise engine-generated lockfiles in the client](0021-client-finalises-engine-lockfiles.md)
|
|
27
|
+
- [0022 — Downstream organisation-policy consumption hook](0022-downstream-organisation-policy-hook.md)
|
|
28
|
+
- [0023 — Downstream client reference](0023-downstream-client-reference.md)
|
|
29
|
+
- [0024 — Keep create-forge a reference client, not a framework dependency](0024-reference-client-not-framework-dependency.md)
|
|
30
|
+
- [0025 — Prompt the engine path from discovery, not the Copier registry](0025-engine-native-prompt-flow.md)
|
|
31
|
+
- [0026 — Adopt the forge-template 0.4 compatibility line](0026-adopt-the-0-4-engine-compatibility-line.md)
|
|
32
|
+
- [0027 — Select components from discovery, with owner-qualified options](0027-generic-component-selection-conventions.md)
|
|
33
|
+
- [0028 — Select capabilities and platforms from one discovered catalogue](0028-discovery-driven-component-selection.md)
|
|
34
|
+
- [0029 — Collect and serialise options for every selected component](0029-per-component-option-collection.md)
|
|
35
|
+
- [0030 — Validate the Data Science preview pipeline against the released engine](0030-data-science-preview-pipeline-validation.md)
|
|
36
|
+
- [0031 — Adopt the reviewed forge-template 0.4.1 release](0031-adopt-the-reviewed-forge-template-0-4-1-release.md)
|
|
37
|
+
- [0032 — Validate Data Science through the installed create-forge candidate](0032-validate-installed-data-science-generation.md)
|
|
38
|
+
- [0033 — Complete the rollout regression and failure matrix at the installed boundary](0033-complete-rollout-regression-validation.md)
|
|
27
39
|
|
|
28
40
|
Add a new record by copying the most recent one and incrementing the number.
|
|
29
41
|
Records are immutable: supersede them rather than editing.
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Forge Foundation Roadmap Pack — Two-Repository Edition
|
|
2
2
|
|
|
3
|
+
> **Completed historical roadmap.** Stages 00–09 are closed. Paths remain
|
|
4
|
+
> stable as decision and issue evidence. New Data Science work continues in
|
|
5
|
+
> the [Stage 10–14 roadmap](../roadmap-v2/README.md).
|
|
6
|
+
|
|
3
7
|
This revision models Forge as two independent repositories that work together through an explicit contract:
|
|
4
8
|
|
|
5
9
|
- **`forge-template`** owns generated content, component metadata and the template/composition engine.
|
|
@@ -51,8 +55,23 @@ workflows, which remain independently owned and unchanged.
|
|
|
51
55
|
The canonical
|
|
52
56
|
[ProjectSpec protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/project-spec.md)
|
|
53
57
|
defines the strict effective generation request owned by `forge-template`.
|
|
54
|
-
`create-forge` retains construction and user-facing orchestration
|
|
55
|
-
|
|
58
|
+
`create-forge` retains construction and user-facing orchestration. The canonical
|
|
59
|
+
[organisation-policy protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md)
|
|
60
|
+
defines how downstream clients resolve component-selection policy before
|
|
61
|
+
constructing that effective request. CF-09.01
|
|
62
|
+
([ADR 0022](https://github.com/Sandsy09/create-forge/blob/main/docs/adr/0022-downstream-organisation-policy-hook.md))
|
|
63
|
+
delivered the client hook; `create-forge` still consumes no policy itself.
|
|
64
|
+
Forge-template Epic 09 is complete through its canonical
|
|
65
|
+
[extension contract](https://github.com/Sandsy09/forge-template/blob/main/docs/extension-points.md),
|
|
66
|
+
[policy fixture](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy-fixtures.md),
|
|
67
|
+
[compatibility policy](https://github.com/Sandsy09/forge-template/blob/main/docs/compatibility-policy.md),
|
|
68
|
+
and [no-copy proof](https://github.com/Sandsy09/forge-template/blob/main/docs/no-copy-inheritance.md).
|
|
69
|
+
Forge-template [ADRs 0039–0042](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/README.md)
|
|
70
|
+
record those four decisions.
|
|
71
|
+
Create-forge Epic #40 and #53–#55 are complete under
|
|
72
|
+
[ADR 0024](../adr/0024-reference-client-not-framework-dependency.md), which
|
|
73
|
+
validates the client-owned half without making `create-forge` a shared
|
|
74
|
+
framework dependency.
|
|
56
75
|
The canonical
|
|
57
76
|
[component manifest protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/component-manifests.md)
|
|
58
77
|
defines engine-owned bundled component metadata and compatibility. The
|
|
@@ -44,7 +44,11 @@
|
|
|
44
44
|
(`pipeline._resolved_component_options`) is now gated by a discovered
|
|
45
45
|
descriptor rather than a hardcoded archetype id. The engine path's
|
|
46
46
|
Library-shaped prompt set was recorded, not fixed, and tracked by
|
|
47
|
-
[create-forge#91](https://github.com/Sandsy09/create-forge/issues/91)
|
|
47
|
+
[create-forge#91](https://github.com/Sandsy09/create-forge/issues/91) —
|
|
48
|
+
since closed via
|
|
49
|
+
[ADR 0025](https://github.com/Sandsy09/create-forge/blob/main/docs/adr/0025-engine-native-prompt-flow.md):
|
|
50
|
+
`--engine-preview` now prompts directly from the selected archetype's own
|
|
51
|
+
discovered `ComponentDescriptor.options` and reads no registry data at all.
|
|
48
52
|
- ~~**CF-08.04 — Extend end-to-end generation to the public engine**~~ —
|
|
49
53
|
complete via
|
|
50
54
|
[ADR 0020](https://github.com/Sandsy09/create-forge/blob/main/docs/adr/0020-engine-path-end-to-end-tests.md)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Stage 09 — Blueprint Compatibility
|
|
2
|
+
|
|
3
|
+
## Repository ownership
|
|
4
|
+
|
|
5
|
+
### forge-template
|
|
6
|
+
|
|
7
|
+
- [x] **FT-09.01 — Define organisation policy model** — completed by the
|
|
8
|
+
canonical [organisation-policy protocol v1](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy.md),
|
|
9
|
+
[ADR 0038](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0038-organisation-policy-selection-model.md),
|
|
10
|
+
and [forge-template PR #89](https://github.com/Sandsy09/forge-template/pull/89).
|
|
11
|
+
- [x] **FT-09.02 — Define safe override and extension points** — completed by
|
|
12
|
+
the canonical [extension contract](https://github.com/Sandsy09/forge-template/blob/main/docs/extension-points.md),
|
|
13
|
+
[ADR 0039](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0039-deny-policy-file-overrides.md),
|
|
14
|
+
and [forge-template PR #90](https://github.com/Sandsy09/forge-template/pull/90).
|
|
15
|
+
- [x] **FT-09.03 — Create generic downstream policy reference fixture** —
|
|
16
|
+
completed by the canonical [fixture guide](https://github.com/Sandsy09/forge-template/blob/main/docs/organisation-policy-fixtures.md),
|
|
17
|
+
[ADR 0040](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0040-organisation-policy-reference-fixture.md),
|
|
18
|
+
and [forge-template PR #91](https://github.com/Sandsy09/forge-template/pull/91).
|
|
19
|
+
- [x] **FT-09.04 — Define Forge-Blueprint compatibility policy** — completed
|
|
20
|
+
by the canonical [compatibility policy](https://github.com/Sandsy09/forge-template/blob/main/docs/compatibility-policy.md),
|
|
21
|
+
[ADR 0041](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0041-forge-blueprint-compatibility-policy.md),
|
|
22
|
+
and [forge-template PR #92](https://github.com/Sandsy09/forge-template/pull/92).
|
|
23
|
+
- [x] **FT-09.05 — Validate no-copy inheritance model** — completed by the
|
|
24
|
+
canonical [no-copy proof](https://github.com/Sandsy09/forge-template/blob/main/docs/no-copy-inheritance.md),
|
|
25
|
+
[ADR 0042](https://github.com/Sandsy09/forge-template/blob/main/docs/adr/0042-validate-no-copy-downstream-inheritance.md),
|
|
26
|
+
and [forge-template PR #93](https://github.com/Sandsy09/forge-template/pull/93).
|
|
27
|
+
|
|
28
|
+
Forge-template [Epic #18](https://github.com/Sandsy09/forge-template/issues/18)
|
|
29
|
+
and its milestone are complete. Its contracts keep policy selection-only,
|
|
30
|
+
deny arbitrary file replacement, define compatibility, and prove public-
|
|
31
|
+
facade reuse without copied Foundation/component source. The private fixture
|
|
32
|
+
catalogue remains a forge-template test seam, not a client plugin mechanism.
|
|
33
|
+
|
|
34
|
+
### create-forge
|
|
35
|
+
|
|
36
|
+
- Epic: [CF-EPIC-09 / #40](https://github.com/Sandsy09/create-forge/issues/40)
|
|
37
|
+
- [x] [**CF-09.01 — Define downstream policy-consumption hook**](https://github.com/Sandsy09/create-forge/issues/53)
|
|
38
|
+
— complete. `pipeline.build_generation_request` accepts a `selection`/
|
|
39
|
+
`provenance` pair built from `spec.SelectionRequest`/`SelectionProvenance`;
|
|
40
|
+
`create-forge` ships no resolver and reads no policy document by design.
|
|
41
|
+
See [ADR 0022](https://github.com/Sandsy09/create-forge/blob/main/docs/adr/0022-downstream-organisation-policy-hook.md)
|
|
42
|
+
and the canonical [downstream policy-consumption contract](https://github.com/Sandsy09/create-forge/blob/main/docs/organisation-policy-consumption.md).
|
|
43
|
+
- [x] [**CF-09.02 — Create downstream CLI integration reference**](https://github.com/Sandsy09/create-forge/issues/54)
|
|
44
|
+
— complete. `examples/downstream_cli.py`: a second, independent
|
|
45
|
+
Blueprint-style CLI over the public `forge_template` facade, with its own
|
|
46
|
+
compatibility bounds and its own minimal organisation-policy resolver, and
|
|
47
|
+
no dependency on `create-forge` at all (an AST guard proves it). See
|
|
48
|
+
[ADR 0023](https://github.com/Sandsy09/create-forge/blob/main/docs/adr/0023-downstream-client-reference.md)
|
|
49
|
+
and the canonical [downstream client reference](https://github.com/Sandsy09/create-forge/blob/main/docs/downstream-client-reference.md).
|
|
50
|
+
- [x] [**CF-09.03 — Validate create-forge is a reference client, not a framework dependency**](https://github.com/Sandsy09/create-forge/issues/55)
|
|
51
|
+
— complete. [ADR 0024](../../../adr/0024-reference-client-not-framework-dependency.md)
|
|
52
|
+
records the strict one-way dependency, the living
|
|
53
|
+
[integration contract](../../../integration-contract.md) maps every
|
|
54
|
+
acceptance criterion to executable evidence, and both production
|
|
55
|
+
archetypes are checked for Forge-free generated dependencies and locks.
|
|
56
|
+
|
|
57
|
+
## Stage completion rule
|
|
58
|
+
|
|
59
|
+
- [x] Repo-local issues are complete or explicitly deferred.
|
|
60
|
+
- [x] Cross-repository blockers are resolved.
|
|
61
|
+
- [x] Public contracts changed by this stage are documented/versioned.
|
|
62
|
+
- [x] No implementation concern is duplicated across repositories.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Forge Data Science Roadmap — Two-Repository Edition
|
|
2
|
+
|
|
3
|
+
This roadmap continues the completed
|
|
4
|
+
[Forge Foundation roadmap](../roadmap-v1/README.md) through Stages 10–14.
|
|
5
|
+
It plans the next production archetype without reopening the Foundation,
|
|
6
|
+
composition, reference-client, or Blueprint decisions completed in Stages
|
|
7
|
+
00–09.
|
|
8
|
+
|
|
9
|
+
The target is a package-backed, notebook-oriented Data Science project with
|
|
10
|
+
reusable optional capabilities. Exact scientific libraries, notebook front
|
|
11
|
+
ends, data-versioning systems, model tooling, and deployment integrations are
|
|
12
|
+
not selected here; Stage 10 owns those decisions.
|
|
13
|
+
|
|
14
|
+
Delivery remains behind `create-forge new --engine-preview`. Retiring the
|
|
15
|
+
default direct-Copier path is a separate future initiative.
|
|
16
|
+
|
|
17
|
+
Stages 10–12 are complete. The package-bound five-component catalogue is
|
|
18
|
+
published as
|
|
19
|
+
[`forge-template 0.4.0`](https://github.com/Sandsy09/forge-template/releases/tag/v0.4.0)
|
|
20
|
+
on [PyPI](https://pypi.org/project/forge-template/0.4.0/). Stage 13 is
|
|
21
|
+
complete: CF-13.01 (ADR 0026) adopted the `forge-template>=0.4,<0.5`
|
|
22
|
+
compatibility line, so `--engine-preview` discovery now returns all five
|
|
23
|
+
descriptors, and CF-13.02 (ADR 0027) fixed the generic component-selection
|
|
24
|
+
CLI conventions, which CF-13.03 (ADR 0028) implemented for capabilities and
|
|
25
|
+
platforms and CF-13.04 (ADR 0029) for per-component options, and CF-13.05
|
|
26
|
+
(ADR 0030) validated the Data Science composition through the shared pipeline
|
|
27
|
+
against the released engine, closing CF-EPIC-13. Stage 14 takes the released
|
|
28
|
+
client and engine pair through installed-console validation and rollout.
|
|
29
|
+
Provider Stage 14 is complete and published the reviewed
|
|
30
|
+
`forge-template 0.4.1` release. CF-14.01 (ADR 0031) adopts it as create-forge's
|
|
31
|
+
`>=0.4.1,<0.5` lower bound and prepares create-forge `0.3.0`; CF-14.02
|
|
32
|
+
(ADR 0032) completes installed-console Data Science validation, and CF-14.03
|
|
33
|
+
(ADR 0033) completes the installed regression and failure matrix. CF-14.04
|
|
34
|
+
publishes the client and closes the Stage 14 milestones.
|
|
35
|
+
|
|
36
|
+
## Repository roles
|
|
37
|
+
|
|
38
|
+
- **forge-template** owns the Data Science contract, capabilities, archetype,
|
|
39
|
+
composition review, generated content, and engine releases.
|
|
40
|
+
- **create-forge** owns discovery-driven user input, ProjectSpec construction,
|
|
41
|
+
diagnostics, staging, lock finalisation, and end-to-end client validation.
|
|
42
|
+
|
|
43
|
+
See the [architecture](ARCHITECTURE.md),
|
|
44
|
+
[ownership model](REPOSITORY-OWNERSHIP.md), and
|
|
45
|
+
[stage roadmap](ROADMAP.md) for the complete boundary.
|
|
46
|
+
|
|
47
|
+
## Live GitHub work
|
|
48
|
+
|
|
49
|
+
Six epics and 24 child issues are filed across the two repositories. GitHub
|
|
50
|
+
issue bodies and native parent/dependency relationships are authoritative:
|
|
51
|
+
|
|
52
|
+
- [forge-template epic index](https://github.com/Sandsy09/forge-template/blob/main/docs/roadmap-v2/github-issues/forge-template/ISSUE-INDEX.md)
|
|
53
|
+
- [create-forge epic index](https://github.com/Sandsy09/create-forge/blob/main/docs/roadmap-v2/github-issues/create-forge/ISSUE-INDEX.md)
|
|
54
|
+
- [cross-repository dependency matrix](github-issues/CROSS-REPO-DEPENDENCIES.md)
|
|
55
|
+
- [GitHub setup and taxonomy](github-issues/GITHUB-SETUP.md)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Stage 10 — Data Science Architecture Contract
|
|
2
|
+
|
|
3
|
+
## Epic
|
|
4
|
+
|
|
5
|
+
[FT-EPIC-10 / forge-template#96](https://github.com/Sandsy09/forge-template/issues/96)
|
|
6
|
+
defines the contract before any component is implemented.
|
|
7
|
+
|
|
8
|
+
## Dependencies
|
|
9
|
+
|
|
10
|
+
This epic has no open native blocker. The roadmap begins only after completed
|
|
11
|
+
`create-forge#91` and the completed Foundation roadmap provide its accepted
|
|
12
|
+
engine and client baseline.
|
|
13
|
+
|
|
14
|
+
## Child sequence
|
|
15
|
+
|
|
16
|
+
1. [FT-10.01 / #101](https://github.com/Sandsy09/forge-template/issues/101)
|
|
17
|
+
is complete: the canonical
|
|
18
|
+
[Data Science contract](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-archetype.md)
|
|
19
|
+
defines the fixed package-plus-notebooks shape and ownership.
|
|
20
|
+
2. [FT-10.02 / #102](https://github.com/Sandsy09/forge-template/issues/102)
|
|
21
|
+
is complete: the canonical
|
|
22
|
+
[initial capability contracts](https://github.com/Sandsy09/forge-template/blob/main/docs/data-science-capabilities.md)
|
|
23
|
+
define optionless `jupyter` and `scientific-python` components and bounded
|
|
24
|
+
dependency lines.
|
|
25
|
+
3. [FT-10.03 / #103](https://github.com/Sandsy09/forge-template/issues/103)
|
|
26
|
+
defines notebook, data, model, secret, and generated-artefact safeguards.
|
|
27
|
+
4. [FT-10.04 / #104](https://github.com/Sandsy09/forge-template/issues/104)
|
|
28
|
+
fixes compatibility, acceptance, and `forge-template` 0.4.0 release
|
|
29
|
+
requirements.
|
|
30
|
+
|
|
31
|
+
Each child is blocked by the preceding item. With FT-10.02 complete, FT-10.03
|
|
32
|
+
is the next actionable decision.
|
|
33
|
+
|
|
34
|
+
## Entry criteria
|
|
35
|
+
|
|
36
|
+
- Forge Foundation Stages 00–09 are complete.
|
|
37
|
+
- Library and CLI Application prove independent production archetypes.
|
|
38
|
+
- create-forge #91 has completed engine-native option prompting.
|
|
39
|
+
|
|
40
|
+
## Outcomes
|
|
41
|
+
|
|
42
|
+
- Define the minimal package-plus-notebooks project shape.
|
|
43
|
+
- Assign every concern to Foundation, archetype, capability, platform,
|
|
44
|
+
profile, organisation policy, or client orchestration.
|
|
45
|
+
- Define dependency-selection criteria rather than selecting tools by trend.
|
|
46
|
+
- Define data, model, secret, path, environment, and generated-artifact
|
|
47
|
+
safeguards.
|
|
48
|
+
- Define Python, lock, packaging, notebook-validation, and maintenance
|
|
49
|
+
expectations.
|
|
50
|
+
- Classify all protocol, public API, component, engine, and client
|
|
51
|
+
compatibility impacts.
|
|
52
|
+
|
|
53
|
+
## Exit criteria
|
|
54
|
+
|
|
55
|
+
The four accepted decisions make the shape, capability boundaries,
|
|
56
|
+
safeguards, compatibility impact, and acceptance strategy implementation-ready.
|
|
57
|
+
|
|
58
|
+
## Non-goals
|
|
59
|
+
|
|
60
|
+
No production component, dependency, generated output, CLI behavior, tag, or
|
|
61
|
+
release is introduced in this stage.
|