From b986395ecc4a4543e0f0aa8be1bd8578f35da1e1 Mon Sep 17 00:00:00 2001 From: Bart Date: Fri, 5 Dec 2025 11:44:48 -0500 Subject: [PATCH 1/4] docs: Infer version of Conan dependency to export (#6112) This change updates a script in the documentation to automatically infer the version of a patched Conan dependency from the conan.lock file. --- BUILD.md | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/BUILD.md b/BUILD.md index 153406535c..54e02c6ae9 100644 --- a/BUILD.md +++ b/BUILD.md @@ -141,26 +141,37 @@ Alternatively, you can pull the patched recipes into the repository and use them locally: ```bash +# Extract the version number from the lockfile. +function extract_version { + version=$(cat conan.lock | sed -nE "s@.+${1}/(.+)#.+@\1@p" | head -n1) + echo ${version} +} + +# Define which recipes to export. +recipes=(ed25519 grpc secp256k1 snappy soci) + +# Selectively check out the recipes from our CCI fork. cd external mkdir -p conan-center-index cd conan-center-index git init git remote add origin git@github.com:XRPLF/conan-center-index.git git sparse-checkout init -git sparse-checkout set recipes/ed25519 -git sparse-checkout add recipes/grpc -git sparse-checkout add recipes/secp256k1 -git sparse-checkout add recipes/snappy -git sparse-checkout add recipes/soci +for recipe in ${recipes[@]}; do + echo "Checking out ${recipe}..." + git sparse-checkout add recipes/${recipe}/all +done git fetch origin master git checkout master -rm -rf .git cd ../.. -conan export --version 2015.03 external/conan-center-index/recipes/ed25519/all -conan export --version 1.72.0 external/conan-center-index/recipes/grpc/all -conan export --version 0.7.0 external/conan-center-index/recipes/secp256k1/all -conan export --version 1.1.10 external/conan-center-index/recipes/snappy/all -conan export --version 4.0.3 external/conan-center-index/recipes/soci/all + +# Export the recipes into the local cache. +for recipe in ${recipes[@]}; do + version=$(extract_version ${recipe}) + echo "Exporting ${recipe}/${version}..." + conan export --version $(extract_version ${recipe}) \ + external/conan-center-index/recipes/${recipe}/all +done ``` In the case we switch to a newer version of a dependency that still requires a From a4c60b41602c909919452607c546acf7708d2e17 Mon Sep 17 00:00:00 2001 From: Bart Date: Mon, 8 Dec 2025 11:27:55 -0500 Subject: [PATCH 2/4] chore: Use updated secp256k1 recipe (#6118) This change updates the secp256k1 recipe that defines the SECP256K1_STATIC, so it no longer needs to be defined in the code here. Running the Conan update script also updated two other recipes in the lock file. --- conan.lock | 8 ++++---- include/xrpl/protocol/detail/secp256k1.h | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/conan.lock b/conan.lock index 410a04403b..1385ad05bd 100644 --- a/conan.lock +++ b/conan.lock @@ -6,10 +6,10 @@ "sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63%1756234266.869", "soci/4.0.3#a9f8d773cd33e356b5879a4b0564f287%1756234262.318", "snappy/1.1.10#968fef506ff261592ec30c574d4a7809%1756234314.246", - "secp256k1/0.7.0#9210e4c655d0a665400378a663960d17%1764261276.764", + "secp256k1/0.7.0#9c4ab67bdc3860c16ea5b36aed8f74ea%1765202256.763", "rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1762797952.535", "re2/20230301#ca3b241baec15bd31ea9187150e0b333%1764175362.029", - "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1759134873.45", + "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1764863245.83", "openssl/3.5.4#a1d5835cc6ed5c5b8f3cd5b9b5d24205%1760106486.594", "nudb/2.0.9#fb8dfd1a5557f5e0528114c2da17721e%1763150366.909", "lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999", @@ -29,9 +29,9 @@ "build_requires": [ "zlib/1.3.1#b8bc2603263cf7eccbd6e17e66b0ed76%1756234269.497", "strawberryperl/5.32.1.1#707032463aa0620fa17ec0d887f5fe41%1756234281.733", - "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1759134873.45", + "protobuf/6.32.1#f481fd276fc23a33b85a3ed1e898b693%1764863245.83", "nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904%1756234232.901", - "msys2/cci.latest#5b73b10144f73cc5bfe0572ed9be39e1%1751977009.857", + "msys2/cci.latest#1996656c3c98e5765b25b60ff5cf77b4%1764840888.758", "m4/1.4.19#70dc8bbb33e981d119d2acc0175cf381%1763158052.846", "cmake/4.2.0#ae0a44f44a1ef9ab68fd4b3e9a1f8671%1764175359.44", "cmake/3.31.10#313d16a1aa16bbdb2ca0792467214b76%1764175359.429", diff --git a/include/xrpl/protocol/detail/secp256k1.h b/include/xrpl/protocol/detail/secp256k1.h index c0c3cd761b..c93734a539 100644 --- a/include/xrpl/protocol/detail/secp256k1.h +++ b/include/xrpl/protocol/detail/secp256k1.h @@ -1,7 +1,6 @@ #ifndef XRPL_PROTOCOL_SECP256K1_H_INCLUDED #define XRPL_PROTOCOL_SECP256K1_H_INCLUDED -#define SECP256K1_STATIC #include namespace ripple { From 9625514da8f979fe0ac399f4c30fae412098bd90 Mon Sep 17 00:00:00 2001 From: Bart Date: Mon, 8 Dec 2025 12:35:23 -0500 Subject: [PATCH 3/4] chore: Clean up .gitignore and .gitattributes (#6001) The .gitignore and .gitattributes files contain references to files and directories that the current build no longer produces, so this change removes obsolete entries in these files, and does some general reorganizing of the remaining entries. --- .gitattributes | 4 -- .gitignore | 118 ++++++++++++++---------------------------------- docs/.gitignore | 3 -- 3 files changed, 35 insertions(+), 90 deletions(-) delete mode 100644 docs/.gitignore diff --git a/.gitattributes b/.gitattributes index 472cfb380c..bdfc989327 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,10 +1,6 @@ # Set default behaviour, in case users don't have core.autocrlf set. #* text=auto -# These annoying files -rippled.1 binary -LICENSE binary - # Visual Studio *.sln text eol=crlf *.vcproj text eol=crlf diff --git a/.gitignore b/.gitignore index d8c6b8a5f8..55844462e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,69 +1,46 @@ # .gitignore -bin/boostbook_catalog.xml -bin/config.log -bin/project-cache.jam - -# Ignore vim swap files. -*.swp - -# Ignore SCons support files. -.sconsign.dblite - -# Ignore python compiled files. -*.pyc - -# Ignore Macintosh Desktop Services Store files. +# Macintosh Desktop Services Store files. .DS_Store -# Ignore backup/temps +# Build, intermediate, and temporary artifacts. *~ - -# Ignore object files. *.o -.nih_c -tags -TAGS -GTAGS -GRTAGS -GPATH -bin/rippled -Debug/*.* -Release/*.* +*.pdb +*.swp +/.clangd +Debug/ +Release/ +/.build/ +/build/ +/db/ +/out.txt +/Testing/ +/tmp/ +CMakeSettings.json +CMakeUserPresets.json -# Ignore coverage files. +# Coverage files. *.gcno *.gcda *.gcov -# Levelization checking +# Profiling data. +gmon.out + +# Levelization data. .github/scripts/levelization/results/* !.github/scripts/levelization/results/loops.txt !.github/scripts/levelization/results/ordering.txt -# Ignore tmp directory. -tmp +# Customized configs. +/rippled.cfg +/validators.txt -# Ignore database directory. -db/ -db/*.db -db/*.db-* +# Locally patched Conan recipes +external/conan-center-index/ -# Ignore debug logs -debug_log.txt - -# Ignore customized configs -rippled.cfg -validators.txt - -# Doxygen generated documentation output -HtmlDocumentation -docs/html_doc - -# Xcode user-specific project settings -# Xcode -.DS_Store -/build/ +# XCode IDE. *.pbxuser !default.pbxuser *.mode1v3 @@ -76,41 +53,16 @@ xcuserdata profile *.moved-aside DerivedData -.idea/ *.hmap -# Intel Parallel Studio 2013 XE -My Amplifier XE Results - RippleD +# JetBrains IDE. +/.idea/ -# Compiler intermediate output -/out.txt +# Microsoft Visual Studio IDE. +/.vs/ +/.vscode/ -# Build Log -rippled-build.log - -# Profiling data -gmon.out - -Builds/VisualStudio2015/*.db -Builds/VisualStudio2015/*.user -Builds/VisualStudio2015/*.opendb -Builds/VisualStudio2015/*.sdf - -# MSVC -*.pdb -.vs/ -CMakeSettings.json -compile_commands.json -.clangd -packages -pkg_out -pkg -CMakeUserPresets.json -bld.rippled/ -.vscode - -# Suggested in-tree build directory -/.build*/ - -# Locally patched Conan recipes -external/conan-center-index/ +# AI tools. +/.augment +/.claude +/CLAUDE.md diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index b3ee85720f..0000000000 --- a/docs/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -html -temp -out.txt From 4565cc280bf2d91f8f88ef74cc807ece4c91a243 Mon Sep 17 00:00:00 2001 From: Bart Date: Mon, 8 Dec 2025 13:39:38 -0500 Subject: [PATCH 4/4] chore: Fix docs readme and cmake (#6122) This change removes the unused `with_docs` option and fixes the README instructions on how to build the `docs` target. --- cmake/XrplDocs.cmake | 4 +--- docs/README.md | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/cmake/XrplDocs.cmake b/cmake/XrplDocs.cmake index dda277bffa..a99bbe076b 100644 --- a/cmake/XrplDocs.cmake +++ b/cmake/XrplDocs.cmake @@ -2,9 +2,7 @@ docs target (optional) #]===================================================================] -option(with_docs "Include the docs target?" FALSE) - -if(NOT (with_docs OR only_docs)) +if(NOT only_docs) return() endif() diff --git a/docs/README.md b/docs/README.md index c95a871729..35fcbba2d1 100644 --- a/docs/README.md +++ b/docs/README.md @@ -54,8 +54,8 @@ There is a `docs` target in the CMake configuration. ``` mkdir build cd build -cmake .. -cmake --build . --target docs +cmake -Donly_docs=ON .. +cmake --build . --target docs --parallel ``` The output will be in `build/docs/html`.