Browse Source

G-093 archive flip: move detail file to goals/archive, index record to GOALS-archive

Content-identical rename (flip edits landed in the previous commit); GOALS.md
entry removed and the summary record (amended *** acceptance) appended to
GOALS-archive.md per the achieved flip workflow. Rides along: CHANGELOG.md
gains the required [0.17.1] entry matching the punkproject.toml bump from the
previous commit (punk::path 0.4.0 *** pathglob + separable lattice; runtests
targeting rework).

Claude-Session: https://claude.ai/code/session_01BNUVVkYq9vHa6G3S9a3XTZ
Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 3 days ago
parent
commit
ab83c9fa15
  1. 5
      CHANGELOG.md
  2. 4
      GOALS-archive.md
  3. 4
      GOALS.md
  4. 0
      goals/archive/G-093-runtests-includepaths-discovery.md

5
CHANGELOG.md

@ -5,6 +5,11 @@ The latest `## [X.Y.Z]` header must match the `version` field in `punkproject.to
Entries are newest-first; one bullet per notable change. See the root `AGENTS.md`
"Project Versioning" section for the bump policy.
## [0.17.1] - 2026-07-20
- punk::path 0.4.0 (G-093, goal achieved): pathglob syntax gains `***` - as a whole segment it matches ZERO or more path segments, so `X/***` addresses X and everything below it (`***/f.txt` matches at any depth including the root). The directory-pattern lattice (`X` in-dir, `X/*` one below, `X/**` strictly below, `X/***` base-inclusive) is now separable in both directions: an exact or single-segment-glob include match no longer drags the whole subtree in, and non-spanning exclude matches drop only the matched directory's files instead of pruning (only `**`/`***` tails prune - the documented `**/_aside` vs `**/_aside/**` distinction is now real). The legacy bare-`*` match-everything include alias is removed, and the default-nocase drive-letter exception survives glued-group patterns like `c:/***`.
- runtests.tcl targeting (test tooling, rides this release): `-include-paths`/`-exclude-paths` pass through to treefilenames - one pathglob semantics at every layer; subtree runs are `-include-paths <path>/***`. New `-exclude-paths` (exclusion wins) and subsecond `-discover-only` (two-stage boot); `-serial-paths` reconciled to the same directory-of-file reading; a received include pattern matching nothing earns a stderr advisory; the json report no longer breaks when a failed test's result value carries surrounding whitespace.
## [0.17.0] - 2026-07-19
- G-087 stages 4+5 (goal achieved) - overlay layout composition: `dev project.new` now materializes a layout's overlay chain before copying - custom-tier files override same-name vendor-tier files (folders merge recursively), zero-byte `<item>.anti` marker files delete lower-layer items, and a `<newname>@<base>` folder presents as a derived layout starting from its base layout's chain (new `punk::mix::commandset::layout::lib::layout_materialize` staging primitive; single-folder layouts such as punk.project are used in place, unchanged). The sample fixtures demonstrate all three (`punk.othersample` is a working derived layout with a `.anti` deletion). `layout.files`/`layout.templatefiles` list the effective merged view.

4
GOALS-archive.md

@ -108,3 +108,7 @@ Acceptance: after the split, repeated -jobs 8 full-suite runs on the reference m
### G-087 [achieved 2026-07-19] Thin project layouts: injected infrastructure, fauxlink layout refs, working overlay merge → detail: goals/archive/G-087-thin-project-layouts.md
Scope: src/project_layouts/ (payload store restructure), src/decktemplates/ (layout_refs migration to fauxlink), src/modules/punk/mix/commandset/project-999999.0a1.0.tm (project.new generation path), src/modules/punk/mix/commandset/layout-999999.0a1.0.tm, src/modules/punk/cap/handlers/templates-999999.0a1.0.tm (ref resolution), src/modules/punk/mix/#modpod-templates-999999.0a1.0/ (module-shipped refs/layouts), src/make.tcl (layout sync steps)
Acceptance: hygiene stage - in a punkshell checkout `dev project.new` with defaulted -layout resolves an exact layout name (no tcl::prefix ambiguity); the no-handler warning paths execute without error (put/puts typos fixed) and an absolute-pathtype provider registration does not raise an expr syntax error; test/junk refs (test2, sample-0.1 duplicate, the a.txt-only punk.shell-0.1) no longer present as selectable layouts; src/project_layouts/README.md describes the implemented punk.templates+refs mechanism including the ref filename grammar. Pivot stage - a project generated from the thin punk.project layout carries bootsupport modules matching the generating shell's current src/bootsupport (verified by comparing a marker module version such as punk::mix::cli, not a stored snapshot vintage); src/project_layouts contains no embedded bootsupport/vfs module trees and make.tcl's layout bootsupport-sync step is retired; layout refs are .fauxlink files resolved via the fauxlink module with the bespoke .ref parser removed, every layout ref carrying a non-empty nominal name (leading-# punkcheck-exclusion hazard documented in this file); a bare built kit run outside any project lists at least the module-shipped punk.project layout and generates a working project from it; and one overlay case exercising custom-over-vendor override, a .anti deletion, and a name@base derived layout (the existing sample-0.1/othersample fixtures) materializes correctly through the staging primitive into a generated project.
### G-093 [achieved 2026-07-20] runtests path-glob discovery: fix -include-paths multi-pattern/repeated-flag matching + expose -exclude-paths → detail: goals/archive/G-093-runtests-includepaths-discovery.md
Scope: src/tests/runtests.tcl, src/modules/punk/path-999999.0a1.0.tm (treefilenames/globmatchpath as implicated), src/modules/punk/args-999999.0a1.0.tm (only if -multiple implicated), src/tests/ (runner-targeting regression suite), src/tests/AGENTS.md
Acceptance: the G-092 four-subtree measurement set spelled X/*** discovers files from all four subtrees under the default *.test tail glob, and the X/** spelling of a base-direct suite matches zero files while emitting a stderr advisory (both pinned as characterization tests); two repeated -include-paths flags naming distinct subtrees in X/*** form discover both and equal the single-value form; the root cause of the original failures is identified and recorded in this file; punk::path 0.4.0 implements *** across pathglob_as_re/globmatchpath/treefilenames with the include and exclude lattice forms separable and pinned in the punk::path suite; -exclude-paths is exposed on runtests (argdoc + src/tests/AGENTS.md documented, accumulate semantics matching -include-paths, exclusion winning over inclusion for the same file) and a full run excluding a named subtree discovers exactly the default-discovery file list minus that subtree; -serial-paths classifies by the same directory-of-file reading; a regression suite under src/tests covers both options across single-value multi-pattern, repeated-flag, lattice-form and tail-glob-present/absent combinations plus include/exclude interaction; a full-suite default-discovery run before and after the changes compares PARITY ok via scriptlib/developer/runtests_parity.tcl (default '**' discovery with no exclusions must be unaffected); src/tests/AGENTS.md path-targeting wording is reconciled with the verified semantics.

4
GOALS.md

@ -338,10 +338,6 @@ Detail: goals/G-089-scriptlib-kits-and-modes.md
Scope: src/modules/shellfilter-999999.0a1.0.tm (stack placement, insert_transform, junctions), src/modules/shellthread-999999.0a1.0.tm (worker park/adoption/termination), src/tests/modules/ (new characterization suites), README.md ('very unripe parts' note)
Detail: goals/G-090-shellfilter-shellthread-audit.md
### G-093 [active] runtests path-glob discovery: fix -include-paths multi-pattern/repeated-flag matching + expose -exclude-paths
Scope: src/tests/runtests.tcl, src/modules/punk/path-999999.0a1.0.tm (treefilenames/globmatchpath as implicated), src/modules/punk/args-999999.0a1.0.tm (only if -multiple implicated), src/tests/ (runner-targeting regression suite), src/tests/AGENTS.md
Detail: goals/G-093-runtests-includepaths-discovery.md
### G-094 [proposed] punkcheck single record lifecycle: OO installtrack as sole implementation with a persistence policy
Scope: src/modules/punkcheck-999999.0a1.0.tm (installtrack/installevent lifecycle unification, installfile_* retirement, punkcheck::install as OO consumer), src/modules/punk/mix/cli-999999.0a1.0.tm + src/make.tcl (consumers verified unchanged), src/tests/modules/punkcheck/testsuites/punkcheck/ (characterization + new equivalence/staleness coverage)
Detail: goals/G-094-punkcheck-single-lifecycle.md

0
goals/G-093-runtests-includepaths-discovery.md → goals/archive/G-093-runtests-includepaths-discovery.md

Loading…
Cancel
Save