Skip to content

1.0.1-rc3 - #44

Merged
synesissoftware merged 20 commits into
masterfrom
dev
Oct 12, 2026
Merged

synesissoftware merged 20 commits into
masterfrom
dev

Conversation

@synesissoftware

@synesissoftware synesissoftware commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner
  • backends:
    • bec.AnsiConsole: on Windows, emit ANSI colours only when the host supports them — Win11 assumed ready, Win10 VT builds opt in via SetConsoleMode(... | ENABLE_VIRTUAL_TERMINAL_PROCESSING), older hosts (e.g. XP) stay plain;
    • examples and scratch tests: non-Windows console sink moved from be.fprintf to be.AnsiConsole for simple console demos (via define_simple_console_example_*, be.console / bec.console aliases, matching implicit-link headers, and per-project CMakeLists.txt / implicit_link updates); multiplex / callback / be.N cases deferred;
    • test.component.be.file.threading: be.N console entry uses pantheios_be_console (platform alias) to match bec.console.h / Windows bec.WindowsConsole linkage;
  • build:
    • CMake optional ACE discovery (ACE / ACE_ROOT, cmake/FindACE.cmake, NO_ACE / --no-ace): builds be/bec/bel/ber.ACE, bec.ACE.WithCallback, stock ACE inclusion, and test.scratch.be.ACE when ACE is found;
    • console / syslog BE selection in cmake/TargetMacros.cmake and leaf CMakeLists.txt now uses _BUILD_AS_WIN32 rather than CMAKE_SYSTEM_NAME, so UNIXem builds link AnsiConsole / syslog correctly;
    • restored empty Windows scratch CMakeLists.txt for be.WindowsSyslog (+ WithCallback), bec.WindowsConsoleCallback, bec.WindowsMessageBox, and fe.WindowsRegistry (+ controller); deferred be.pantheios.COM / pseudoUNIX (need UNIXem, not valid under _BUILD_AS_WIN32);
    • removed all 122 legacy implicit_link.cpp files;
    • purged all 394 legacy Visual Studio build files (.dsp, .dsw, .vcxproj, .filters) and cleaned up empty vc6 and vc10 directories;
    • removed obsolete test.scratch.implicit_link test target and associated test files;
  • dependencies:
    • now requires STLSoft 1.11.1-rc8 (or later) — compile-time floor _STLSOFT_VER < 0x010B01C8;
  • version:
    • migrated to the PANTHEIOS_VER_RELSTATUS symbol pattern (PANTHEIOS_VER_AB / PANTHEIOS_VER_ALPHABETA aliases);
    • added PANTHEIOS_VER_1_0_1_RC3 (0x010001E3) and set release status to 0xE3 in include/pantheios/pantheios.h;
    • test.unit.getversion asserts PANTHEIOS_VER_1_0_1_RC3;
  • testing:
    • renamed scratch version reporter test/scratch/libver → test/scratch/versions (executable test.scratch.versions); Phase 4c one-line VER printer with tab-indented efferent dependencies;
  • CI:
    • consolidated ci-cell.yml into a single build-and-test job;
    • adopted local composite action .github/actions/install-sis-deps;
    • added stlsoft-routes job for CMake vs environment STLSoft resolution;
    • added minimal no-b64 and no-b64 + no-shwild matrix permutations and install-smoke coverage;
    • optional shwild exclusion via NO_SHWILD / prepare_cmake.sh --no-shwild;
    • dedicated Ubuntu GHA cell linux-gcc-ace (libace-dev); main matrix cells pass NO_ACE=ON;
    • Windows cells dogfood native .cmd runners; restore execute bits after artifact download (excluding CMakeFiles);
    • component tests via run_all_component_tests.sh / .cmd;
    • push-branch set canonicalised (master, dev, boilerplate, idiomatic, rc1–rc3);
  • boilerplate:
    • applied misc-dev-scripts 0.6.0 editor/Git/.sis drop-in templates;
    • restored historical .gitignore patterns as a sorted union with misc-dev-scripts gold section layout;
    • added .editorconfig; .gitattributes Linguist language-bar policy;
    • helper scripts rewritten to the common Synesis layout (build_cmake.sh, clean_cmake.sh, prepare_cmake.sh, remove_cmake_artefacts.sh, and kin): builds via cmake --build, coloured output, .sis/project_name.txt in status messages;
    • added ctest_cmake.sh;
    • added run_all_component_tests.sh / .cmd, run_all_performance_tests.sh / .cmd, and run_all_automated_tests.sh / .cmd; native .cmd counterparts for examples / unit / scratch;
    • run_all_unit_tests.sh / .cmd — unit-only (--unit-only accepted for compatibility; --component-only removed from the unit runner);
    • .sis/ci_examples_allowed_to_fail.txt for example-smoke allow-list;
  • documentation:
    • NEWS.md three-column chronology; README.md, INSTALL.md, KNOWN_ISSUES.md, and TODO.md aligned to 1.0.1-rc3 (STLSoft floor 1.11.1-rc8);

Advance version definitions and documentation for the 1.0.1-rc3 milestone:
- define PANTHEIOS_VER_1_0_1_RC3 (0x010001e3), step PANTHEIOS_VER to 0xE3,
  and bump header revision and edit fields in pantheios.h;
- add 1.0.1-rc3 objectives (CI refactoring, docs, woad, AnsiConsole, ACE)
  and non-mandatory 1.0.1 final candidate items to TODO.md;
- add 1.0.1-rc3 placeholder section to CHANGES.md;
- update INSTALL.md distribution archive links and directory paths to rc3;
- record 1.0.1-rc3 release entry in NEWS.md chronology table;
* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* chore(<lib>): use computed PREFIX_VER with documented PATCH

Align library version macros to c-cpp-standards. Define MAJOR, MINOR,
PATCH, and ALPHABETA; compute PREFIX_VER by shifts; keep REVISION as a
skip-section alias of PATCH (target at column 60); retain named historical
VER_* constants only for comparison and documentation.

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* version

* .gitattributes

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(helper scripts): adopt SisClr CMake helpers from gold tip

Replace the MakeCmd helper set with misc-dev-scripts cmake-helpers b92fdfc:
- common scripts are byte-identical, including native run_all_*.cmd;
- unit and component runners forward --verbosity;
- examples, scratch, and performance runners take no extra arguments;
- prepare keeps --bdut-root-dir, --stlsoft-root-dir, and --use-stlsoft;
- MSYSTEM no longer selects the MinGW generator.

* chore(scratch tests): name the scratch version reporter test.scratch.versions

Rename the scratch reporter target from versions to test.scratch.versions
so run_all_scratch_tests matches it. The source directory stays
test/scratch/versions. Helper scripts are unchanged.
Suggested

* ci(pantheios): run component tests with the component runner

The component-test job invoked run_all_unit_tests.sh --component-only,
which that script rejects. Call run_all_component_tests.sh -M, matching the
recls cell.

* chore(pantheios): Phase 4c lock, tip helpers, and CI modernisation

Remove test-only xTests from test.scratch.versions; tip-sync
run_all_examples/scratch helpers from misc-dev-scripts@dfa6add; land
.sis examples ATF for intentional assert demos; replace inlined sis-deps
with install-sis-deps; dogfood Windows .cmd runners; restore execute bits
after artifact download; drop scratch continue-on-error; strip non-canon
push branches.

* ci(pantheios): exclude CMakeFiles from execute-bit restore

download-artifact restore was chmod +x'ing compiler dep files whose names
match test.*/example* globs; tip runners then executed *.o.d and failed
with 127. Skip CMakeFiles and *.d/*.o/*.obj.

* release
@synesissoftware
synesissoftware requested a review from mwsis October 10, 2026 06:09
@synesissoftware synesissoftware self-assigned this Oct 10, 2026
* ci(pantheios): consolidate ci-cell into single build-and-test job

Consolidate the five separate ci-cell jobs into a single build-and-test
job per matrix cell:
- eliminate artifact upload and download steps;
- run unit tests, component tests, examples, and scratch tests sequentially
  within the same job directly after build;
- eliminate 24 redundant runner provisions and MSYS2 reinstallations
  across the matrix.

* fix

* ci(pantheios): adopt install-sis-deps composite action in CI workflows

Replace bespoke inlined dependency cloning and building scripts across
ci.yml and ci-cell.yml with the canonical local composite action:
- add .github/actions/install-sis-deps/action.yml copied from xTests;
- wire install-sis-deps into ci-cell.yml for STLSoft, shwild, xTests, b64;
- wire install-sis-deps into ci.yml install-smoke for STLSoft and b64;
- reference prefix as ${{ env.SIS_DEPS }} and standardise mingw toolchain;
- track selective CMake test build target refactoring in TODO.md.

* ci(pantheios): add minimal no-b64 permutation to CI and install smoke

Exercise Pantheios without the optional b64 dependency:
- add optional no-b64 input to ci-cell.yml and omit b64 from dependencies;
- pass -DNO_B64=ON to CMake configure when no-b64 is enabled;
- add linux-gcc-no-b64 matrix cell to exercise the test suite without b64;
- add no-b64 cell to install-smoke to verify standalone package
  consumption.

* fix

* ci(pantheios): add stlsoft-routes job for CMake and env resolution

Exercise alternative STLSoft discovery routes without package config:
- add stlsoft-routes job in ci.yml covering environment and variable matrix
  permutations;
- clone STLSoft source tree directly without installing to a CMake prefix
  or providing CMAKE_PREFIX_PATH;
- verify configure output confirms the intended discovery route was
  selected;
- build Pantheios in standalone mode (-DBUILD_TESTING=OFF, -DNO_B64=ON,
  -DBUILD_EXAMPLES=ON) and execute examples via run_all_examples.sh;
- install to prefix and assert pantheios-config.cmake find_dependency()
  guard is empty/inactive for STLSoft;
- configure, build, and execute install-smoke consumer against the install
  prefix without SIS_DEPS to verify standalone consumption.

* ci(pantheios): support optional shwild exclusion and test permutations

Exercise Pantheios across all optional dependency permutations:
- add --no-shwild flag to prepare_cmake.sh to forward -DNO_SHWILD to CMake;
- guard shwild package lookup in CMakeLists.txt behind if(NOT NO_SHWILD)
  and define PANTHEIOS_NO_SHWILD when omitted;
- add optional no-shwild input to ci-cell.yml and omit shwild from
  install-sis-deps dependencies;
- pass -DNO_SHWILD=ON and -DCMAKE_DISABLE_FIND_PACKAGE_shwild=TRUE to CMake
  in ci-cell.yml when no-shwild is enabled;
- add linux-gcc-no-shwild and linux-gcc-no-b64-no-shwild cells to ci.yml
  matrix to verify all optional dependency permutations;

* TODO.md
* feature: added implicit_link header files for **AnsiConsole**

* Adopt be.AnsiConsole as the default console sink for examples and scratch tests.

Replace platform-split fprintf/WindowsConsole wiring with be/bec.AnsiConsole across demos, multiplex backends, and callback/format samples; add bec.AnsiConsole.WithCallback and open the 1.0.1-rc2 CHANGES/NEWS entries.

* chore: further clarification of use of **be.AnsiConsole**

* Enable Windows VT-aware ANSI colouring in bec.AnsiConsole.

Gate escape sequences on host capability (Win11 ready, Win10 via
SetConsoleMode, older hosts plain) so colours work safely across XP
through modern Command Box.

* fix

* squash-commit

* CHANGES.md

* docs(pantheios): merge AnsiConsole notes into sectioned 1.0.1-rc3 CHANGES

Keep the ci-refac sectioned release notes and fold use-ansi-console
**bec.AnsiConsole** / default-sink / threading bullets under backends;
refresh NEWS.md Details accordingly.
…e) and add linux-gcc-ace GHA cell. (#35)

* feature: added implicit_link header files for **AnsiConsole**

* Adopt be.AnsiConsole as the default console sink for examples and scratch tests.

Replace platform-split fprintf/WindowsConsole wiring with be/bec.AnsiConsole across demos, multiplex backends, and callback/format samples; add bec.AnsiConsole.WithCallback and open the 1.0.1-rc2 CHANGES/NEWS entries.

* chore: further clarification of use of **be.AnsiConsole**

* Enable Windows VT-aware ANSI colouring in bec.AnsiConsole.

Gate escape sequences on host capability (Win11 ready, Win10 via
SetConsoleMode, older hosts plain) so colours work safely across XP
through modern Command Box.

* fix

* feature: wire optional ACE backends in CMake (FindACE, NO_ACE/--no-ace) and add linux-gcc-ace GHA cell.

* chore: ACE CI verbose

* fix

* fix

* fix

* fix

* TODO

* fix(pantheios): install ACE on CI run jobs for dynamic libACE

Install libace-dev on examples/unit/component/scratch cells when with-ace
is set, so dynamically linked ACE backends load after artifact download;
keep scratch discovery scratch-only.
…les (#43)

* chore(c-cpp): union files.associations from ~/dev vscode settings

Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx**
templates) a sorted **files.associations** union of all associations
found under **~/dev**;

* .gitattributes

* .vscode/settings.json

* .vimrc

* CHANGES.md

* chore(<lib>): use computed PREFIX_VER with documented PATCH

Align library version macros to c-cpp-standards. Define MAJOR, MINOR,
PATCH, and ALPHABETA; compute PREFIX_VER by shifts; keep REVISION as a
skip-section alias of PATCH (target at column 60); retain named historical
VER_* constants only for comparison and documentation.

* test(<lib>): ship scratch libver version reporter

Add or normalise test/scratch/libver to print the hosting PREFIX_VER as
“Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public
headers are included, an “efferent dependencies:” block.

* test(<lib>): rename scratch libver to versions

Move test/scratch/libver to test/scratch/versions and retarget the
executable as versions so C/C++ reporters match the Phase 3 freeze.

* version

* .gitattributes

* fix(c-cpp): quote Dir resolution in CMake helper scripts

Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve
reliably; apply the same one-line fix across in-wave helper scripts
(prepare/build/clean/ctest/remove and run_all_*).

* chore(helper scripts): adopt SisClr CMake helpers from gold tip

Replace the MakeCmd helper set with misc-dev-scripts cmake-helpers b92fdfc:
- common scripts are byte-identical, including native run_all_*.cmd;
- unit and component runners forward --verbosity;
- examples, scratch, and performance runners take no extra arguments;
- prepare keeps --bdut-root-dir, --stlsoft-root-dir, and --use-stlsoft;
- MSYSTEM no longer selects the MinGW generator.

* chore(scratch tests): name the scratch version reporter test.scratch.versions

Rename the scratch reporter target from versions to test.scratch.versions
so run_all_scratch_tests matches it. The source directory stays
test/scratch/versions. Helper scripts are unchanged.
Suggested

* ci(pantheios): run component tests with the component runner

The component-test job invoked run_all_unit_tests.sh --component-only,
which that script rejects. Call run_all_component_tests.sh -M, matching the
recls cell.

* chore(pantheios): Phase 4c lock, tip helpers, and CI modernisation

Remove test-only xTests from test.scratch.versions; tip-sync
run_all_examples/scratch helpers from misc-dev-scripts@dfa6add; land
.sis examples ATF for intentional assert demos; replace inlined sis-deps
with install-sis-deps; dogfood Windows .cmd runners; restore execute bits
after artifact download; drop scratch continue-on-error; strip non-canon
push branches.

* ci(pantheios): exclude CMakeFiles from execute-bit restore

download-artifact restore was chmod +x'ing compiler dep files whose names
match test.*/example* globs; tip runners then executed *.o.d and failed
with 127. Skip CMakeFiles and *.d/*.o/*.obj.

* release

* refactor(test): remove all implicit_link.cpp files and project references

Remove 122 obsolete implicit_link.cpp files across test, performance,
scratch, and example directories, as they are redundant under modern CMake
build systems and cause build compilation/configuration errors on non-MSVC
toolchains. Update all affected MSVC project and workspace files to remove
stale references and ensure warning-free compilation:
- Delete all implicit_link.cpp files under Pantheios/Pantheios;
- Remove test.scratch.implicit_link scratch directory and its references
  in CMakeLists.txt and pantheios.test.scratch.vc6.dsw;
- Clean up implicit_link.cpp source file references from all .dsp,
  .vcxproj, and .vcxproj.filters files.

* refactor(build): purge all legacy Visual Studio projects and workspaces

Remove all 394 legacy static Microsoft Visual Studio 6 and Visual Studio
2010 project and solution files from the repository. This includes all
associated .dsp, .dsw, .vcxproj, and .vcxproj.filters files. This completes
the modernization of the library's build system, establishing CMake as the
single source of truth for generating Visual Studio workspaces dynamically
on-demand on Windows. Clean up all vacant directories (e.g. vc6 and vc10
folders) that previously housed these project files.

* chore(release): prepare release 1.0.1-rc3 and modernize historical news

Prepare the library for the upcoming 1.0.1-rc3 release, migrating to the
new version naming convention, purging legacy files, and modernizing news:
- Migrate version macros in include/pantheios/pantheios.h and associated
  unit tests to the new `PANTHEIOS_VER_RELSTATUS` symbol pattern;
- Convert NEWS.md to a modern three-column chronology, populating release
  details for both modern and historical versions back to 2006;
- Document release changes in CHANGES.md and update dates in TODO.md;
- Purge legacy Visual Studio build files, implicit_link.cpp files, and
  clean up obsolete test targets from example CMakeLists.txt files;
- Add the `SIS:AUTO_GENERATED` eyecatcher comments to stock examples'
  CMakeLists.txt files;
- Update TODO.md with a future item to develop a modern CMake preset tool
  to replace the legacy Win32 selector.
Update the Dependencies table to require **STLSoft** **1.11.1-rc8** or
later (was alpha25), and note **README.md** in the 1.0.1-rc3 documentation
CHANGES bullet alongside the existing compile/CMake/INSTALL floor.
Select console/syslog BEs via _BUILD_AS_WIN32 in TargetMacros and leaf
CMakeLists (not CMAKE_SYSTEM_NAME) so UNIXem builds link AnsiConsole /
syslog; restore six empty Windows scratch CMakeLists; defer
be.pantheios.COM and pseudoUNIX (UNIXem-only) behind commented
add_subdirectory;
Mark Using AnsiConsole and Using ACE complete under 1.0.1-rc3 in
**TODO.md**, matching backends and CMake/ACE work already on tip;
Add the required trailing blank line on Phase 4c versions, getversion, and
ACE/AnsiConsole scratch CMakeLists; use array-form argv in
test.unit.getversion; remove unused implicit_link.c under
test.component.core.getProcessIdentity;
PUBLIC-link ws2_32 from bec.WindowsSyslog (+ WithCallback); replace
deprecated pantheios::puts with logputs in WindowsMessageBox scratch;
align WindowsSyslog callback exception-spec with the header; silence
unused backEndId in WindowsConsoleCallback;
Fill zero-byte CMakeLists under be/bec/bel/ber for WindowsMessageBox,
WindowsConsole.WithCallback, WindowsDebugger, WindowsEventLog,
speech.WithCallback, COMErrorObject.WithCallback, and matching bel/ber
targets so scratch/example link lines resolve to real libraries;
Pass -Wno-unused-function on bec.WindowsConsole.WithCallback and
-Wno-unused-parameter on bec.AnsiConsole.WithCallback to match the
non-callback targets under MinGW -Werror;
* refactor(pantheios): canonicalise unit-test sources to entry.c|cpp

Rename 28 legacy program-named unit sources under test/unit to entry.c or
entry.cpp per c-cpp-standards / test-standards; update leaf CMakeLists
source lists; refresh File: paths and Updated: banners. Leave the six
already-canonical entry.cpp programs and directory/target names unchanged;

* refactor(pantheios): canonicalise component-test sources to entry.c|cpp

Rename 26 legacy program-named component sources under test/component to
entry.c or entry.cpp; update leaf CMakeLists source lists; refresh File:
paths and Updated: banners. Un-ignore test.component.inserters.b64/ in
.gitignore so *.b64 does not hide that directory's entry.cpp;

* refactor(pantheios): canonicalise scratch-test sources to main.c|cpp

Rename 30 legacy program-named scratch sources under test/scratch to main.c
or main.cpp; update 27 leaf CMakeLists that listed those basenames; refresh
File: paths and Updated: banners. Leave versions/main.cpp and the three
empty placeholder CMakes (pantheios.COM, invoke_nothrow_method, pseudoUNIX)
unchanged aside from the source renames;

* refactor(pantheios): canonicalise performance-test sources to main.cpp

Rename the three legacy program-named performance sources under
test/performance to main.cpp; update leaf CMakeLists source lists;
refresh File: paths and Updated: banners. Keep add_executable target
names as test.performance.*;

* refactor(pantheios): canonicalise example sources to main.c|cpp

Rename 50 legacy example.* translation units under examples/ to main.c or
main.cpp; keep add_executable / define_simple_console_example_* target
names as example.*. Update TargetMacros helpers to compile main.c|main.cpp
from the program stem; fix 14 hand-written leaf CMakeLists; un-ignore
example.cpp.inserter.b64/ in .gitignore (same *.b64 directory trap);

* docs(pantheios): record entry/main source basename canonicalisation

Note under 1.0.1-rc3 testing that unit/component sources use entry.c|cpp,
scratch/performance/examples use main.c|cpp, and
define_simple_console_example_* compiles main.c|main.cpp while keeping
example.* target names;
* refactor(pantheios): canonicalise unit-test sources to entry.c|cpp

Rename 28 legacy program-named unit sources under test/unit to entry.c or
entry.cpp per c-cpp-standards / test-standards; update leaf CMakeLists
source lists; refresh File: paths and Updated: banners. Leave the six
already-canonical entry.cpp programs and directory/target names unchanged;

* refactor(pantheios): canonicalise component-test sources to entry.c|cpp

Rename 26 legacy program-named component sources under test/component to
entry.c or entry.cpp; update leaf CMakeLists source lists; refresh File:
paths and Updated: banners. Un-ignore test.component.inserters.b64/ in
.gitignore so *.b64 does not hide that directory's entry.cpp;

* refactor(pantheios): canonicalise scratch-test sources to main.c|cpp

Rename 30 legacy program-named scratch sources under test/scratch to main.c
or main.cpp; update 27 leaf CMakeLists that listed those basenames; refresh
File: paths and Updated: banners. Leave versions/main.cpp and the three
empty placeholder CMakes (pantheios.COM, invoke_nothrow_method, pseudoUNIX)
unchanged aside from the source renames;

* refactor(pantheios): canonicalise performance-test sources to main.cpp

Rename the three legacy program-named performance sources under
test/performance to main.cpp; update leaf CMakeLists source lists;
refresh File: paths and Updated: banners. Keep add_executable target
names as test.performance.*;

* refactor(pantheios): canonicalise example sources to main.c|cpp

Rename 50 legacy example.* translation units under examples/ to main.c or
main.cpp; keep add_executable / define_simple_console_example_* target
names as example.*. Update TargetMacros helpers to compile main.c|main.cpp
from the program stem; fix 14 hand-written leaf CMakeLists; un-ignore
example.cpp.inserter.b64/ in .gitignore (same *.b64 directory trap);

* docs(pantheios): record entry/main source basename canonicalisation

Note under 1.0.1-rc3 testing that unit/component sources use entry.c|cpp,
scratch/performance/examples use main.c|cpp, and
define_simple_console_example_* compiles main.c|main.cpp while keeping
example.* target names;

* fix(pantheios): align xTests runners with program identities

Correct copy-pasted XTESTS_START_RUNNER and PROCESS_IDENTITY strings so
they match each program's dotted id:
- test.unit.bec.file / bec.fprintf / bec.COMErrorObject (were be.*);
- test.component.inserters.boolean / stream_character / variant_bool
  (were …integer);

* refactor(pantheios): shorten unequivocal single-segment test dirs

Move Phase-1 leaves so the directory is the subject only; keep CMake
targets and argv0 as the dotted program ids:
- test/unit/getversion;
- test/component/custom_severity, details;
- test/scratch/api, c_api, I18N, WideString, fe, pseudoUNIX, trace,
  tstring;

* refactor(pantheios): nest unequivocal multi-segment test directories

Shorten Phase-2 intermediate paths; keep dotted CMake targets / argv0:
- unit util/, levels/, inserters/ (+ windows/sc);
- component core/, inserters/ (+ windows/hive), log/1, trace/1;
- performance inserters/, util/;
- scratch util/, showPlus/, extras/ (+ extras/com/);

* refactor(pantheios): shorten stock be/bec/fe test directories

Keep stock identities as single path segments; nest scenario suffixes:
- unit be.N/filtering, be.*, bec.*, fe.*;
- component be.file/threading, bec.fprintf;
- scratch be.N/fail, be.file/rolling, fe.WindowsRegistry/controller, and
  flat stock peers;

* refactor(pantheios): shorten example intermediate directories

Drop example.c.*/example.cpp.* leaf directory prefixes under existing
category folders; keep dotted CMake targets / argv0:
- examples/c/{101,N,assert,log_n,core/…,util/…};
- examples/cpp/backends/{callback,file/…,mx/…};
- contract, format, frontends, inserters, misc, tracing, util leaves;

* refactor(pantheios): resolve Phase 5 path leftovers

Apply the deferred directory decisions without renaming program ids:
- nest scratch be.N.with.custom.fe under be.N/with/custom/fe;
- shorten bec.WindowsConsoleCallback (keep non-.WithCallback atom);
- shorten custom/wrap_log4* and linking/implicit_link_1; leave both
  categories unwired in CMake;
- fix be.syslog.WithCallback PROCESS_IDENTITY (was test.scratch.speech);

* test(pantheios): remove empty XTESTS case stubs

Drop empty / passed-only unit and component test_ functions with their
declarations and XTESTS_RUN_CASE registrations (26 entry files, 292
cases);

* chore(pantheios): restore SIS:AUTO_GENERATED on stock intermediate lists

Prepend the generator eyecatcher to twenty pure add_subdirectory
CMakeLists.txt files under examples/ and test/ so generate_cmakelists.rb
can continue to manage them after the path rename rework.
Add .sis/ci_scratch_tests_skip_interactive.txt and --skip-interactive on
run_all_scratch_tests.sh/.cmd; pass the flag from the Windows ci-cell
scratch step so MessageBox/speech sinks do not hang GHA. Record post-
d81f570 path/entry canonicalisation and this CI fix in CHANGES/NEWS.
* refactor(CMake): preparatory changes

* refactor(pantheios): add FE/BE-aware CMake program helpers

Introduce define_automated_test_program and define_example_program with
CORE/BE_TEST/CONSOLE/FE/BE/BEC/LIB keywords so leaf CMakeLists can drop
repeated util/STLSoft/xTests/compile-option boilerplate; fold
define_simple_console_example_* into the example helper; smoke-convert a
handful of unit/component/example leaves to prove the shapes.

* refactor(pantheios): convert util and stock FE/BEC unit CMake leaves

Replace hand-rolled unit-test CMakeLists under test/unit/util, levels,
fe.*, bec.*, and simple be.* with define_automated_test_program; mark
util-only leaves SIS:AUTO_GENERATED; keep ws2_32 as a trailing link on
bec.WindowsSyslog.

* refactor(pantheios): convert be.test and common example CMake leaves

Migrate component be.test harnesses, remaining CORE unit/performance
leaves, and common example/scratch FE/BE patterns to
define_automated_test_program / define_example_program; preserve hybrid
add_subdirectory and bel/ber.file links; leave multi-BE and exotic
outliers hand-rolled.

* chore(pantheios): mark stock define_* CMake leaves AUTO_GENERATED

Add the SIS:AUTO_GENERATED eyecatcher to pure define_* example/test leaves
(including kwargs forms); leave tailed hybrids unmarked; document in
TargetMacros that a 2-arg-only generator must not rewrite kwargs leaves
until Pantheios has an in-tree generator that preserves them.

* tidy

* docs(pantheios): record CMake leaf-helper refactor in CHANGES

Document define_automated_test_program / define_example_program,
example/test leaf conversions, FE-before-BE call-site convention, and
SIS:AUTO_GENERATED marking under 1.0.1-rc3.
Set the chronology and TODO dates to 12th October 2026; note CMake leaf
helpers in NEWS Details; clarify that legacy makefile trees remain under
build/ while Visual Studio project files were removed.
@synesissoftware
synesissoftware merged commit b24c840 into master Oct 12, 2026
17 of 68 checks passed
@synesissoftware
synesissoftware deleted the dev branch October 12, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant