Commit Graph

13832 Commits

Author SHA1 Message Date
Nicholas Dudfield
cd252504ad fix: use renamed action and add Conan init fallback
- Update workflow to use renamed xahau-patch-conan-post-setup action
- Use 'conan config home' to dynamically find settings.yml location
- Add debug logging to see Conan home contents
- Try 'conan config init' if settings.yml doesn't exist
- This should handle fresh Conan installations
2025-08-19 14:35:52 +07:00
Nicholas Dudfield
d8ccb1db81 refactor: move Conan patching to separate action
- Create new xahau-patch-conan-clang-versions action
- Remove patching logic from dependencies action
- Call patch action after Conan initialization in main workflow
- Fixes sequencing issue where settings.yml didn't exist yet
2025-08-19 14:30:16 +07:00
Nicholas Dudfield
27ec068050 fix: initialize Conan before patching settings.yml
- Check if settings.yml exists before trying to patch it
- Run 'conan profile new default --detect' if needed
- Fixes FileNotFoundError for fresh runners without cache
2025-08-19 14:20:09 +07:00
Nicholas Dudfield
2b6c92ecb1 debug: add logging to matrix generation 2025-08-19 14:15:49 +07:00
Nicholas Dudfield
e559008fc8 fix: use Python shell for Conan settings patch
- Switch to shell: python since PyYAML is pre-installed on Ubuntu
- Move export statement before Python heredoc so env var is available
- Adjust PR matrix logic: only release/candidate PRs get full matrix
- PRs to dev now use minimal matrix (most are feature branches)

[ci-nix-full-matrix]
2025-08-19 14:05:25 +07:00
Nicholas Dudfield
7ced4de6f2 feat: add clang-18 support with generic version detection
- Add clang-18-libcxx configuration (6 compiler configs total)
- Generic Conan settings patcher: auto-detects Clang version from compiler-id
- Works for any future Clang version without code changes
- Change minimal matrix to use clang-14 instead of clang-17 (faster)
- Sort Conan version list numerically when adding new versions

[ci-nix-full-matrix]
2025-08-19 13:54:46 +07:00
Nicholas Dudfield
3571a403f6 perf: use python:3-slim container for matrix-setup job
- Reduces total job time from ~26s to ~7s (72% faster)
- Bypasses ubuntu-latest's 25s toolchain setup overhead
- Container init only takes 3-5s with GitHub's layer caching
- Based on research showing containerized jobs skip host env config
2025-08-19 12:09:12 +07:00
Nicholas Dudfield
87dab64e0c perf: use self-hosted runner for matrix-setup job
- Reduces matrix generation time from ~30s to ~3s
- No VM provisioning overhead
- Perfect for tiny, safe, read-only jobs like JSON generation
2025-08-19 11:50:20 +07:00
Nicholas Dudfield
c730e1d5f0 fix: gcc stdlib flag, add dynamic matrix with [ci-nix-full-matrix]
- GCC doesn't recognize -stdlib flag (it's Clang-specific)
- Added dynamic matrix generation for branch-based CI control
- Main branches (dev/release/candidate) run all 5 compiler configs
- Feature branches and PRs run only gcc-13 and clang-17
- [ci-nix-full-matrix] tag forces full matrix on any branch
- Uses inline Python script in matrix-setup job
2025-08-19 11:38:14 +07:00
Nicholas Dudfield
9bf2bc0420 ci: add clang-17 with native libc++ to build matrix 2025-08-19 11:07:58 +07:00
Nicholas Dudfield
be1a34c7e9 ci: add gcc-11 and reinstate gcc-13 in build matrix 2025-08-19 11:06:19 +07:00
Nicholas Dudfield
06b4344cc0 fix: use -lt 16 check for gcc hiding, update compiler-id docs 2025-08-19 10:46:55 +07:00
Nicholas Dudfield
7a11eb6c15 docs: clarify gcc hiding trick is for clang < 16 2025-08-18 21:24:57 +07:00
Nicholas Dudfield
c1a35510f4 fix: install gcc before hiding versions, add verification 2025-08-18 21:19:27 +07:00
Nicholas Dudfield
7c4b1bafeb fix: install target gcc version before hiding others 2025-08-18 21:12:19 +07:00
Nicholas Dudfield
ccfa6da70a fix: use integer renaming for hidden gcc versions 2025-08-18 21:09:49 +07:00
Nicholas Dudfield
139f1bd32b ci: use directory hiding for clang-14 and --gcc-install-dir for clang-16+ 2025-08-18 21:05:58 +07:00
Nicholas Dudfield
a3b00d57a2 docs: clarify compiler_id includes gcc version for clang builds 2025-08-18 20:44:40 +07:00
Nicholas Dudfield
b822b66825 ci: simplify gcc toolchain logic - no update-alternatives needed 2025-08-18 20:34:49 +07:00
Nicholas Dudfield
6684075a28 ci: remove gcc-14-base to prevent header conflicts 2025-08-18 20:27:49 +07:00
Nicholas Dudfield
cc28fcf190 ci: remove gcc-14 and add clang-14 with gcc-11 test
- Add clang-14-libstdcxx-gcc11 matrix entry for testing
- Remove gcc-14 to prevent Clang from finding it
- Add diagnostic to show which headers Clang will use
- Test both gcc-11 and gcc-13 with clang-14
2025-08-18 20:19:26 +07:00
Nicholas Dudfield
ddca64815d ci: simplify by using update-alternatives instead of gcc-install-dir
- Keep clang_gcc_toolchain to control which GCC to install
- Use update-alternatives to set system default GCC
- Remove complex --gcc-install-dir flag from CMAKE_CXX_FLAGS
- Clang automatically uses the default GCC's headers
2025-08-18 20:15:30 +07:00
Nicholas Dudfield
60df462bc2 fix: properly quote CMAKE_CXX_FLAGS with spaces 2025-08-18 19:41:21 +07:00
Nicholas Dudfield
4755a37cad ci: add clang_gcc_toolchain support for header compatibility
- Clang 14 uses GCC 11 toolchain to avoid GCC 14 header issues
- Clang 16 uses GCC 13 toolchain for better compatibility
- Use --gcc-install-dir to specify exact GCC version
- Fixes consteval and ranges concept errors with newer libstdc++
2025-08-18 18:51:38 +07:00
Nicholas Dudfield
df652b457b ci: include stdlib in compiler_id for cache keys
- compiler_id now includes stdlib (e.g. clang-14-libstdcxx)
- Cache keys are self-documenting without redundant stdlib param
- Actions still receive stdlib for Conan/CMake configuration
- Added documentation explaining matrix key purposes
2025-08-18 18:37:20 +07:00
Nicholas Dudfield
0651332bb3 refactor: use clear stdlib naming instead of force_libstdcpp
- Rename force_libstdcpp to stdlib with values libstdcxx/libcxx
- Make stdlib a required enum field with validation
- Update cache keys to be self-documenting (e.g. clang-14-libstdcxx)
- Cleaner, more intuitive configuration flow
2025-08-18 18:21:42 +07:00
Nicholas Dudfield
5286bae753 ci: fix cache key to include stdlib choice 2025-08-18 18:12:11 +07:00
Nicholas Dudfield
4b9ef8db22 ci: move force_libstdcpp to matrix-level property 2025-08-18 18:07:39 +07:00
Nicholas Dudfield
360546d555 ci: add clang-14 to matrix, temporarily disable gcc 2025-08-18 18:04:31 +07:00
Nicholas Dudfield
4efcbd1eaa ci: add option to use libstdc++ with clang-16 2025-08-18 18:00:51 +07:00
Nicholas Dudfield
4c90598462 ci: add clang to build matrix 2025-08-18 16:58:09 +07:00
Niq Dudfield
7a790246fb fix: upgrade CI to GCC 13 and fix compilation issues, fixes #557 (#559) 2025-08-14 17:41:49 +10:00
Niq Dudfield
1a3d2db8ef fix(ci): export correct snappy version (#546) 2025-08-14 14:01:32 +10:00
tequ
2fc912d54d Make release build use conan deps where possible and hbb 4.0.1 (#516)
Co-authored-by: Denis Angell <dangell@transia.co>
Co-authored-by: Niq Dudfield <ndudfield@gmail.com>
2025-08-14 12:59:57 +10:00
Niq Dudfield
849d447a20 docs(freeze): canceling escrows with deep frozen assets is allowed (#540) 2025.7.9-release+1951 2025-07-09 13:48:59 +10:00
tequ
ee27049687 IOUIssuerWeakTSH (#388) 2025-07-09 13:48:26 +10:00
tequ
60dec74baf Add DeepFreeze test for URIToken (#539) 2025-07-09 12:49:47 +10:00
Denis Angell
9abea13649 Feature Clawback (#534) 2025-07-09 12:48:46 +10:00
Denis Angell
810e15319c Feature DeepFreeze (#536)
---------

Co-authored-by: tequ <git@tequ.dev>
2025-07-09 10:33:08 +10:00
Niq Dudfield
d593f3bef5 fix: provisional PreviousTxn{Id,LedgerSeq} double threading (#515)
---------

Co-authored-by: tequ <git@tequ.dev>
2025-07-08 18:04:39 +10:00
Niq Dudfield
1233694b6c chore: add suspicious_patterns to .scripts/pre-hook and not-suspicious filter (#525)
* chore: add suspicious_patterns to .scripts/pre-hook and not-suspicious filter

* rm: kill annoying checkpatterns job

* chore: cleanup

---------

Co-authored-by: RichardAH <richard.holland@starstone.co.nz>
2025-07-01 20:58:06 +10:00
tequ
a1d42b7380 Improve unittests (#494)
* Match unit tests on start of test name (#4634)

* For example, without this change, to run the TxQ tests, must specify
  `--unittest=TxQ1,TxQ2` on the command line. With this change, can use
  `--unittest=TxQ`, and both will be run.
* An exact match will prevent any further partial matching.
* This could have some side effects for different tests with a common
  name beginning. For example, NFToken, NFTokenBurn, NFTokenDir. This
  might be useful. If not, the shorter-named test(s) can be renamed. For
  example, NFToken to NFTokens.
* Split the NFToken, NFTokenBurn, and Offer test classes. Potentially speeds
  up parallel tests by a factor of 5.

* SetHook_test, SetHookTSH_test, XahauGenesis_test

---------

Co-authored-by: Ed Hennis <ed@ripple.com>
2025-06-30 10:03:02 +10:00
tequ
f6d2bf819d Fix governance vote purge (#221)
governance hook should be independently and deterministically recompiled before being voted in
2025-06-16 17:12:06 +10:00
Denis Angell
a5ea86fdfc Add Conan Building For Development (#432) 2025-05-14 14:00:20 +10:00
RichardAH
615f56570a Sus pat (#507) 2025.5.1-release+1762 2025-05-01 17:23:56 +10:00
RichardAH
5e005cd6ee remove false positives from sus pat finder (#506) 2025-05-01 09:54:41 +10:00
Denis Angell
80a7197590 fix warnings (#505) 2025-04-30 11:51:58 +02:00
tequ
7b581443d1 Suppress build warning introduced in Catalogue (#499) 2025-04-29 08:25:55 +10:00
tequ
5400f43359 Supress logs for Catalogue_test, Import_test (#495) 2025-04-24 17:46:09 +10:00
Denis Angell
8cf7d485ab fix: ledger_index (#498) 2025-04-24 16:45:01 +10:00