-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Release 3.0.0-rc1 #5943
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
Merged
Merged
Release 3.0.0-rc1 #5943
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Collaborator
Author
|
The idea behind the set of changes picked here is:
|
…ges (#5856) This change uses the new RHEL 9 and 10 images to build and test the binary, and adds support for having different Docker image SHAs per distro-compiler combination. Instead of supporting RHEL each minor version, we are simplifying our pipelines by only supporting RHEL major versions. Our CI Docker images have already been updated accordingly, and we recently added support for RHEL 10 as well. Up until now, the CI Docker images had all been rebuilt at the same time, but that is not necessarily true as the most recent push to the CI repo has shown where the RHEL images now have a different SHA than the Debian and Ubuntu ones. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change fixes a release build error with GCC 15.2. The `fields` variable is only used in `XRPL_ASSERT`, which evaluates to nothing in a Release build, leaving the variable unused. This change silences the build warning. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change adds invariants for SingleAssetVault #5224 (XLS-065), which had been intentionally skipped earlier to keep the SAV PR size manageable.
This change adds a wildcard to the release branch in the CI pipeline spec. Namely, after adopting an improved release process, with release branches that now look like release-X.Y, the trigger pipeline was no longer running as it only searched for an exact match to release.
This change excludes from Codecov unreachable/difficult-to-test transaction code (such as `tecINTERNAL`) and old code (from amendments that have been enabled for a long time that are only around for ledger replay reasons). This removes about 200 lines of misses and increases the Codecov coverage by 0.3% (79.2% to 79.5%).
This change adds a paychan namespace to the TestHelpers and implementation files, improving organization and clarity. Additionally, it updates the AMM test to use the new `paychan::create` function for payment channel creation. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change updates the Docker image hashes of the tools-rippled images to fix a missing dependency. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
Windows is extremely chatty and generates tons of logs when building, making it practically impossible to use the build logs to debug issues. This change sets the verbosity to 'quiet' on Windows. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change replaces instances of JSON LastLedgerSequence with last_ledger_seq, which makes the tests a bit simpler and easier to read. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
There are some tests that write out JSONs as a string instead of using the Json::Value library, which are cleaned up by this change. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
This change sanitizes inputs by setting them as environment variables, and adjusts the number of CPUs used for building. Namely, GitHub inputs should be sanitized, per recommendation by Semgrep, as using them directly poses a security risk. A recent change further overrode the global configuration by having builds use all cores, but as we have noticed an increased number of job cancelation this change updates it to use all cores less one. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
#5897) This PR sets the fail-fast strategy option to false (it defaults to true), unless it is run by a merge group. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
The default job timeout is 5 hours, while build times are anywhere between 4-20 mins and test times between 2-10. As a runner occasionally gets stuck, we should fail much quicker. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
…draw (#5857) Similarly to other transaction typed that can create a trust line or MPToken for the transaction submitter (e.g. CashCheck #5285, EscrowFinish #5185 ), VaultWithdraw should enforce reserve before creating a new object. Additionally, the lsfRequireDestTag account flag should be enforced for the transaction submitter. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
The `-Wno-missing-template-arg-list-after-template-kw` flag is only needed for the grpc library. Use `+=` for the default build flags to make it easier to extend in the future. Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
Co-authored-by: Bart Thomee <11445373+bthomee@users.noreply.github.com>
e1bf24b to
aaa2210
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## release-3.0 #5943 +/- ##
=============================================
Coverage ? 78.8%
=============================================
Files ? 816
Lines ? 68833
Branches ? 8164
=============================================
Hits ? 54216
Misses ? 14617
Partials ? 0
🚀 New features to boost your workflow:
|
aaa2210 to
e14ecb7
Compare
e14ecb7 to
1526b43
Compare
Collaborator
|
LGTM so far. |
vvysokikh1
approved these changes
Nov 3, 2025
1526b43 to
0ccabf9
Compare
To debug test failures we would like to use `netstat`, but that package wasn't installed yet in the CI images. This change uses the new CI images created by XRPLF/ci#79.
When outputting the unit test summary, this change counts crashed tests as failures.
This change unifies the build and test jobs into a single job, and adds `ctest` to coverage reporting. The mechanics of coverage reporting is slightly complex and most of it is encapsulated in the `coverage` target. The status quo way of preparing coverage reports involves running a single target `cmake --build . --target coverage`, which does three things: * Build the `rippled` binary (via target dependency) * Prepare coverage reports: * Run `./rippled -u` unit tests. * Gather test output and build reports. This makes it awkward to add an additional `ctest` step between build and coverage reporting steps. The better solution is to split `coverage` target into separate build, followed by `ctest`, followed by test generation. Luckily, the `coverage` target has been designed specifically to support such case; it does not need to build `rippled`, it's just a dependency. Similarly it allows additional tests to be run before gathering test outputs; in principle we could even strip it from running tests and run them separately instead. This means we can keep build, `ctest` and generation of coverage reports as separate steps, as long as the state of build directory is fully (including file timestamps, additional coverage files etc.) preserved between the steps. This means that in order to run `ctest` for coverage reporting we need to integrate build and test into a single job, which this change does.
This change removes unused definitions from the CMake files, moves variable definitions from `XrplSanity` to `XrplSettings` where they better belong, and updates the minimum GCC and Clang versions to match what we actually minimally support.
0ccabf9 to
2345a3f
Compare
This change makes the progress of unit tests visible and also gives more flexibility when running them.
2345a3f to
3141550
Compare
This change fixes floating point errors in conversion of shares to assets and other way, used in `VaultDeposit`, `VaultWithdraw` and `VaultClawback`. In the floating point calculations the division introduces a larger error than multiplication. If we do division first, then the error introduced will be increased by the multiplication that follows, which is therefore the wrong order to perform these two operations. This change flips the order of arithmetic operations, which minimizes the error.
3141550 to
e7e4d52
Compare
vvysokikh1
approved these changes
Nov 12, 2025
bthomee
approved these changes
Nov 12, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
High Level Overview of Change
Proposed set of PRs to cherry-pick to release-3.0
This should be manually merged as
--ff-onlytorelease-3.0branchThis PR will be updated/rewritten as we reject/add changes to release
Includes new features, fixes, CI improvements and improvements in unit tests.
5b2ab90 (chore: exclude all
UNREACHABLEblocks from codecov (#5846), 2025-10-08)a34b36e (refactor: Update CI strategy matrix to use new RHEL 9 and RHEL 10 images (#5856), 2025-10-08)
7bc2d5c (chore: Fix release build error (#5864), 2025-10-08)
89d8165 (test: Add more tests for Simulate RPC metadata (#5827), 2025-10-08)
220ab26 (Add vault invariants (#5518), 2025-10-08)
4f076cb (chore: Add wildcard to support triggering for release pipelines (#5879), 2025-10-10)
b444457 (chore: Exclude code/unreachable transaction code from Codecov (#5847), 2025-10-13)
d032bd6 (chore: Support CMake 4 without workarounds (#5866), 2025-10-14)
9907fa0 (refactor: Add
paychannamespace and update related tests (#5840), 2025-10-15)adad20b (docs: Fix typo in JSON writer documentation (#5881), 2025-10-14)
e4b334f (fix: Update tools image shas (#5896), 2025-10-15)
5c3b44d (chore: Reduce build log verbosity on Windows (#5865), 2025-10-15)
eb66ae1 (refactor: replace JSON LastLedgerSequence with last_ledger_seq (#5884), 2025-10-15)
0754cca (refactor: replace boost::lexical_caststd::string with to_string (#5883), 2025-10-16)
a127314 (refactor: replace string JSONs with Json::Value (#5886), 2025-10-16)
97b8f5c (refactor: Update pre-commit workflow to latest version (#5902), 2025-10-17)
51917be (chore: Add support for RHEL 8 (#5880), 2025-10-17)
12fb54c (chore: Clean up Conan variables in CI (#5903), 2025-10-17)
a2594b6 (chore: Set fail fast to false, except for when the merge group is used (#5897), 2025-10-17)
f99c115 (chore: Set explicit timeouts for build and test jobs (#5912), 2025-10-20)
224b055 (chore: remove unnecessary LCOV_EXCL_LINE (#5913), 2025-10-20)
5ebc29c (fix: Enforce reserve when creating trust line or MPToken in VaultWithdraw (#5857), 2025-10-21)
e8069a4 (Use "${ENVVAR}" instead of ${{ env.ENVVAR }} syntax in GitHub Actions (#5923), 2025-10-22)
178f424 (fix: Clean up build profile options (#5934), 2025-10-24)
8ca2140 (chore: Better pre-commit failure message (#5940), 2025-10-27)
9507d9c (fix: Upload all test binaries (#5932), 2025-10-27)
7c8b167 (Change
fixMPTDeliveredAmounttoSupported::yes(#5833), 2025-10-27)994b490 (refactor: Migrate json unit tests to use doctest (#5533), 2025-10-28)
a8b1a01 (ci: Only run .exe files during test phase on Windows (#5947), 2025-10-28)
8951419 (fix: invariant error in fee-sized
VaultWithdraw(#5876), 2025-10-28)f38f299 (ci: Only log into Conan when uploading packages (#5952), 2025-10-28)
405575f (ci: Only upload codecov reports in the original repo, not in forks (#5953), 2025-10-28)
6e326e6 (ci: Use commit hash so workflows are not canceled when merging multiple PRs (#5950), 2025-10-28)
da0eff9 (ci: Use nproc-2 to set parallelism for builds and tests (#5939), 2025-10-28)
6b56c80 (chore: Use new prepare-runner (#5970), 2025-10-30)
3eec6ff (ci: Check whether test failures are caused by port exhaustion (#5938), 2025-10-30)
8a6cc3d (fix: Change Credential sfSubjectNode to optional (#5936), 2025-10-30)
4425f84 (Remove directory size limit (#5935), 2025-10-30)
0f1b607 (refactor: Improve txset handling (#5951), 2025-10-31)
9add957 (ci: Update CI image hashes to use netstat (#5987), 2025-11-03)
102a89f (test: Count crashed test suites (#5924), 2025-10-31)
ee2dff3 (fix: domain order book insertion #5998, 2025-11-05)
2a2881e (chore: Unify build & test, add ctest to coverage (#6013), 2025-11-10)
f1dbb20 (chore: Make CMake improvements (#6010), 2025-11-10)
91b96d6 (chore: Move running of unit tests out of coverage target (#6018), 2025-11-11)
8655570 (ci: Specify bash as the default shell in workflows (#6021), 2025-11-11)
4135d56 (fix: floating point representation errors in vault (#5997), 2025-11-11)
e7e4d52 (Version 3.0.0-rc1, 2025-10-27)
Context of Change
Type of Change