Browse Source

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 <srcdir>/_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
master
Julian Noble 1 week ago
parent
commit
1c7f10c1b5
  1. 13
      CHANGELOG.md
  2. 2
      punkproject.toml
  3. 19
      src/modules/punk/libunknown-0.2.4.tm

13
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 `<srcdir>/_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`;

2
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 -

19
src/modules/punk/libunknown-0.2.3.tm → 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 <srcdir>/_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
Loading…
Cancel
Save