Browse Source

make.tcl bootsupport re-vendor: cli 0.5.2 (mkzip fallback operative for make.tcl runs); project 0.17.6

Assisted-by: harness=claude; primary-model=claude-fable-5; api-location=anthropic.com
master
Julian Noble 1 week ago
parent
commit
fbd19e9123
  1. 4
      CHANGELOG.md
  2. 2
      punkproject.toml
  3. 18
      src/bootsupport/modules/punk/mix/cli-0.5.2.tm

4
CHANGELOG.md

@ -5,6 +5,10 @@ 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.6] - 2026-07-21
- punk::mix::cli 0.5.2: the modpod zip build survives a failing `zipfs mkzip` by falling back to `punk::zip::mkzip` (the established path for zipfs-less interpreters), clearing the partial zip mkzip leaves behind and noting the interpreter + upstream ticket on stderr. Motivation: Tcl 8.7 builds predating core fix `c971e6c7c4` (tkt 7d5f1c13089d463e7796, "zipfs mkzip broken on Windows dotfiles") die with "non-unique path name" on dot-prefixed entries — hit by the templates modpod's layout `.fossil-custom` payloads when building under 8.7a6. Fallback-built modpods verified mounting identically under 9.0.3 and 8.7a6.
## [0.17.5] - 2026-07-21
- punk86 kit restored to the build: mapped in `src/runtime/mapvfs.config` as tclkit-win64-dyn-8617 (Tcl 8.6.17) + punk8win.vfs, replacing the unmapped tclkit8613-era build whose fossilized kit-stamped `punk::args` 0.1.0 broke runtests under the kit ("invalid command name punk::args::define" - a stale registration satisfies an unversioned require, so `package unknown` never scans the modern paths). All kits rebuilt after a `vfscommonupdate`, so shipped kits now carry punkcheck 0.6.0 (G-095 lock protocol) and punk::lib 0.5.1.

2
punkproject.toml

@ -1,4 +1,4 @@
[project]
name = "punkshell"
version = "0.17.5"
version = "0.17.6"
license = "BSD-2-Clause"

18
src/bootsupport/modules/punk/mix/cli-0.5.1.tm → src/bootsupport/modules/punk/mix/cli-0.5.2.tm

@ -7,7 +7,7 @@
# (C) 2023
#
# @@ Meta Begin
# Application punk::mix::cli 0.5.1
# Application punk::mix::cli 0.5.2
# Meta platform tcl
# Meta license <unspecified>
# @@ Meta End
@ -951,8 +951,20 @@ namespace eval punk::mix::cli {
set wd [pwd]
cd $buildfolder
puts "zipfs mkzip $zipfile #modpod-$basename-$module_build_version"
zipfs mkzip $zipfile #modpod-$basename-$module_build_version
set mkzip_failed [catch {zipfs mkzip $zipfile #modpod-$basename-$module_build_version} errMkzip]
cd $wd
if {$mkzip_failed} {
#Known core defect: Tcl 8.7 builds predating core fix c971e6c7c4 error
#'non-unique path name' on dot-prefixed entries on Windows (core tkt
#7d5f1c13089d463e7796 'zipfs mkzip broken on Windows dotfiles') - hit by
#layout .fossil-custom/.fossil-settings payloads in the templates modpod.
#Fall back to punk::zip::mkzip, the established path for zipfs-less
#interps (stores unix-style permissions and folder entries - an accepted
#archive variant; modpod stubs read both shapes).
puts stderr "zipfs mkzip failed under Tcl [info patchlevel] ($errMkzip) - falling back to punk::zip::mkzip (known pre-c971e6c7c4 Tcl 8.7 zipfs dotfile defect - core tkt 7d5f1c13089d463e7796)"
catch {file delete -- $zipfile} ;#a failed zipfs mkzip can leave a partial target zip - punk::zip::mkzip refuses to overwrite
punk::zip::mkzip -base $buildfolder -directory $buildfolder/#modpod-$basename-$module_build_version -- $zipfile *
}
} else {
#use -base $buildfolder so that -directory is included in the archive - the modpod stub relies on this - and extraction would be potentially messy otherwise
@ -1652,6 +1664,6 @@ namespace eval punk::mix::cli {
## Ready
package provide punk::mix::cli [namespace eval punk::mix::cli {
variable version
set version 0.5.1
set version 0.5.2
}]
return
Loading…
Cancel
Save