Commit graph

33 commits

Author SHA1 Message Date
trvon
8250b061fc
build: release buildtype with split debug symbols
Release used buildtype=debugoptimized (-O2 -g, strip=false) and relied on
scripts/prune-runtime-install.sh to strip the staged payload, discarding
the debug info. Crash reports from shipped binaries could not be
symbolicated and the build type label did not match what shipped.

- setup.sh/setup.ps1 Release and the Meson project default use
  buildtype=release. setup.sh adds -Ddebug=true for Release so -O3 code
  keeps DWARF for the split, and passes -Db_pie=true explicitly (also a
  project default) so reconfigured build dirs pick it up. Windows keeps
  release without -g so no PDBs land in the MSI stage. Debug/Fuzzing are
  unchanged (-O0 -g, assertions on).
- scripts/split-debug-symbols.sh replaces prune-runtime-install.sh: ELF
  files get objcopy --only-keep-debug (compressed) into <debug-dir>/
  <path>.debug plus .build-id/xx/yyyy.debug links, strip
  --strip-unneeded and --add-gnu-debuglink; Mach-O files get dsymutil
  dSYMs and strip -S -x. Without a debug dir it only strips.
- The release job splits into $BUILD_DIR/debug-symbols and uploads it as
  a debug-symbols-<suffix> workflow artifact (30 days) instead of
  shipping or dropping it. build-deb.sh, the Dockerfile, PKGBUILD and
  build-arch-pkg.sh call the split script in strip-only mode.

Measured on grim (Linux x86_64, clang 21, stripped staged payload):

  file                         debugoptimized  release -O3   delta
  bin/yams-cli                     35,528,968   36,733,304   +3.4%
  bin/yams-daemon                  29,731,312   30,685,792   +3.2%
  bin/yams-mcp-server              19,504,928   19,865,472   +1.8%
  libyams_onnx_resource.so            477,280      481,488   +0.9%
  libyams_object_storage_s3.so      8,226,608    8,239,016   +0.2%
  yams_zyp.so                          79,936       80,040   +0.1%

Debug symbols: 309 MiB (compressed .debug files); gdb resolves
`info line main` on the stripped daemon through the .build-id tree.
check_install_surface: no debug sections or .symtab remain; the
remaining violations are the export leaks fixed later in this series.

