0.4.0 #First line must be a semantic version number #all other lines are ignored. #0.4.0 - G-087 stage 4: project.new copies the layout from punk::mix::commandset::layout::lib::layout_materialize's effective content folder - overlay chains (custom-over-vendor merging, .anti deletion markers, name@base derived layouts) are composed into a disposable staging dir (deleted after use); single-folder chains with no .anti markers keep the direct store-folder path (no behaviour change for punk.project / module-carried layouts). Template scanning uses the new path-based layoutfolder_scan_for_template_files against the effective folder. The src/PROJECT_LAYOUTS_* install exclusion was retired with the marker folder (G-087 stage 5) and the misnamed antipaths variable folded into exclude_paths. #0.4.0 - G-087 stage 5: project.new seeds generated-project version metadata post-materialization (all only-if-missing, never from payload): punkproject.toml ([project] name + version 0.1.0), CHANGELOG.md with a matching ## [0.1.0] header (keeps the injected make.tcl projectversion advisory quiet), and punkorigin.toml - an interim generation-provenance baseline (utc, layout name + resolved store target, punk::mix::templates version, punkshell version when derivable from the generating shell's checkout via punkboot::utils, origin projectroot path hint) for the G-027 pull-update design to adopt. #0.3.1 - fix: project.new validates module names (projectname-derived default and explicit -modules entries, modulename-version forms accepted) before any folder/fossil-repo creation - a dashed project name (e.g infra-man) previously failed late inside module.new after the project tree and fossil repo already existed #0.3.0 - G-087 stage 3: new lib::bootsupport_inject (+ lib::_tm_version_sort) - project.new now injects bootsupport modules into the generated project from the generating shell's current trees, driven by the thin layout's include_modules.config manifests (shell-project bootsupport tree preferred; standalone kits resolve via tcl::tm::list; 999999.* dev versions never injected; punkcheck-recorded with plain-copy degradation) #0.3.0 - bootsupport_inject also tree-copies the shell project's src/bootsupport/lib* pkgIndex-based lib trees (e.g fileutil - required by the generated make.tcl under plain tclsh); standalone kits emit a notice (lib set has no manifest) - generated make.tcl remains runnable via the kit executable #0.3.0 - bootsupport_inject carries adjacent non-.tm support files beside matched modules (struct sets_*.tcl loader companions, textutil .tex hyphenation data) via new private helper _bootsupport_inject_copyfile; bootsupport include_modules.config gained the previously-missing cmdline and struct::set entries (files existed recordless in bootsupport; fileutil requires cmdline, make.tcl uses struct::set) #0.3.0 - new: -layout now prefix-matched against the live layout set at call time instead of the package-load-time LAYOUTNAMES snapshot (stale snapshot could reject layouts that appeared after load, e.g when cwd moved into a project) #0.2.2 - fix: new's no-handler warning path used 'put' instead of 'puts' (raised invalid command name error instead of warning) #0.2.1 - fix: -layout now validated and normalized via tcl::prefix::match against documented layout choices, matching the PUNKARGS -choiceprefix default (true); previously the manual parser accepted arbitrary values with no validation #0.2.0 - updated punkcheck::install call sites to use -exclude-paths / -exclude-paths-core (replaced -antiglob-paths + -exclude-dirsegments) — call-site API change warrants minor bump #0.2.0 - updated call sites to use hyphenated flag names (-punkcheck-folder, -exclude-paths-core)