diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a8d3955..af6b0d0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ 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.35.1] - 2026-07-31 + +- `bin/dtplite.cmd` repaired (G-139 fallout, present since the vendored-tree + removal on 2026-07-30): its no-tcllib fallback still pointed at the retired + `src/vendorlib_tcl9//tcllib*` trees, so every execution usecase failed + with "can't find package dtplite". The fallback now resolves the artifact-fed + DEPLOYED tree `lib_tcl9/allplatforms/tcllib` first (vendorlib patterns + kept for derived projects that still vendor); dtplite.test back to 8/8. + ## [0.35.0] - 2026-07-31 - `punk-runtime` fetch now retrieves the beside-toml metadata sidecar for ANY diff --git a/bin/dtplite.cmd b/bin/dtplite.cmd index d617e546..55aa1e6b 100644 --- a/bin/dtplite.cmd +++ b/bin/dtplite.cmd @@ -1050,12 +1050,17 @@ namespace eval ::punk::multishell { # @@ Meta End if {[catch {package require dtplite 1.0.5}]} { - # Fall back to the project-vendored tcllib (pure Tcl) when the invoking - # tclsh has no tcllib installed. Works both unwrapped (src/scriptapps/dtplite.tcl) - # and wrapped (/bin/dtplite.cmd) - each is one level below a folder - # containing (or sibling to) src/vendorlib_tcl9//tcllib + # Fall back to the project's tcllib (pure Tcl) when the invoking tclsh has + # no tcllib installed. Since G-139 the punkshell tree's tcllib is the + # artifact-fed DEPLOYED tree lib_tcl9/allplatforms/tcllib (populated + # via 'make.tcl libfetch' + the PACKAGES deploy phase); the vendorlib_tcl9 + # patterns are kept for derived projects that still vendor a tcllib copy. + # Works both unwrapped (src/scriptapps/dtplite.tcl) and wrapped + # (/bin/dtplite.cmd). set selfdir [file dirname [file dirname [file normalize [info script]/__]]] foreach libdir [glob -nocomplain -types d -directory $selfdir\ + ../lib_tcl9/*/tcllib*\ + ../../lib_tcl9/*/tcllib*\ ../vendorlib_tcl9/*/tcllib*\ ../src/vendorlib_tcl9/*/tcllib*] { set libdir [file normalize $libdir] diff --git a/punkproject.toml b/punkproject.toml index 90f1963e..c307e004 100644 --- a/punkproject.toml +++ b/punkproject.toml @@ -1,4 +1,4 @@ [project] name = "punkshell" -version = "0.35.0" +version = "0.35.1" license = "BSD-2-Clause" diff --git a/src/scriptapps/dtplite.tcl b/src/scriptapps/dtplite.tcl index 2a69a181..55914ea8 100644 --- a/src/scriptapps/dtplite.tcl +++ b/src/scriptapps/dtplite.tcl @@ -17,12 +17,17 @@ # @@ Meta End if {[catch {package require dtplite 1.0.5}]} { - # Fall back to the project-vendored tcllib (pure Tcl) when the invoking - # tclsh has no tcllib installed. Works both unwrapped (src/scriptapps/dtplite.tcl) - # and wrapped (/bin/dtplite.cmd) - each is one level below a folder - # containing (or sibling to) src/vendorlib_tcl9//tcllib + # Fall back to the project's tcllib (pure Tcl) when the invoking tclsh has + # no tcllib installed. Since G-139 the punkshell tree's tcllib is the + # artifact-fed DEPLOYED tree lib_tcl9/allplatforms/tcllib (populated + # via 'make.tcl libfetch' + the PACKAGES deploy phase); the vendorlib_tcl9 + # patterns are kept for derived projects that still vendor a tcllib copy. + # Works both unwrapped (src/scriptapps/dtplite.tcl) and wrapped + # (/bin/dtplite.cmd). set selfdir [file dirname [file dirname [file normalize [info script]/__]]] foreach libdir [glob -nocomplain -types d -directory $selfdir\ + ../lib_tcl9/*/tcllib*\ + ../../lib_tcl9/*/tcllib*\ ../vendorlib_tcl9/*/tcllib*\ ../src/vendorlib_tcl9/*/tcllib*] { set libdir [file normalize $libdir]