From 1c7f10c1b5e366dd25fabb2d51417154c6d26e45 Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Mon, 3 Aug 2026 15:56:59 +1000 Subject: [PATCH] punk::libunknown 0.2.4 + punkshell 0.49.1: deep tm discovery skips _mint/_bake workdirs register_all_tm (deep .tm discovery at every namespace depth, used by 'dev lib.search') knew only the pre-G-155 _build workdir name: the filesystem directory walk skipped _build dirs and the tm-file filter dropped */_build/* paths, but the renamed staging area /_mint (and the src/_bake kit workdir) were scanned - loose staged .tm files were registered as junk modules (measured against src/modules: 9 junk registrations - _mint::gridplus, punk::mix::_mint::templates, test::punk::_mint::* etc). Both sites now skip _build, _mint and _bake (the tm-file filter also guards the zipfs whole-tree listing branch); register_all_tm help text updated. Manual-version bump mechanics applied per src/modules/AGENTS.md (file rename, Meta line, manpage_begin, provide block, version-history entry). punkshell 0.49.1 (punkproject.toml + CHANGELOG.md - libunknown ships in kits; the tcltestrun 0.3.1 test-tooling fix from 1eae7260 is recorded in the same changelog entry). Verified: probe on old vs new module - 0.2.3 registers the 9 junk _mint::* packages, 0.2.4 registers 0 with real modules intact (textblock sanity, registered 107 -> 98 = exactly the junk); runtests discovery.test + shadowing.test 23/23. Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com --- CHANGELOG.md | 13 +++++++++++++ punkproject.toml | 2 +- ...ibunknown-0.2.3.tm => libunknown-0.2.4.tm} | 19 ++++++++++++------- 3 files changed, 26 insertions(+), 8 deletions(-) rename src/modules/punk/{libunknown-0.2.3.tm => libunknown-0.2.4.tm} (99%) diff --git a/CHANGELOG.md b/CHANGELOG.md index abac9f8e..6d0448a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ 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.49.1] - 2026-08-03 + +- punk::libunknown 0.2.4: deep tm discovery (`register_all_tm`, used by + `dev lib.search`) now skips the G-155 workdirs `_mint` and `_bake` + alongside legacy `_build` in both the directory walk and the tm-file + filter - loose staged `.tm` files in `/_mint` were being + registered as junk `_mint::*` modules. +- punk::tcltestrun 0.3.1 + runtestmodules.tcl: the unbuilt-modpod scan's + subfolder excludes likewise missed the `_build` -> `_mint` staging + rename - staged pods were registered as bogus `*::_mint::*` modules in + test interps; now `-exclude-paths {**/_build/*** **/_mint/***}` (test + tooling - listed for the record, not itself a bump trigger). + ## [0.49.0] - 2026-08-03 - punk::path 0.5.0: `subfolders1` REMOVED (superseded by `subfolders`; diff --git a/punkproject.toml b/punkproject.toml index 2ef57ca9..0e35c292 100644 --- a/punkproject.toml +++ b/punkproject.toml @@ -1,6 +1,6 @@ [project] name = "punkshell" -version = "0.49.0" +version = "0.49.1" license = "BSD-2-Clause" url = "https://www.gitea1.intx.com.au/jn/punkshell" #packager: declared identity for published artifacts (declarative, not proof - diff --git a/src/modules/punk/libunknown-0.2.3.tm b/src/modules/punk/libunknown-0.2.4.tm similarity index 99% rename from src/modules/punk/libunknown-0.2.3.tm rename to src/modules/punk/libunknown-0.2.4.tm index 22a9599b..9debffb8 100644 --- a/src/modules/punk/libunknown-0.2.3.tm +++ b/src/modules/punk/libunknown-0.2.4.tm @@ -7,7 +7,7 @@ # (C) 2025 # # @@ Meta Begin -# Application punk::libunknown 0.2.3 +# Application punk::libunknown 0.2.4 # Meta platform tcl # Meta license MIT # @@ Meta End @@ -18,6 +18,11 @@ # from src/modules/AGENTS.md "Versioning And Releases" - bumping means # renaming the file AND updating the Meta line above, the manpage_begin line # below and the provide-block version, then appending a line here): +#0.2.4 - register_all_tm: skip the G-155 workdirs _mint and _bake alongside +# legacy _build, in both the filesystem directory walk and the tm-file +# filter (the latter also guards the zipfs whole-tree listing) - loose +# staged .tm files in /_mint were being registered as junk +# _mint::* modules by deep discovery #0.2.3 - source_pkgindex: index scripts run in the GLOBAL namespace again (in a # local frame, as 0.2.0 made them). 0.2.0 moved the source into a proc of # THIS namespace, so a pkgIndex.tcl's relative 'namespace eval foo' created @@ -66,7 +71,7 @@ # doctools header # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ #*** !doctools -#[manpage_begin punkshell_module_punk::libunknown 0 0.2.3] +#[manpage_begin punkshell_module_punk::libunknown 0 0.2.4] #[copyright "2025"] #[titledesc {Module API}] [comment {-- Name section and table of contents description --}] #[moddesc {-}] [comment {-- Description at end of page heading --}] @@ -1319,8 +1324,8 @@ tcl::namespace::eval ::punk::libunknown { Uses and populates the same per-epoch directory index cache as the unknown handlers: for zipfs (static) paths the whole tree listing is gathered in one call; for filesystem paths each directory's *.tm glob is cached per - 'package epoch'. Directories named #modpod-*, #tarjar-* and _build are - skipped. + 'package epoch'. Directories named #modpod-*, #tarjar-* and the + workdirs _mint, _bake and legacy _build are skipped. The scan runs at most once per tm epoch per interp (tracked in the interp-local tm_fullscan variable - deliberately not part of the shareable @@ -1403,7 +1408,7 @@ tcl::namespace::eval ::punk::libunknown { lappend tmfiles {*}$dirfiles foreach sub [glob -nocomplain -directory $current -types d *] { set tail [file tail $sub] - if {[string match "#modpod-*" $tail] || [string match "#tarjar-*" $tail] || $tail eq "_build"} { + if {[string match "#modpod-*" $tail] || [string match "#tarjar-*" $tail] || $tail in {_build _mint _bake}} { continue } lappend pending $sub @@ -1414,7 +1419,7 @@ tcl::namespace::eval ::punk::libunknown { #ifneeded scripts: for tm modules the first encountered 'wins') set strip [llength [file split $path]] foreach file $tmfiles { - if {[string match "*/_build/*" $file]} { + if {[string match "*/_build/*" $file] || [string match "*/_mint/*" $file] || [string match "*/_bake/*" $file]} { continue } incr stat_files @@ -2178,7 +2183,7 @@ namespace eval ::punk::args::register { package provide punk::libunknown [tcl::namespace::eval ::punk::libunknown { variable pkg punk::libunknown variable version - set version 0.2.3 + set version 0.2.4 }] return