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` Entries are newest-first; one bullet per notable change. See the root `AGENTS.md`
"Project Versioning" section for the bump policy. "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 ## [0.49.0] - 2026-08-03
- punk::path 0.5.0: `subfolders1` REMOVED (superseded by `subfolders`; - punk::path 0.5.0: `subfolders1` REMOVED (superseded by `subfolders`;

2
punkproject.toml

@ -1,6 +1,6 @@
[project] [project]
name = "punkshell" name = "punkshell"
version = "0.49.0" version = "0.49.1"
license = "BSD-2-Clause" license = "BSD-2-Clause"
url = "https://www.gitea1.intx.com.au/jn/punkshell" url = "https://www.gitea1.intx.com.au/jn/punkshell"
#packager: declared identity for published artifacts (declarative, not proof - #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 # (C) 2025
# #
# @@ Meta Begin # @@ Meta Begin
# Application punk::libunknown 0.2.3 # Application punk::libunknown 0.2.4
# Meta platform tcl # Meta platform tcl
# Meta license MIT # Meta license MIT
# @@ Meta End # @@ Meta End
@ -18,6 +18,11 @@
# from src/modules/AGENTS.md "Versioning And Releases" - bumping means # from src/modules/AGENTS.md "Versioning And Releases" - bumping means
# renaming the file AND updating the Meta line above, the manpage_begin line # renaming the file AND updating the Meta line above, the manpage_begin line
# below and the provide-block version, then appending a line here): # 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 #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 # 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 # THIS namespace, so a pkgIndex.tcl's relative 'namespace eval foo' created
@ -66,7 +71,7 @@
# doctools header # doctools header
# ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++
#*** !doctools #*** !doctools
#[manpage_begin punkshell_module_punk::libunknown 0 0.2.3] #[manpage_begin punkshell_module_punk::libunknown 0 0.2.4]
#[copyright "2025"] #[copyright "2025"]
#[titledesc {Module API}] [comment {-- Name section and table of contents description --}] #[titledesc {Module API}] [comment {-- Name section and table of contents description --}]
#[moddesc {-}] [comment {-- Description at end of page heading --}] #[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 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 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 call; for filesystem paths each directory's *.tm glob is cached per
'package epoch'. Directories named #modpod-*, #tarjar-* and _build are 'package epoch'. Directories named #modpod-*, #tarjar-* and the
skipped. workdirs _mint, _bake and legacy _build are skipped.
The scan runs at most once per tm epoch per interp (tracked in the 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 interp-local tm_fullscan variable - deliberately not part of the shareable
@ -1403,7 +1408,7 @@ tcl::namespace::eval ::punk::libunknown {
lappend tmfiles {*}$dirfiles lappend tmfiles {*}$dirfiles
foreach sub [glob -nocomplain -directory $current -types d *] { foreach sub [glob -nocomplain -directory $current -types d *] {
set tail [file tail $sub] 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 continue
} }
lappend pending $sub lappend pending $sub
@ -1414,7 +1419,7 @@ tcl::namespace::eval ::punk::libunknown {
#ifneeded scripts: for tm modules the first encountered 'wins') #ifneeded scripts: for tm modules the first encountered 'wins')
set strip [llength [file split $path]] set strip [llength [file split $path]]
foreach file $tmfiles { foreach file $tmfiles {
if {[string match "*/_build/*" $file]} { if {[string match "*/_build/*" $file] || [string match "*/_mint/*" $file] || [string match "*/_bake/*" $file]} {
continue continue
} }
incr stat_files incr stat_files
@ -2178,7 +2183,7 @@ namespace eval ::punk::args::register {
package provide punk::libunknown [tcl::namespace::eval ::punk::libunknown { package provide punk::libunknown [tcl::namespace::eval ::punk::libunknown {
variable pkg punk::libunknown variable pkg punk::libunknown
variable version variable version
set version 0.2.3 set version 0.2.4
}] }]
return return
Loading…
Cancel
Save