Signed-off-by: trvon <me@trevon.dev>
2026-10-01 16:53:23 -06:00
Trevon
577adf1e0f
build: standardize the Debug build dir on build/debug (#248)
* build: standardize the Debug build dir on build/debug

`docs/BUILD.md` and `AGENTS.md` document `./setup.sh Debug` producing
`build/debug`, but `setup.sh`/`setup.ps1` created `builddir` and `.clangd`
pointed there too, so the documented layout and the actual tree disagreed.

Align the Debug mapping with the documented layout:
- setup.sh / setup.ps1: Debug -> `build/debug`
- CMakeLists.txt: Debug `_meson_build_dir` -> `build/debug`
- .clangd: CompilationDatabase -> `build/debug`
- plugin test fallbacks, S3 smoke default, quality-gate candidate list, and
  doc examples -> `build/debug`

Legacy `builddir` trees stay readable: the quality gate and local-ci scripts
still probe `builddir` as a fallback, and `plugin_trust` already treats
`/build/` paths as build artifacts.

* build: migrate remaining Debug consumers off builddir

Follow-up to the Debug build-dir standardization: tracked consumers still
hardcoded `builddir` and would break or silently skip against a fresh
`build/debug` tree. Migrate them, keeping tolerant fallbacks where a legacy
tree may still exist.

- CI: `.github/workflows/tests.yml` runs `./setup.sh Debug` and then compiled
  `-C builddir`; switch BUILD_DIR/COMPILE_DB_DIR/compile paths to `build/debug`.
  Same for windows-test-diagnose.yml.
- IDE: `.vscode/tasks.json` build/test/bench tasks target `build/debug`.
- Runtime: `object_storage_plugin_loader` also probes `build/debug/plugins`
  (and the flat `build/debug`), retaining the `builddir` fallbacks.
- Tests/docs: ONNX tuning integration plugin dir, benchmarks, and plugin
  READMEs/examples use `build/debug`.

`./build/*` is already excluded from the quality-gate find and `.dockerignore`,
so no exclusion lists change.
2026-10-01 08:45:20 -06:00
trvon
66e59d305f
build: make the deprecated ONNX Runtime integration opt-in
Default builds no longer pull onnxruntime: conan enable_onnx and the conan
profiles default to False, meson enable-onnx defaults to disabled and skips
onnxruntime discovery entirely, and setup.sh/setup.ps1 only enable ONNX
(and the ONNX-backed Glint plugin) with --with-onnx / -WithOnnx.
YAMS_DISABLE_ONNX=true still forces it off.

This removes a build blocker on hosts where conan tries to build
onnxruntime from source (e.g. ROCm/MIGraphX on Linux). Release, Docker, and
Arch packaging pass the flag explicitly, so shipped artifacts are unchanged
until ONNX is dropped.
2026-09-22 18:56:22 -06:00
trvon
32e57d758d
refactor(symbols): remove tree-sitter from conan and fix legacy symbol tests
- Remove enable_symbol_extraction option and tree-sitter requirement from conanfile.py.
- Remove YAMS_DISABLE_SYMBOL_EXTRACTION toggles from setup.ps1, setup.sh, and ubuntu.Dockerfile.
- Add v39_metadata_db_template helper to MetadataDbTemplate for legacy symbol tests.
- Update GraphComponent, DeleteCascade, GraphContextService, and KGStore test
  fixtures to run symbol-specific test cases against schema v39.

Signed-off-by: trvon <me@trevon.dev>
2026-09-22 07:37:30 -06:00
trvon
9b7dbacdf6
fix(ci): stabilize Windows release builds 2026-07-05 15:56:52 -04:00
trvon
568902817a
fix(windows): unblock build and flaky tests
- use real Python and Scoop executables under SSH and CI
   - prefer python over python3 on Windows Meson probes
   - keep forced socket mode pinned for both socket env names
   - make forced-socket smoke test deterministic on Windows
   - clean sqlite WAL/SHM sidecars and randomize temp DB names
   - make video header parsing MSVC-safe and reject false MP4 hits
   - give integrity_catch2 more time on Windows runners
2026-07-01 18:21:19 -04:00
trvon
75e7dcfa47
ci: windows ci improvements 2026-05-03 05:39:54 -04:00
trvon
f3ffb92264
security: updates to opengrep rules, repair subsystem scanning logic and windows build logic 2026-05-03 01:06:25 -04:00
Trevon
3486a71689
ci: windows build improvements based on ci changes and pinned versions. 2026-05-02 21:34:04 -04:00
trvon
9b2c1b8631
docs: benchmark updates, small regression fixes in multiclient communication, ci fixes for windows build for pinned boost resolution, additional writer coordinator migrations 2026-04-30 14:35:21 -04:00
trvon
84015b39b7
build(ci,tests): cleaning build system and updates related to ci test failures and compat 2026-04-25 14:48:44 -04:00
trvon
d7ab4844a1
fix: small fixes for benchmarks and documentation update 2026-04-17 22:32:04 -04:00
trvon
8777a27f3c
feat: build improvements, docs updated and optimizations for cli latency 2026-04-09 22:43:02 -04:00
Trevon
58ade70969 feat: setup.ps1 improvements 2026-03-05 04:04:27 -08:00
trvon
a0fd82e25c fix: Fixing issues that break windows release build. This should allow new msvc version Working on debug builds. 2026-02-10 15:03:39 -08:00
trvon
8835d6704e
fix: removing mobile bindings from builds 2026-01-31 17:15:25 -05:00
trvon
b3fbff0457
fixing model logic to reduce pool size when using cpu 2026-01-20 13:05:42 -05:00
trvon
6e9221c8b2 fixing for building libsql 2026-01-20 01:05:57 +00:00
trvon
0dd0a87132
adding compile support for onnxruntime 2026-01-17 16:05:20 -05:00
trvon
83bd1b7fc1
updating entity interface and adding new plugin for entity extraction 2026-01-08 15:06:58 -05:00
trvon
c7c48e8934
removed hnsw vector manager. search optimizations 2026-01-05 23:39:18 -05:00
trvon
052bdaf3e0
ci fixes 2026-01-03 13:13:56 -05:00
trvon
bc71d36534
migrated pdf plugin, daemon shutdown logic fix 2025-12-31 14:46:07 -05:00
trevon
fc3a14f9a7
ci fixes for v0.7.10 2025-12-20 22:21:51 -05:00
trevon
48dc0dfa89
removing gtest migrated tests and continuing with test migration 2025-12-16 10:50:18 -05:00
trevon
e6139d2b90
fixing pwoershell comparison operator 2025-11-27 23:54:20 -05:00
trevon
85289e434a
powershell string parsing fix for ci 2025-11-27 23:07:24 -05:00
trevon
7bcb9c27f1
improving setup.ps1 for ci 2025-11-27 22:32:43 -05:00
trevon
1de9e31a58
cleaning up tests and exposing windows packaging and builds in ci 2025-11-27 10:54:09 -05:00
trevon
ebe81823db
improvements for daemon lifecycle, tree repair, and mcp regression 2025-11-26 14:22:35 -05:00
trevon
eb7e9c27e2
windows build running. resolving plugin loading 2025-11-25 09:56:50 -05:00
trevon
244cf02822
windows build stable on dev machine 2025-11-23 23:22:30 -05:00
trevon
27186dabcd
windows setup support added 2025-11-20 10:56:46 -05:00