diff --git a/GOALS.md b/GOALS.md index fa01af81..c72d8810 100644 --- a/GOALS.md +++ b/GOALS.md @@ -157,7 +157,7 @@ Detail: goals/G-022-fossil-rename-punkshell.md Scope: src/make.tcl; src/runtime/ (mapping config - see G-024); bin/ (build outputs) Detail: goals/G-023-version-named-binaries.md -### G-024 [proposed] mapvfs.config converted to toml (tomlish-parsed) with succinct scheme declarations +### G-024 [active] mapvfs.config converted to toml (tomlish-parsed) with succinct scheme declarations Scope: src/runtime/mapvfs.config (replaced/deprecated); src/make.tcl (parsing); src/bootsupport/modules/tomlish-*.tm (parser dependency) Detail: goals/G-024-mapvfs-toml.md @@ -369,7 +369,7 @@ Detail: goals/G-111-modpod-tidy-tests.md Scope: src/vfs/_config/punk_main.tcl + src/vfs/_config/project_main.tcl + src/make.tcl (boot tm-path wiring); src/modules/punk/platform-999999.0a1.0.tm (canon names, as consumer); new per-platform tm root trees (layout/naming decision - sibling roots beside src/vendormodules_tclX / src/modules_tclX); src/project_layouts (layout seeding); modpod demonstration artifact; tree READMEs; coordinates with G-109 (manifest target-platform field stays that goal's item) Detail: goals/G-114-per-platform-tm-roots.md -### G-115 [proposed] Declarative .vfs composition: toml-defined kit payloads with drop-in preservation +### G-115 [active] Declarative .vfs composition: toml-defined kit payloads with drop-in preservation Scope: src/make.tcl (vfs assembly); src/runtime/vendorlib_vfs.toml (existing per-package declaration surface - fold/supersede settled in the work); src/vfs/ (per-.vfs declaration files + README); punk::mix machinery as touched; src/project_layouts (seeding for derived projects); coordinates with G-067 (artifact sources); G-006 (consent); G-004 (binary-free committed tree) Detail: goals/G-115-declarative-vfs-composition.md diff --git a/goals/G-024-mapvfs-toml.md b/goals/G-024-mapvfs-toml.md index 93239533..847efb6d 100644 --- a/goals/G-024-mapvfs-toml.md +++ b/goals/G-024-mapvfs-toml.md @@ -1,6 +1,6 @@ # G-024 mapvfs.config converted to toml (tomlish-parsed) with succinct scheme declarations -Status: proposed +Status: active Scope: src/runtime/mapvfs.config (replaced/deprecated); src/make.tcl (parsing); src/bootsupport/modules/tomlish-*.tm (parser dependency) Goal: the runtime-to-vfs-to-executable build mapping moves from the custom line format of src/runtime/mapvfs.config to a toml file parsed with the tomlish package - still supporting explicit per-executable mappings (runtime, vfs folder, output name, kit type) while also expressing generative schemes like the G-023 versioned naming in a single succinct declaration. Acceptance: a mapvfs toml file parsed via tomlish (no ad-hoc toml parsing) drives the build: every mapping currently active in mapvfs.config is expressible and at least one existing target builds identically from the toml; the G-023 versioned/dev/release-gated output scheme is declared in one entry that expands to its outputs without enumerating versions; malformed or unresolvable entries fail the build with a clear message naming the entry; the legacy .config format is either fully migrated (old parser removed) or explicitly deprecated with documented precedence between the two files. @@ -86,6 +86,12 @@ with the G-014 direction of toml + tomlish for declared configuration. grammars in one toml family (shared conventions, not two dialects); G-115's vendorlib_vfs.toml fold/supersede decision should cite this goal's scheme format. - G-121 (archived) delivered the shared parsed-mapping reader (::punkboot::lib::mapvfs_parse + mapvfs_kit_outputs): the bake kit machinery, bakelist and the bake/bakelist argdoc kit-name choices all consume the model, never the file format - this goal's toml conversion swaps the reader implementation underneath that surface, and bakelist is where its per-entry validation errors surface (runtime/vfs missing rows) - see goals/archive/G-121-bakelist-selective-bake.md +- Related (activation overlap survey 2026-07-31, goals_xref score): G-127 - pairing one vfs + definition with several targets is this format's cross-target consumer (its Scope names the + mapping surface); G-131 - if container becomes a bake-time choice, a mapvfs entry naming a + kit type stops implying a particular runtime (simplification landing on this format); + G-137 - reads punkproject.toml fields at the same bake seam the versioned scheme reads the + project version from. - G-133 (archived) landed the interim per-kit smoke-require declaration as a 5th mapvfs.config entry element (list of packages the built kit must plain-require); the toml conversion is its designated schema home, alongside the verification-set diff --git a/goals/G-115-declarative-vfs-composition.md b/goals/G-115-declarative-vfs-composition.md index 827fe91c..99e72412 100644 --- a/goals/G-115-declarative-vfs-composition.md +++ b/goals/G-115-declarative-vfs-composition.md @@ -1,6 +1,6 @@ # G-115 Declarative .vfs composition: toml-defined kit payloads with drop-in preservation -Status: proposed +Status: active Scope: src/make.tcl (vfs assembly); src/runtime/vendorlib_vfs.toml (existing per-package declaration surface - fold/supersede settled in the work); src/vfs/ (per-.vfs declaration files + README); punk::mix machinery as touched; src/project_layouts (seeding for derived projects); coordinates with G-067 (artifact sources); G-006 (consent); G-004 (binary-free committed tree) Goal: a .vfs folder's payload can be DECLARED in a toml definition (sources: suite build products, punkbin runtime/library artifacts via the consent-gated channels, vendor trees) and materialized into the folder by the build - while the folder remains the operative assembly area: undeclared dropped-in files (binary libs/modules included) are preserved with documented precedence, so derived projects with permissive binary policies and gitignored test .vfs folders keep drop-in simplicity with no declaration required. Acceptance: a punkshell kit .vfs (or demonstration .vfs) builds from a toml declaration reproducing its payload on a clean tree, with declared binary content arriving via consented retrieval or local build products; an undeclared dropped-in file survives re-materialization per the documented precedence; a .vfs with NO declaration builds exactly as today (pure drop-in mode unchanged); the declaration format and precedence rules are documented; the vendorlib_vfs.toml relationship is settled with rationale; the layout store seeds the convention for derived projects. @@ -60,3 +60,9 @@ for telling the two apart). external content) - G-065's upstreams feed the sources, this goal's declarations materialize the folder. Keep the schemas aligned. - G-121 (archived) noted per-kit payload detail as a candidate later addition to bakelist's per-kit view (name filtering doubles as detail) once this goal's declaration surface exists - see goals/archive/G-121-bakelist-selective-bake.md +- Related (activation overlap survey 2026-07-31, goals_xref score): G-127 - owns the platform + axis for payload declarations (whichever of the two lands second adopts the other); this + goal's format lands without a platform axis and records the extension point. G-141 - its + libfetch target derivation consumes whichever declaration surface is current; if this goal + supersedes vendorlib_vfs.toml the derivation reads the successor surface (recorded in its + own Notes).