Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposed 2.4.0-rc3 #5322

Closed
wants to merge 29 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
33e1c42
Add deep freeze feature (XLS-77d) (#5187)
vvysokikh1 Jan 31, 2025
f6d6308
Improve git commit hash lookup (#5225)
ximinez Feb 5, 2025
fb3713b
Amendment `fixFrozenLPTokenTransfer` (#5227)
shawnxie999 Feb 5, 2025
02387fd
Updates Conan dependencies (#5256)
bthomee Feb 6, 2025
d9e4009
fix: issues in `simulate` RPC (#5265)
mvadari Feb 7, 2025
0968cdf
fix: Do not allow creating Permissioned Domains if credentials are no…
Bronek Feb 7, 2025
8103459
fix: Omit superfluous setCurrentThreadName call in GRPCServer.cpp (#5…
donovanhide Feb 10, 2025
fa5a854
fix: Amendment to add transaction flag checking functionality for Cre…
oleks-rip Feb 10, 2025
3a55a64
docs: Add a summary of the git commit message rules (#5283)
ximinez Feb 11, 2025
a079bac
chore: Rename missing-commits job, and combine nix job files (#5268)
ximinez Feb 12, 2025
b02b8d0
chore: Fix small typos in protocol files (#5279)
code0xff Feb 13, 2025
e8e7888
docs: ensure build_type and CMAKE_BUILD_TYPE match (#5274)
intelliot Feb 13, 2025
97e3dae
fix: Replace charge() by fee_.update() in OnMessage functions (#5269)
bthomee Feb 13, 2025
01fe947
refactor: Change recursive_mutex to mutex in DatabaseRotatingImp (#5276)
ximinez Feb 13, 2025
dc9e6c3
chore: Update XRPL Foundation public key (#5289)
Tokeiito Feb 14, 2025
7c9d652
Support canonical ledger entry names (#5271)
bthomee Feb 14, 2025
dd5e655
Reduce duplicate peer traffic for ledger data (#5126)
ximinez Feb 14, 2025
db0fad6
Log proposals and validations (#5291)
mtrippled Feb 15, 2025
466849e
docs: Clarifies default port of hosts (#5290)
bthomee Feb 15, 2025
43e1d44
fix: Switch Permissioned Domain to Supported::yes (#5287)
oleks-rip Feb 15, 2025
01fc8f2
Set version to 2.4.0-rc1
legleux Feb 18, 2025
844646d
docs: Revert peer port to 51235 (#5299)
bthomee Feb 19, 2025
159dfb5
Revert "Reduce duplicate peer traffic for ledger data (#5126)" (#5300)
ximinez Feb 19, 2025
dce3e1e
Add logging and improve counting of amendment votes from UNL (#5173)
ximinez Feb 20, 2025
ab44cc3
Set version to 2.4.0-rc2
legleux Feb 20, 2025
9745718
fix: Remove 'new parent hash' assert (#5313)
Bronek Feb 25, 2025
37d06bc
Fix Replace `assert` with `XRPL_ASSERT` (#5312)
Bronek Feb 25, 2025
cd7c628
fix: Acquire previously failed transaction set from network as new pr…
mtrippled Feb 26, 2025
0a1ca06
Set version to 2.4.0-rc3
legleux Feb 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ runs:
conan export external/snappy snappy/1.1.10@
conan export external/rocksdb rocksdb/6.29.5@
conan export external/soci soci/4.0.3@
conan export external/nudb nudb/2.0.8@
- name: add Ripple Conan remote
shell: bash
run: |
Expand Down
103 changes: 0 additions & 103 deletions .github/workflows/instrumentation.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/missing-commits.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
- release

jobs:
check:
up_to_date:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
Expand Down
103 changes: 96 additions & 7 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
pull_request:
push:
# If the branches list is ever changed, be sure to change it on all
# build/test jobs (nix, macos, windows, instrumentation)
# build/test jobs (nix, macos, windows)
branches:
# Always build the package branches
- develop
Expand All @@ -15,9 +15,9 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

# This workflow has two job matrixes.
# They can be considered phases because the second matrix ("test")
# depends on the first ("dependencies").
# This workflow has multiple job matrixes.
# They can be considered phases because most of the matrices ("test",
# "coverage", "conan", ) depend on the first ("dependencies").
#
# The first phase has a job in the matrix for each combination of
# variables that affects dependency ABI:
Expand All @@ -30,9 +30,12 @@ concurrency:
# to hold the binaries if they are built locally.
# We must use the "{upload,download}-artifact" actions instead.
#
# The second phase has a job in the matrix for each test configuration.
# It installs dependency binaries from the cache, whichever was used,
# and builds and tests rippled.
# The remaining phases have a job in the matrix for each test
# configuration. They install dependency binaries from the cache,
# whichever was used, and build and test rippled.
#
# "instrumentation" is independent, but is included here because it also
# builds on linux in the same "on:" conditions.

jobs:
dependencies:
Expand Down Expand Up @@ -293,3 +296,89 @@ jobs:
-DCMAKE_BUILD_TYPE=${configuration}
cmake --build .
./example | grep '^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+'

# NOTE we are not using dependencies built above because it lags with
# compiler versions. Instrumentation requires clang version 16 or
# later

instrumentation-build:
env:
CLANG_RELEASE: 16
strategy:
fail-fast: false
runs-on: [self-hosted, heavy]
container: debian:bookworm
steps:
- name: install prerequisites
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get update
apt-get install --yes --no-install-recommends \
clang-${CLANG_RELEASE} clang++-${CLANG_RELEASE} \
python3-pip python-is-python3 make cmake git wget
apt-get clean
update-alternatives --install \
/usr/bin/clang clang /usr/bin/clang-${CLANG_RELEASE} 100 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_RELEASE}
update-alternatives --auto clang
pip install --no-cache --break-system-packages "conan<2"

- name: checkout
uses: actions/checkout@v4

- name: prepare environment
run: |
mkdir ${GITHUB_WORKSPACE}/.build
echo "SOURCE_DIR=$GITHUB_WORKSPACE" >> $GITHUB_ENV
echo "BUILD_DIR=$GITHUB_WORKSPACE/.build" >> $GITHUB_ENV
echo "CC=/usr/bin/clang" >> $GITHUB_ENV
echo "CXX=/usr/bin/clang++" >> $GITHUB_ENV

- name: configure Conan
run: |
conan profile new --detect default
conan profile update settings.compiler=clang default
conan profile update settings.compiler.version=${CLANG_RELEASE} default
conan profile update settings.compiler.libcxx=libstdc++11 default
conan profile update settings.compiler.cppstd=20 default
conan profile update options.rocksdb=False default
conan profile update \
'conf.tools.build:compiler_executables={"c": "/usr/bin/clang", "cpp": "/usr/bin/clang++"}' default
conan profile update 'env.CXXFLAGS="-DBOOST_ASIO_DISABLE_CONCEPTS"' default
conan profile update 'conf.tools.build:cxxflags+=["-DBOOST_ASIO_DISABLE_CONCEPTS"]' default
conan export external/snappy snappy/1.1.10@
conan export external/soci soci/4.0.3@

- name: build dependencies
run: |
cd ${BUILD_DIR}
conan install ${SOURCE_DIR} \
--output-folder ${BUILD_DIR} \
--install-folder ${BUILD_DIR} \
--build missing \
--settings build_type=Debug

- name: build with instrumentation
run: |
cd ${BUILD_DIR}
cmake -S ${SOURCE_DIR} -B ${BUILD_DIR} \
-Dvoidstar=ON \
-Dtests=ON \
-Dxrpld=ON \
-DCMAKE_BUILD_TYPE=Debug \
-DSECP256K1_BUILD_BENCHMARK=OFF \
-DSECP256K1_BUILD_TESTS=OFF \
-DSECP256K1_BUILD_EXHAUSTIVE_TESTS=OFF \
-DCMAKE_TOOLCHAIN_FILE=${BUILD_DIR}/build/generators/conan_toolchain.cmake
cmake --build . --parallel $(nproc)

- name: verify instrumentation enabled
run: |
cd ${BUILD_DIR}
./rippled --version | grep libvoidstar

- name: run unit tests
run: |
cd ${BUILD_DIR}
./rippled -u --unittest-jobs $(( $(nproc)/4 ))
3 changes: 2 additions & 1 deletion API-CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,9 +90,10 @@ As of 2025-01-28, version 2.4.0 is in development. You can use a pre-release ver
### Additions and bugfixes in 2.4.0

- `ledger_entry`: `state` is added an alias for `ripple_state`.
- `ledger_entry`: Enables case-insensitive filtering by canonical name in addition to case-sensitive filtering by RPC name.
- `validators`: Added new field `validator_list_threshold` in response.
- `simulate`: A new RPC that executes a [dry run of a transaction submission](https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0069d-simulate#2-rpc-simulate)
- Signing methods autofill fees better and properly handle transactions that don't have a base fee.
- Signing methods autofill fees better and properly handle transactions that don't have a base fee, and will also autofill the `NetworkID` field.

## XRP Ledger server version 2.3.0

Expand Down
34 changes: 28 additions & 6 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,13 +222,15 @@ It fixes some source files to add missing `#include`s.
the `install-folder` or `-if` option to every `conan install` command
in the next step.

2. Generate CMake files for every configuration you want to build.
2. Use conan to generate CMake files for every configuration you want to build:

```
conan install .. --output-folder . --build missing --settings build_type=Release
conan install .. --output-folder . --build missing --settings build_type=Debug
```
To build Debug, in the next step, be sure to set `-DCMAKE_BUILD_TYPE=Debug`
For a single-configuration generator, e.g. `Unix Makefiles` or `Ninja`,
you only need to run this command once.
For a multi-configuration generator, e.g. `Visual Studio`, you may want to
Expand Down Expand Up @@ -258,13 +260,16 @@ It fixes some source files to add missing `#include`s.
Single-config generators:
Pass the CMake variable [`CMAKE_BUILD_TYPE`][build_type]
and make sure it matches the one of the `build_type` settings
you chose in the previous step.
For example, to build Debug, in the next command, replace "Release" with "Debug"
```
cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release -Dxrpld=ON -Dtests=ON ..
```
Pass the CMake variable [`CMAKE_BUILD_TYPE`][build_type]
and make sure it matches the `build_type` setting you chose in the previous
step.
Multi-config generators:
Expand All @@ -274,7 +279,7 @@ It fixes some source files to add missing `#include`s.
**Note:** You can pass build options for `rippled` in this step.
4. Build `rippled`.
5. Build `rippled`.
For a single-configuration generator, it will build whatever configuration
you passed for `CMAKE_BUILD_TYPE`. For a multi-configuration generator,
Expand All @@ -293,7 +298,7 @@ It fixes some source files to add missing `#include`s.
cmake --build . --config Debug
```
5. Test rippled.
6. Test rippled.
Single-config generators:
Expand Down Expand Up @@ -403,6 +408,23 @@ After any updates or changes to dependencies, you may need to do the following:
4. Re-run [conan install](#build-and-test).
### 'protobuf/port_def.inc' file not found
If `cmake --build .` results in an error due to a missing a protobuf file, then you might have generated CMake files for a different `build_type` than the `CMAKE_BUILD_TYPE` you passed to conan.
```
/rippled/.build/pb-xrpl.libpb/xrpl/proto/ripple.pb.h:10:10: fatal error: 'google/protobuf/port_def.inc' file not found
10 | #include <google/protobuf/port_def.inc>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
```
For example, if you want to build Debug:
1. For conan install, pass `--settings build_type=Debug`
2. For cmake, pass `-DCMAKE_BUILD_TYPE=Debug`
### no std::result_of
If your compiler version is recent enough to have removed `std::result_of` as
Expand Down
1 change: 1 addition & 0 deletions Builds/levelization/results/ordering.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ test.app > xrpl.basics
test.app > xrpld.app
test.app > xrpld.core
test.app > xrpld.ledger
test.app > xrpld.nodestore
test.app > xrpld.overlay
test.app > xrpld.rpc
test.app > xrpl.json
Expand Down
10 changes: 9 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,21 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
# make GIT_COMMIT_HASH define available to all sources
find_package(Git)
if(Git_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git describe --always --abbrev=40
execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git rev-parse HEAD
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE gch)
if(gch)
set(GIT_COMMIT_HASH "${gch}")
message(STATUS gch: ${GIT_COMMIT_HASH})
add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}")
endif()

execute_process(COMMAND ${GIT_EXECUTABLE} --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git rev-parse --abbrev-ref HEAD
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE gb)
if(gb)
set(GIT_BRANCH "${gb}")
message(STATUS gb: ${GIT_BRANCH})
add_definitions(-DGIT_BRANCH="${GIT_BRANCH}")
endif()
endif() #git

if(thread_safety_analysis)
Expand Down
13 changes: 13 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,19 @@ Refer to
["How to Write a Git Commit Message"](https://cbea.ms/git-commit/)
for general rules on writing a good commit message.

tl;dr
> 1. Separate subject from body with a blank line.
> 2. Limit the subject line to 50 characters.
> * [...]shoot for 50 characters, but consider 72 the hard limit.
> 3. Capitalize the subject line.
> 4. Do not end the subject line with a period.
> 5. Use the imperative mood in the subject line.
> * A properly formed Git commit subject line should always be able
> to complete the following sentence: "If applied, this commit will
> _your subject line here_".
> 6. Wrap the body at 72 characters.
> 7. Use the body to explain what and why vs. how.

In addition to those guidelines, please add one of the following
prefixes to the subject line if appropriate.
* `fix:` - The primary purpose is to fix an existing bug.
Expand Down
Loading
Loading