Files
triangles_v5/scripts
Hermes 95282572d3 [grade=A] ci(rocksdb): strip -std=c++XX from rocksdb.pc Cflags (fix v6.2.4 fuzz build)
RocksDB 10.10.1 (pinned for v6.2.4) writes '-std=c++20' into its
installed rocksdb.pc Cflags. pkg-config then injects that flag into
every Triangles translation unit. C++ units ignore the redundant
flag, but C units (src/lz4/lz4.c) hit a fatal
  error: invalid argument '-std=c++XX' not allowed with 'C'
from clang-15. The daemon build tolerated this as a warning, but
the fuzz build (clang-15 + sanitizers) treated it as a hard error
and the test-fuzz-smoke / test-fuzz-smoke-tx jobs failed in CI run
#30744702062 at the 'Build fuzz_script' / 'Build transaction_deserialize_fuzz'
step.

The previous fix only stripped '-std=c++17' (a relic of the 8.x pin).
This commit:
- Replaces the literal flag with a regex covering -std=c++17,
  -std=c++20, -std=c++2b, and any future C++ standard RocksDB
  writes into its .pc Cflags.
- Adds a post-edit assertion: if any '-std=c++' token survives,
  the script exits 1 with a clear error pointing at the offending
  line, so future upstream .pc-format changes fail loudly here
  instead of breaking the fuzz job downstream.

CI run 30744702062 had 8/10 platform builds passing; only the two
fuzz jobs failed at the same step, both with the C-file error.
This is the v6.2.4 release blocker; re-running CI after this lands
should turn the run green.

Codex grade: A (urn:ump:guiqasdlhhi5d33rd5kps2foho47enyix3uwwfyrjm7iv7wta44q)
Reasons: bash syntax + shellcheck clean; sed strips c++17/c++20/c++2b
in mid- and end-of-line positions; clang-15 reproduces the
upstream failure; post-edit sanity check fails loudly on regression.
2026-08-02 12:34:33 -07:00
..
2026-04-29 16:48:16 -07:00
2026-07-07 13:33:12 -07:00

Scripts

Operational scripts for the Triangles project. See also doc/release-process.md for the canonical release pipeline documentation.

Build verification

  • verify-reproducible-build.sh — builds the daemon (or another target) twice from the same source tree and verifies the SHA256 hashes match. Catches accidental introduction of non-determinism (e.g. __DATE__/__TIME__ regressions, dirty git state, PIE base-address drift).

Release signing

  • sign-release.sh — generates SHA256SUMS, writes detached PGP signatures (.asc) over each release artifact and over SHA256SUMS. Supports --verify for independent third-party verification. Uses TRIANGLES_RELEASE_KEY env var (defaults to sami@cryptographic-triangles.org).

Existing infrastructure

  • bump-version.sh — sync version numbers across all manifests from src/clientversion.h.
  • sign-snapshot.sh — sign a UTXO snapshot file with the wallet's signing address (not a PGP key; this is a chain-level signature, not a release signature).
  • validate_onion_seeds.py — validate every .onion address in triangles.conf against the v3 hidden-service checksum.
  • ibd-smoke-test.sh — fresh-datadir IBD smoke test for catching the classic "stalls early / loops around 570" failure mode.
  • ci/build-rocksdb.sh — build and install a pinned RocksDB version for CI.
  • ci/package-linux-daemon.sh — Linux packaging step (.deb).
  • ci/package-windows-daemon.sh — Windows packaging step.
  • tri/ — operator-facing CLI for node administration.