2.5.0
Introducing Clio version 2.5.0
Version 2.5.0 of Clio, an XRP Ledger API server optimized for HTTP and WebSocket API calls, is now available. This release adds new features and bug fixes.
Amendment Support
The following amendments have been introduced since Clio 2.4.1 and have transaction model changes. Clio 2.5.0 is built with libxrpl 2.5.0, which supports these amendments.
Whats's changed
🚀 Features
- ETLng extensions (#1967) by @godexsoft
- Snapshot import feature (#1970) by @cindyyan317
- ETLng integration (#1986) by @godexsoft
- Nodes communication via DB (#1976) by @kuznetsss
- More efficient cache (#1997) by @kuznetsss
- Introduce
release_impl.ymlworkflow to automatically create rel… (#2043) by @mathbunnyru - Implement clang build analyzer (#2072) by @mathbunnyru
- Add load balancer prometheus metrics (#2096) by @mathbunnyru
- Cache FetchLedgerBySeq (#2014) by @PeterChen13579
- Dosguard API weights (#2082) by @kuznetsss
- Implement load balancer metrics in etlng (#2119) by @mathbunnyru
- Add hadolint docker pre-commit hook (#2135) by @mathbunnyru
- Account permission support (#2145) by @kuznetsss
- Add get range feat to export tool (#2131) by @PeterChen13579
- ETLng publisher and service refactoring (#2138) by @godexsoft
- ETLng MPT support (#2154) by @godexsoft
- Support Batch (#2162) by @PeterChen13579
- Use new web server by default (#2182) by @kuznetsss
- Create releases in CI (#2168) by @mathbunnyru
- New docker images structure, tools image (#2185) by @mathbunnyru
- Add ubsan build to nightly release (#2190) by @mathbunnyru
- Support Permissioned DEX (#2152) by @mathbunnyru
- Use Conan 2 (#2179) by @mathbunnyru
- Always build with native arch in Conan 2 (#2201) by @mathbunnyru
- Pass sanitizer as part of conan_profile (#2189) by @mathbunnyru
- Add flags to deps for sanitizer builds (#2205) by @godexsoft
- Read-write switching in ETLng (#2199) by @godexsoft
- Build GCC natively and then merge the image (#2212) by @mathbunnyru
- Add conan lockfile (#2220) by @mathbunnyru
- Build all possible conan configurations in CI (#2225) by @mathbunnyru
- Support start and finish sequence in ETLng (#2226) by @godexsoft
- Build macos dependencies with sanitizers (#2240) by @mathbunnyru
- ETLng cleanup and graceful shutdown (#2232) by @godexsoft
- Build sanitizers with clang (#2239) by @mathbunnyru
- Download and upload conan packages in parallel (#2254) by @mathbunnyru
- Add init_conan script (#2242) by @mathbunnyru
- Add Support For Token Escrow (#2252) by @mathbunnyru
- Support single asset vault (#1979) by @PeterChen13579
- Switch to xrpl/2.5.0 release (#2267) by @mathbunnyru
- Update to Clang 19 (#2293) by @mathbunnyru
- Run sanitizers for Debug builds as well (#2296) by @mathbunnyru
- Add script to rebuild conan dependencies (#2311) by @mathbunnyru
- Always use version from tag if available (#2322) by @mathbunnyru
- Update to GCC 14.3 (#2344) by @mathbunnyru
🐛 Bug Fixes
- Ripple_flag logic in account lines (#1969) by @PeterChen13579
- Fix ssl in new webserver (#1981) by @kuznetsss
- Incorrect set HighDeepFreeze flag (#1978) by @PeterChen13579
- CTID issue (#2001) by @PeterChen13579
- Fix incorrect requests logging (#2005) by @kuznetsss
- Pin cmake version in ci Dockerfile (#2036) by @mathbunnyru
- Add CTID to all RPC's that includes transactions (#2011) by @PeterChen13579
- Add missing paths to update_docker_ci.yml (#2044) by @mathbunnyru
- Use ytanikin/pr-conventional-commits action for conventional com… (#2049) by @mathbunnyru
- Remove Mac CMake installation error (#2040) by @mathbunnyru
- Don't use steps.conan.outputs.conan_profile as it doesn't exist … (#2056) by @mathbunnyru
- Quote release title (#2064) by @mathbunnyru
- Flaky test in ETLng (#2077) by @godexsoft
- Pass secrets.CODECOV_TOKEN explicitly (#2079) by @mathbunnyru
- Make ctors/dtors public in tests (#2089) by @mathbunnyru
- Make fix-local-includes.sh work on file-basis (#2099) by @mathbunnyru
- Catch exception in ClusterCommunicationService (#2093) by @kuznetsss
- Make fix-local-includes.sh work with multiple files (#2102) by @mathbunnyru
- Guarantee async behaviour of WsBase::send (#2100) by @godexsoft
- Run clang-format after tidy (#2108) by @mathbunnyru
- Do not rewrite original file if it hasn't changed in fix-local-i… (#2109) by @mathbunnyru
- Fix build with sanitizers (#2118) by @kuznetsss
- Use
git lfs installand fix verify-commits hook (#2129) by @mathbunnyru - Fix some doxygen docs errors (#2130) by @mathbunnyru
- Add Delegate to Ledger types (#2151) by @kuznetsss
- Use UniformRandomGenerator class to prevent threading issue (#2165) by @mathbunnyru
- Add style to the name of pre-commit autoupdate PR title (#2177) by @mathbunnyru
- Add README to docker/compilers (#2188) by @mathbunnyru
- Analyze build time on clang as well (#2195) by @mathbunnyru
- Only set compile flag for grpc (#2204) by @mathbunnyru
- Make GHCR lowercase (#2218) by @mathbunnyru
- Use conan v2 dirs and commands in docs (#2219) by @mathbunnyru
- Run upload_conan_deps.yml on conan.lock changes (#2227) by @mathbunnyru
- Return domainMalformed when domain is malformed (#2228) by @mathbunnyru
- Add domain to book_changes (#2229) by @mathbunnyru
- Update CI image to provide global.conf for sanitizers to affect … (#2233) by @mathbunnyru
- Use new CI image with global.conf for sanitizers to affect packa… (#2234) by @mathbunnyru
- Force reupload new artifacts (#2236) by @mathbunnyru
- Make update-libxrpl-version work with lockfile (#2249) by @mathbunnyru
- Disable conan uploads on schedule (#2253) by @mathbunnyru
- Don't cancel ci image builds (#2259) by @mathbunnyru
- Pin lxml<6.0.0 (#2269) by @mathbunnyru
- Do not allow command injection in GitHub workflows (#2270) by @mathbunnyru
- Only set package_id:confs for sanitized builds (#2261) by @mathbunnyru
- Use .contains() method where available (#2277) by @mathbunnyru
- Cleanup fmt headers (#2285) by @mathbunnyru
- Import a GPG key when running pre-commit-autoupdate (#2287) by @mathbunnyru
- Make pre-commit autoupdate PRs verified (#2289) by @mathbunnyru
- Temporarily disable dockerhub description update (#2298) by @mathbunnyru
- Usage of compiler flags for RPC module (#2305) by @godexsoft
- ASAN stack-buffer-overflow in NFTHelpersTest_NFTDataFromLedgerObject (#2306) by @godexsoft
- Add sending queue to ng web server (#2273) by @kuznetsss
- ASAN heap-buffer-overflow issue in DBHelpers (#2310) by @godexsoft
- Link with boost libraries explicitly (#2313) by @mathbunnyru
- Mark tags with dash as prerelease (#2319) by @mathbunnyru
- Prepare runner in docs workflow (#2325) by @mathbunnyru
- Fix writing into dead variables in BlockingCache (#2333) by @kuznetsss
- Handle logger exceptions (#2349) by @kuznetsss
🚜 Refactor
- Compare error_code with enum values, not hardcoded ints (#2023) by @mathbunnyru
- Add str() method to BaseTagDecorator (#2020) by @mathbunnyru
- Load balancer forwarding metrics (#2103) by @mathbunnyru
- Remove old config (#2097) by @PeterChen13579
- Use std::expected instead of std::variant for errors (#2160) by @mathbunnyru
- Simplify check_config implementation (#2247) by @mathbunnyru
- Refactor GCC image to make upgrades easier (#2246) by @mathbunnyru
- Simplify CMakeLists.txt for sanitizers (#2297) by @mathbunnyru
📚 Documentation
- Verify/review config descriptions (#1960) by @maria-robobug
- Improve wording (#2095) by @mathbunnyru
- Add information about global.conf (#2238) by @mathbunnyru
🎨 Styling
- Use pre-commit tool and add simple config (#2029) by @mathbunnyru
- Add prettier pre-commit hook (#2031) by @mathbunnyru
- Apply
go fmtto go code (#2046) by @mathbunnyru - Add markdownlint pre-commit hook (#2038) by @mathbunnyru
- Add typos pre-commit hook (#2041) by @mathbunnyru
- Add C++ pre-commit hooks (#2039) by @mathbunnyru
- Improve actions and workflows style (#2060) by @mathbunnyru
- Use
codespellinstead oftypospre-commit hook (#2104) by @mathbunnyru - Mark JSON literal strings with R"JSON (#2169) by @mathbunnyru
- Beautify installation lists in Dockerfile (#2172) by @mathbunnyru
- Put static before type (#2231) by @mathbunnyru
- Fix JSON style in C++ code (#2262) by @mathbunnyru
- Add pre-commit hook to fix JSON style in C++ code (#2266) by @mathbunnyru
- Update pre-commit hooks (#2290) by @github-actions[bot]
🧪 Testing
- Add
build_and_testreusable workflow (#2048) by @mathbunnyru - Remove SetUp and TearDown methods in tests (#2086) by @mathbunnyru
- Increase cassandra timeouts in tests (#2127) by @mathbunnyru
- Run undefined sanitizer without ignoring errors (#2134) by @mathbunnyru
- Skip slow DB sleep-based test on Mac (#2148) by @mathbunnyru
⚙️ Miscellaneous Tasks
- Add git-cliff config (#1965) by @kuznetsss
- Pin cmake 3.31.6 for macos runners (#1983) by @kuznetsss
- Update maintainers (#1987) by @godexsoft
- Update workflow notification settings (#1990) by @godexsoft
- Fix clang-tidy 'fixes' (#1996) by @godexsoft
- Run dependabot for all local actions (#2018) by @mathbunnyru
- Pin external actions using hashes (#2019) by @mathbunnyru
- Fix time field to be string in dependabot config (#2024) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 5.4.0 to 6.15.0 in /.github/actions/build_docker_image (#2027) by @dependabot[bot]
- Remove dead code related to centos (#2028) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 6.15.0 to 6.16.0 in /.github/actions/build_docker_image (#2030) by @dependabot[bot]
- Specify conan profile explicitly and don't override it (#2042) by @mathbunnyru
- Capitalize Dockerfile to add support of tools (#2045) by @mathbunnyru
- Don't use wandalen/wretry.action and update codecov/codecov-ac… (#2050) by @mathbunnyru
- Disable add_label for conventional commits (#2054) by @mathbunnyru
- Try to push to ghcr.io (#2051) by @mathbunnyru
- Use ghcr.io/xrplf/clio-ci docker image (#2055) by @mathbunnyru
- Use only pre-commit hooks (#2057) by @mathbunnyru
- Specify concurrency for github workflows (#2059) by @mathbunnyru
- Refactor how we run code coverage (#2065) by @mathbunnyru
- Don't use concurrency with workflow_call (#2069) by @mathbunnyru
- Install ClangBuildAnalyzer in the ci image (#2071) by @mathbunnyru
- Move clang build analyzer to nightly (#2074) by @mathbunnyru
- Fail CI if codecov upload fails (#2078) by @mathbunnyru
- Run pre-commit workflow on heavy runner to make doxygen work (#2085) by @mathbunnyru
- Use XRPLF/clio-dev-team in dependabot (#2081) by @mathbunnyru
- Fix double quotes for all workflows and actions (#2090) by @godexsoft
- Run integration tests on macOS (#2080) by @mathbunnyru
- Attempt to remove whitespace to fix sanitizer build (#2105) by @godexsoft
- Freeze pre-commit hooks (#2114) by @mathbunnyru
- Use XRPLF/clio-dev-team as team-reviewers, update assignees (#2113) by @mathbunnyru
- Don't use team-reviewers because creating PAT is too difficult (#2117) by @mathbunnyru
- Explicitly specify workflow dependencies (#2110) by @mathbunnyru
- Run sanitizers on script change (#2122) by @mathbunnyru
- Install git-cliff to generate changelog (#2136) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 6.16.0 to 6.17.0 in /.github/actions/build_docker_image (#2142) by @dependabot[bot]
- [DEPENDABOT] bump codecov/codecov-action from 5.4.2 to 5.4.3 (#2141) by @dependabot[bot]
- Fix: nagetive -> negative (#2156) by @mathbunnyru
- Add missing workflow dependencies (#2155) by @mathbunnyru
- [DEPENDABOT] bump docker/build-push-action from 6.17.0 to 6.18.0 in /.github/actions/build_docker_image (#2175) by @dependabot[bot]
- Install zip in Dockerfile (#2176) by @mathbunnyru
- Cancellable coroutines (#2180) by @kuznetsss
- Revert "feat: Use new web server by default (#2182)" (#2187) by @kuznetsss
- Use gcc from Docker Hub for now (#2194) by @mathbunnyru
- Update libxrpl (#2186) by @PeterChen13579
- Update CI image to use Conan 2 (#2178) by @mathbunnyru
- Don't flex and don't install bison in CI image (#2210) by @mathbunnyru
- Unreachable code is error (#2216) by @godexsoft
- Upload conan deps for all profiles (#2217) by @mathbunnyru
- [DEPENDABOT] bump docker/setup-buildx-action from 3.10.0 to 3.11.0 in /.github/actions/build_docker_image (#2235) by @dependabot[bot]
- Don't use save/restore cache for conan; use artifactory (#2230) by @mathbunnyru
- Full build conan dependencies only on schedule (#2241) by @mathbunnyru
- Silence brew warnings (#2255) by @mathbunnyru
- Cleanup conanfile (#2243) by @mathbunnyru
- Don't use self-hosted runner tag (#2248) by @mathbunnyru
- Don't use dynamic names when they are not needed (#2251) by @mathbunnyru
- Update conan.lock (#2250) by @mathbunnyru
- [DEPENDABOT] bump docker/setup-buildx-action from 3.11.0 to 3.11.1 in /.github/actions/build_docker_image (#2256) by @dependabot[bot]
- Update fmt to 11.2.0 (#2281) by @mathbunnyru
- Update LLVM tools to v20 (#2278) by @mathbunnyru
- Don't hardcode versions in Dockerfiles and workflows (#2291) by @mathbunnyru
- Add mold to tools image (#2301) by @mathbunnyru
- Build tools image separately for different archs (#2302) by @mathbunnyru
- Bump tools docker image version (#2303) by @mathbunnyru
- Update conan revisions (#2308) by @mathbunnyru
- Remove redundant words in comment (#2309) by @liangmulu
- Unify how we deal with branches (#2320) by @mathbunnyru
- Remove using blocking cache (#2328) by @kuznetsss
- Add trufflehog security tool (#2334) by @mathbunnyru
- Don't hardcode xrplf repo when building docker images (#2336) by @mathbunnyru
- Don't hardcode gcc version in ci/Dockerfile (#2337) by @mathbunnyru
- Do not hardcode python filename in gcc Dockerfile (#2340) by @mathbunnyru
- Install apple-clang 17 locally (#2342) by @mathbunnyru
- Don't run tsan unit tests, build 3rd party for gcc.tsan heavy-arm64 (#2347) by @mathbunnyru
- Run upload_conan_deps on necessary changes in .github/scripts/conan/ (#2348) by @mathbunnyru
Testing Credits
- Thanks to @mounikakun and others for testing this release.
To report an issue or propose a new idea, please open an issue.