Skip to content

Commit 0834c23

Browse files
authored
Merge branch 'develop' into ximinez/fix-getledger
2 parents cd62ba1 + f399749 commit 0834c23

File tree

11 files changed

+423
-254
lines changed

11 files changed

+423
-254
lines changed

.github/scripts/strategy-matrix/generate.py

Lines changed: 176 additions & 70 deletions
Large diffs are not rendered by default.

.pre-commit-config.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ repos:
3131
hooks:
3232
- id: prettier
3333

34+
- repo: https://github.com/psf/black-pre-commit-mirror
35+
rev: 25.11.0
36+
hooks:
37+
- id: black
38+
3439
exclude: |
3540
(?x)^(
3641
external/.*|

BUILD.md

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,13 @@ These instructions assume a basic familiarity with Conan and CMake. If you are
8888
unfamiliar with Conan, then please read [this crash course](./docs/build/conan.md) or the official
8989
[Getting Started][3] walkthrough.
9090

91+
#### Conan lockfile
92+
93+
To achieve reproducible dependencies, we use a [Conan lockfile](https://docs.conan.io/2/tutorial/versioning/lockfiles.html),
94+
which has to be updated every time dependencies change.
95+
96+
Please see the [instructions on how to regenerate the lockfile](conan/lockfile/README.md).
97+
9198
#### Default profile
9299

93100
We recommend that you import the provided `conan/profiles/default` profile:
@@ -450,33 +457,6 @@ tools.build:cxxflags=['-DBOOST_ASIO_DISABLE_CONCEPTS']
450457
The location of `rippled` binary in your build directory depends on your
451458
CMake generator. Pass `--help` to see the rest of the command line options.
452459
453-
#### Conan lockfile
454-
455-
To achieve reproducible dependencies, we use [Conan lockfile](https://docs.conan.io/2/tutorial/versioning/lockfiles.html).
456-
457-
The `conan.lock` file in the repository contains a "snapshot" of the current dependencies.
458-
It is implicitly used when running `conan` commands, you don't need to specify it.
459-
460-
You have to update this file every time you add a new dependency or change a revision or version of an existing dependency.
461-
462-
> [!NOTE]
463-
> Conan uses local cache by default when creating a lockfile.
464-
>
465-
> To ensure, that lockfile creation works the same way on all developer machines, you should clear the local cache before creating a new lockfile.
466-
467-
To create a new lockfile, run the following commands in the repository root:
468-
469-
```bash
470-
conan remove '*' --confirm
471-
rm conan.lock
472-
# This ensure that xrplf remote is the first to be consulted
473-
conan remote add --force --index 0 xrplf https://conan.ripplex.io
474-
conan lock create . -o '&:jemalloc=True' -o '&:rocksdb=True'
475-
```
476-
477-
> [!NOTE]
478-
> If some dependencies are exclusive for some OS, you may need to run the last command for them adding `--profile:all <PROFILE>`.
479-
480460
## Coverage report
481461
482462
The coverage report is intended for developers using compilers GCC

conan.lock

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,31 +7,32 @@
77
"soci/4.0.3#a9f8d773cd33e356b5879a4b0564f287%1756234262.318",
88
"snappy/1.1.10#968fef506ff261592ec30c574d4a7809%1756234314.246",
99
"rocksdb/10.5.1#4a197eca381a3e5ae8adf8cffa5aacd0%1762797952.535",
10-
"re2/20230301#dfd6e2bf050eb90ddd8729cfb4c844a4%1756234257.976",
11-
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
10+
"re2/20230301#ca3b241baec15bd31ea9187150e0b333%1764175362.029",
11+
"protobuf/3.21.12#44ee56c0a6eea0c19aeeaca680370b88%1764175361.456",
1212
"openssl/3.5.4#a1d5835cc6ed5c5b8f3cd5b9b5d24205%1760106486.594",
1313
"nudb/2.0.9#fb8dfd1a5557f5e0528114c2da17721e%1763150366.909",
1414
"lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504%1756234228.999",
1515
"libiconv/1.17#1e65319e945f2d31941a9d28cc13c058%1756223727.64",
1616
"libbacktrace/cci.20210118#a7691bfccd8caaf66309df196790a5a1%1756230911.03",
17-
"libarchive/3.8.1#5cf685686322e906cb42706ab7e099a8%1756234256.696",
17+
"libarchive/3.8.1#ffee18995c706e02bf96e7a2f7042e0d%1764175360.142",
1818
"jemalloc/5.3.0#e951da9cf599e956cebc117880d2d9f8%1729241615.244",
1919
"grpc/1.50.1#02291451d1e17200293a409410d1c4e1%1756234248.958",
2020
"doctest/2.4.12#eb9fb352fb2fdfc8abb17ec270945165%1762797941.757",
21-
"date/3.0.4#f74bbba5a08fa388256688743136cb6f%1756234217.493",
22-
"c-ares/1.34.5#b78b91e7cfb1f11ce777a285bbf169c6%1756234217.915",
23-
"bzip2/1.0.8#00b4a4658791c1f06914e087f0e792f5%1756234261.716",
21+
"date/3.0.4#862e11e80030356b53c2c38599ceb32b%1763584497.32",
22+
"c-ares/1.34.5#5581c2b62a608b40bb85d965ab3ec7c8%1764175359.429",
23+
"bzip2/1.0.8#c470882369c2d95c5c77e970c0c7e321%1764175359.429",
2424
"boost/1.88.0#8852c0b72ce8271fb8ff7c53456d4983%1756223752.326",
25-
"abseil/20230802.1#f0f91485b111dc9837a68972cb19ca7b%1756234220.907"
25+
"abseil/20230802.1#90ba607d4ee8fb5fb157c3db540671fc%1764175359.429"
2626
],
2727
"build_requires": [
2828
"zlib/1.3.1#b8bc2603263cf7eccbd6e17e66b0ed76%1756234269.497",
2929
"strawberryperl/5.32.1.1#707032463aa0620fa17ec0d887f5fe41%1756234281.733",
30-
"protobuf/3.21.12#d927114e28de9f4691a6bbcdd9a529d1%1756234251.614",
30+
"protobuf/3.21.12#44ee56c0a6eea0c19aeeaca680370b88%1764175361.456",
3131
"nasm/2.16.01#31e26f2ee3c4346ecd347911bd126904%1756234232.901",
3232
"msys2/cci.latest#5b73b10144f73cc5bfe0572ed9be39e1%1751977009.857",
33-
"m4/1.4.19#f119296e5c4772b3bb7ab060ae8f417b%1760707875.678",
34-
"cmake/3.31.8#dde3bde00bb843687e55aea5afa0e220%1756234232.89",
33+
"m4/1.4.19#70dc8bbb33e981d119d2acc0175cf381%1763158052.846",
34+
"cmake/4.2.0#ae0a44f44a1ef9ab68fd4b3e9a1f8671%1764175359.44",
35+
"cmake/3.31.10#313d16a1aa16bbdb2ca0792467214b76%1764175359.429",
3536
"b2/5.3.3#107c15377719889654eb9a162a673975%1756234226.28",
3637
"automake/1.16.5#b91b7c384c3deaa9d535be02da14d04f%1755524470.56",
3738
"autoconf/2.71#51077f068e61700d65bb05541ea1e4b0%1731054366.86"
@@ -48,14 +49,11 @@
4849
"boost/1.83.0": [
4950
"boost/1.88.0"
5051
],
51-
"sqlite3/[>=3.44 <4]": [
52+
"sqlite3/3.44.2": [
5253
"sqlite3/3.49.1"
5354
],
5455
"lz4/[>=1.9.4 <2]": [
5556
"lz4/1.10.0#59fc63cac7f10fbe8e05c7e62c2f3504"
56-
],
57-
"sqlite3/3.44.2": [
58-
"sqlite3/3.49.1"
5957
]
6058
},
6159
"config_requires": []

conan/lockfile/README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Conan lockfile
2+
3+
To achieve reproducible dependencies, we use a [Conan lockfile](https://docs.conan.io/2/tutorial/versioning/lockfiles.html).
4+
5+
The `conan.lock` file in the repository contains a "snapshot" of the current
6+
dependencies. It is implicitly used when running `conan` commands, so you don't
7+
need to specify it.
8+
9+
You have to update this file every time you add a new dependency or change a
10+
revision or version of an existing dependency.
11+
12+
To update a lockfile, run from the repository root: `./conan/lockfile/regenerate.sh`

conan/lockfile/linux.profile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[settings]
2+
arch=x86_64
3+
build_type=Release
4+
compiler=gcc
5+
compiler.cppstd=20
6+
compiler.libcxx=libstdc++11
7+
compiler.version=13
8+
os=Linux

conan/lockfile/macos.profile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[settings]
2+
arch=armv8
3+
build_type=Release
4+
compiler=apple-clang
5+
compiler.cppstd=20
6+
compiler.libcxx=libc++
7+
compiler.version=17.0
8+
os=Macos

conan/lockfile/regenerate.sh

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
#!/usr/bin/env bash
2+
3+
set -ex
4+
5+
TEMP_DIR=$(mktemp -d)
6+
trap "rm -rf $TEMP_DIR" EXIT
7+
8+
echo "Using temporary CONAN_HOME: $TEMP_DIR"
9+
10+
# We use a temporary Conan home to avoid polluting the user's existing Conan
11+
# configuration and to not use local cache (which leads to non-reproducible lockfiles).
12+
export CONAN_HOME="$TEMP_DIR"
13+
14+
# Ensure that the xrplf remote is the first to be consulted, so any recipes we
15+
# patched are used. We also add it there to not created huge diff when the
16+
# official Conan Center Index is updated.
17+
conan remote add --force --index 0 xrplf https://conan.ripplex.io
18+
19+
# Delete any existing lockfile.
20+
rm -f conan.lock
21+
22+
# Create a new lockfile that is compatible with Linux, macOS, and Windows. The
23+
# first create command will create a new lockfile, while the subsequent create
24+
# commands will merge any additional dependencies into the created lockfile.
25+
conan lock create . \
26+
--options '&:jemalloc=True' \
27+
--options '&:rocksdb=True' \
28+
--profile:all=conan/lockfile/linux.profile
29+
conan lock create . \
30+
--options '&:jemalloc=True' \
31+
--options '&:rocksdb=True' \
32+
--profile:all=conan/lockfile/macos.profile
33+
conan lock create . \
34+
--options '&:jemalloc=True' \
35+
--options '&:rocksdb=True' \
36+
--profile:all=conan/lockfile/windows.profile

conan/lockfile/windows.profile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[settings]
2+
arch=x86_64
3+
build_type=Release
4+
compiler=msvc
5+
compiler.cppstd=20
6+
compiler.runtime=dynamic
7+
compiler.runtime_type=Release
8+
compiler.version=194
9+
os=Windows

0 commit comments

Comments
 (0)