Browse Source
The G-112 stage-true rename (0.23.0) kept 'project' -> bakehouse and
'vfs' -> bake as transitional aliases until the 8.6 arc completed; that
arc landed with G-099 and the new shape is settled. All alias plumbing
is removed from src/make.tcl: known_commands, the pre-dispatch mapping
switch, the punk::args definitions (SUMMARIES/HELPTEXTS/SUBOPTS/
SUBVALUES/VALUES_SYNOPSES), the "deprecated aliases" help group, the
plain-help block, the workflow-text mention and the degraded-mode
kitname collection. 'vfs' now gets an unknown-subcommand usage error;
'project' prefix-resolves to the read-only 'projectversion' check under
punk::args unambiguous-prefix matching (PUNKBOOT_PLAIN degraded mode
rejects both). Also trimmed a pre-existing trailing space (line 8990)
surfaced by git diff --check via the verbatim layout copies.
Docs: src/README.md, ARCHITECTURE.md, src/AGENTS.md (alias mentions
removed; also corrected the stale layout-sync trigger claim - the
thin-layout sync runs in modules/libs/packages/bakehouse, not
bootsupport), root AGENTS.md sync-step subcommand list ('project' ->
'bakehouse'). Historical records (CHANGELOG 0.23.0 entry, goals
archives, GOALS-archive) deliberately untouched.
punkshell 0.39.1 + CHANGELOG entry (make.tcl interface change - patch
per root AGENTS.md versioning policy).
Build outputs batched per src/AGENTS.md: thin-layout make.tcl copies
resynced via 'make.tcl libs -confirm 0' (basic, project-0.1, modpod
templates copy - all byte-identical to src/make.tcl), plus the lagging
store->modpod catch-up the same run performed (modpod layout copy:
mapvfs.config removed, mapvfs.toml + vfs/README.md added).
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
13 changed files with 2978 additions and 925 deletions
File diff suppressed because it is too large
Load Diff
@ -1,16 +0,0 @@ |
|||||||
#single line per runtime executable. Name of runtime followed by list of kit configuration lists. |
|
||||||
#Each kit config list is from 1 to 3 elements |
|
||||||
#1) .vfs folder with path relative to src folder. |
|
||||||
#2) name of wrapped kit binary to create (default to rootname of .vfs folder e.g myapp.vfs will create a kit named myapp (or myapp.exe) on windows) |
|
||||||
#3) Type of kit to create (zip or kit) - default kit. kit for metakit or vlerq based kit, zip for more modern zipkit. |
|
||||||
# |
|
||||||
# e.g The following creates 2 zipkits from the same runtime and 2 different .vfs folder |
|
||||||
# mytcl90kit.exe {mainapp.vfs myapp.exe zip} {test.vfs testapp.exe zip} |
|
||||||
# |
|
||||||
#if runtime has no entry - it will only match a .vfs folder with a matching filename e.g runtime1.exe runtime1.vfs |
|
||||||
#Use a runtime with a name of dash (-) to build a .kit file from the .vfs folder using no runtime |
|
||||||
#e.g |
|
||||||
#- myproject.vfs |
|
||||||
#- punk86.vfs |
|
||||||
# |
|
||||||
tclsh902z.exe {project.vfs project zip} |
|
||||||
@ -0,0 +1,34 @@ |
|||||||
|
# mapvfs.toml - kit output mapping (parsed with tomlish via make.tcl's ::punkboot::lib::mapvfs_parse). |
||||||
|
# Maps runtime executables (<projectroot>/bin/runtime/<platform>/) and .vfs payload folders |
||||||
|
# (src/vfs/) to the named kit executables a bake produces. |
||||||
|
# |
||||||
|
# [kit.<name>] - one table per kit output; <name> is the output executable's base name. |
||||||
|
# runtime (required) runtime executable name, unsuffixed (a superfluous .exe is tolerated). |
||||||
|
# Use "-" to build a runtime-less .kit file. A runtime with NO entry anywhere |
||||||
|
# still auto-pairs with a same-named .vfs folder. |
||||||
|
# vfs (required) .vfs folder name under src/vfs/ (e.g "project.vfs"). |
||||||
|
# type kit|zip|zipcat|cookit|cookfs (default kit). kit = metakit/starkit wrap, |
||||||
|
# zip = zipfs image, zipcat = raw exe+zip concatenation. |
||||||
|
# target (optional) target platform-dir name ('help platforms' lists them); defaults to |
||||||
|
# the build host's own target. Decides the bin/runtime/<tier> store, .exe |
||||||
|
# suffixing and process tooling. A property of the RUNTIME - entries sharing a |
||||||
|
# runtime must not disagree. |
||||||
|
# smokerequire (optional) packages the freshly built kit must plain-'package require' |
||||||
|
# (advisory probe; failures are recapped BUILD-WARNINGs). |
||||||
|
# group (optional) named grouping - 'make.tcl bake @<group>' / 'bakelist @<group>'. |
||||||
|
# bake_default (optional boolean, default true; a group's bake_default is the members' |
||||||
|
# default) false = excluded from full bakes, still bakeable by name/@group. |
||||||
|
# |
||||||
|
# [group.<name>] - optional group attributes: description, bake_default. |
||||||
|
# [scheme.<name>] - generative version-named outputs (scheme = "versioned"): expands to |
||||||
|
# <prefix>-<version> + <prefix>-dev + release-gated plain <prefix> from the punkproject.toml |
||||||
|
# [project] version. Keys: scheme, prefix (default: table name), runtime, vfs, type |
||||||
|
# (required), plus target/smokerequire/group/bake_default as for kits. |
||||||
|
# |
||||||
|
# The punkshell tree's src/runtime/mapvfs.toml header carries the full format spec. |
||||||
|
# (The pre-toml mapvfs.config line format remains readable as a deprecated fallback.) |
||||||
|
|
||||||
|
[kit.project] |
||||||
|
runtime = "tclsh902z" |
||||||
|
vfs = "project.vfs" |
||||||
|
type = "zip" |
||||||
@ -0,0 +1,31 @@ |
|||||||
|
# src/vfs - kit payload folders and per-.vfs payload declarations |
||||||
|
|
||||||
|
Each `<name>.vfs` folder is the payload of a configured kit output (kit mapping: |
||||||
|
`src/runtime/mapvfs.toml`), merged with the `_vfscommon.vfs` overlay at bake time. |
||||||
|
|
||||||
|
## Per-.vfs payload declarations (optional) |
||||||
|
|
||||||
|
A `.vfs` folder's payload can be DECLARED in a sibling toml file and materialized by the |
||||||
|
build - while the folder remains the operative assembly area: dropping files in by hand |
||||||
|
needs no declaration, and materialization never clobbers what it did not itself install. |
||||||
|
A `.vfs` with NO declaration file is untouched - pure drop-in mode. |
||||||
|
|
||||||
|
- Declaration file: `src/vfs/<name>.vfs.toml` (sibling of the folder, never baked into it). |
||||||
|
- Processed by `tclsh src/make.tcl vfslibs`, and automatically as a phase of |
||||||
|
`make.tcl bake` / `bakehouse`. |
||||||
|
|
||||||
|
```toml |
||||||
|
[payload.<entryname>] |
||||||
|
source = "vendorlib/mylib1.0" # folder path, resolved per source_root |
||||||
|
source_root = "src" # optional: 'src' (default) or 'packages' |
||||||
|
# (<projectroot>/bin/packages - 'make.tcl libfetch' tier) |
||||||
|
target = "lib" # optional: folder INSIDE the .vfs (default: the .vfs root) |
||||||
|
supersedes = ["mylib0.9"] # optional: legacy sibling folders removed from target first |
||||||
|
replace = true # optional: clean-slate the SAME-NAMED target folder first |
||||||
|
``` |
||||||
|
|
||||||
|
Precedence (drop-in wins): materialization is punkcheck-tracked with |
||||||
|
`-overwrite synced-targets` - undeclared files are never touched, and a file at a declared |
||||||
|
path is only overwritten when the mechanism itself installed it and it is unmodified |
||||||
|
since; a foreign or hand-modified copy is preserved and reported. `supersedes` and |
||||||
|
`replace` are the explicit declared exceptions. |
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue