v0.2.19 - Default test harness execution to build_static debug binary and add skip-build override flag

This commit is contained in:
Didactyl User
2026-03-25 09:35:46 -04:00
parent cf33b3b2c9
commit af3de3066b
4 changed files with 39 additions and 6 deletions

View File

@@ -54,11 +54,11 @@ Skills compose by adoption-list order (`10123`) and trigger tags carry runtime e
Didactyl will support local inference, which is very privacy preserving. Remote inference does however have it's advantages, and in those cases Didactyl supports using Bitcoin Lightning and eCash inference providers.
## Current Status — v0.2.18
## Current Status — v0.2.19
**Active build — this project is barely working. Experiment at your own risk.**
> Last release update: v0.2.18Add Python test harness and harden increment/push script for git identity and SSH remote handling
> Last release update: v0.2.19Default test harness execution to build_static debug binary and add skip-build override flag
- Connects to configured relays with auto-reconnect and relay state transition logging
- Publishes configured startup events per relay as each relay becomes connected

View File

@@ -12,8 +12,8 @@
// Using DIDACTYL_ prefix to avoid conflicts with nostr_core_lib VERSION macros
#define DIDACTYL_VERSION_MAJOR 0
#define DIDACTYL_VERSION_MINOR 2
#define DIDACTYL_VERSION_PATCH 18
#define DIDACTYL_VERSION "v0.2.18"
#define DIDACTYL_VERSION_PATCH 19
#define DIDACTYL_VERSION "v0.2.19"
// Agent metadata
#define DIDACTYL_NAME "Didactyl"

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
import argparse
import datetime as dt
import subprocess
import sys
from pathlib import Path
@@ -20,7 +21,7 @@ from tests.harness.test_runner import TestRunner
def parse_args() -> argparse.Namespace:
parser = argparse.ArgumentParser(description="Didactyl automated test harness")
parser.add_argument("--config", default="tests/configs/test_genesis.jsonc")
parser.add_argument("--binary", default="./didactyl")
parser.add_argument("--binary", default=None, help="Path to didactyl binary; if omitted, build_static --debug is used")
parser.add_argument("--suite", action="append", help="Run only this suite (repeatable)")
parser.add_argument("--test", action="append", help="Run only this test name (repeatable)")
parser.add_argument("--api-port", type=int, default=8485)
@@ -30,9 +31,33 @@ def parse_args() -> argparse.Namespace:
parser.add_argument("--output-dir", default=None)
parser.add_argument("--verbose", action="store_true")
parser.add_argument("--no-restart", action="store_true")
parser.add_argument(
"--skip-build-static-debug",
action="store_true",
help="Do not invoke ./build_static.sh --debug before running",
)
return parser.parse_args()
def build_static_debug_binary() -> None:
cmd = ["./build_static.sh", "--debug"]
print("Building debug static binary via ./build_static.sh --debug ...")
subprocess.run(cmd, check=True)
def resolve_default_debug_binary() -> Path:
candidates = [
Path("./didactyl_static_x86_64_debug"),
Path("./didactyl_static_arm64_debug"),
Path("./didactyl_static_armv7_debug"),
Path("./didactyl_static_armv6_debug"),
]
existing = [p for p in candidates if p.exists() and p.is_file()]
if existing:
return existing[0]
return Path("./didactyl_static_x86_64_debug")
def main() -> int:
args = parse_args()
@@ -40,9 +65,17 @@ def main() -> int:
output_dir = args.output_dir or f"tests/results/{run_ts}"
Path(output_dir).mkdir(parents=True, exist_ok=True)
binary = Path(args.binary)
if not args.skip_build_static_debug:
try:
build_static_debug_binary()
except subprocess.CalledProcessError as exc:
print(f"build_static debug build failed with exit code {exc.returncode}")
return 2
binary = Path(args.binary) if args.binary else resolve_default_debug_binary()
if not binary.exists():
print(f"didactyl binary not found: {binary}")
print("Pass --binary <path> or run ./build_static.sh --debug")
return 2
config = Path(args.config)