-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Release 2.4.0 #5334
Closed
Closed
Release 2.4.0 #5334
Conversation
This file contains 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
* Copy Antithesis SDK version 0.4.0 to directory external/ * Add build option `voidstar` to enable instrumentation with Antithesis SDK * Define instrumentation macros ASSERT and UNREACHABLE in terms of regular C assert * Replace asserts with named ASSERT or UNREACHABLE * Add UNREACHABLE to LogicError * Document instrumentation macros in CONTRIBUTING.md
--------- Co-authored-by: John Freeman <[email protected]>
Refactors LedgerEntry to make it easier to read and understand.
Adds two CMake functions: * add_module(library subdirectory): Declares an OBJECT "library" (a CMake abstraction for a collection of object files) with sources from the given subdirectory of the given library, representing a module. Isolates the module's headers by creating a subdirectory in the build directory, e.g. .build/tmp123, that contains just a symlink, e.g. .build/tmp123/basics, to the module's header directory, e.g. include/xrpl/basics, in the source directory, and putting .build/tmp123 (but not include/xrpl) on the include path of the module sources. This prevents the module sources from including headers not explicitly linked to the module in CMake with target_link_libraries. * target_link_modules(library scope modules...): Links the library target to each of the module targets, and removes their sources from its source list (so they are not compiled and linked twice). Uses these functions to separate and explicitly link modules in libxrpl: Level 01: beast Level 02: basics Level 03: json, crypto Level 04: protocol Level 05: resource, server
* Rename ASSERT to XRPL_ASSERT * Upgrade to Anthithesis SDK 0.4.4, and use new 0.4.4 features * automatic cast to bool, like assert * Add instrumentation workflow to verify build with instrumentation enabled
Replace Issue in STIssue with Asset. STIssue with MPTIssue is only used in MPT tests. Will be used in Vault and in transactions with STIssue fields once MPT is integrated into DEX.
Fix `error C2039: 'set_difference': is not a member of 'std'`
The LEDGER_ENTRY macro now takes an additional parameter, which makes it easier to avoid missing including the new field in jss.h and to the list of account_objects/ledger_data filters.
* python (3.13) and cmake (latest)
This Amendment adds functionality to update the URI of NFToken objects as described in the XLS-46d: Dynamic Non Fungible Tokens (dNFTs) spec.
Adds checks for invalid flags.
Check to ignore single-line comments during dependency analysis.
* Resolves an issue introduced in #5111, which inadvertently removed the -Wno-maybe-uninitialized compiler option from some xrpl.libxrpl modules. This resulted in new "may be used uninitialized" build warnings, first noticed in the "protocol" module. When compiling with derr=TRUE, those warnings became errors, which made the build fail. * Github CI actions will build with the assert and werr options turned on. This will cause CI jobs to fail if a developer introduces a new compiler warning, or causes an assert to fail in release builds. * Includes the OS and compiler version in the linux dependencies jobs in the "check environment" step. * Translates the `unity` build option into `CMAKE_UNITY_BUILD` setting.
* Has more steps, but allows merges to develop to continue when a beta / RC is pending, increasing developer velocity. * Add a CI job to check that no reverse merges have been missed. * Add some useful scripts in bin/git: * Set up upstreams as expected for safer pushes * Squash a bunch of branches * Set the version number
* One hits the global cache, one does not. * Also some extra checking. Co-authored-by: Bronek Kozicki <[email protected]>
…5240) * Debug builds do not run tests, because they take too long.
…dentials (#5250) CredentialCreate / CredentialAccept / CredentialDelete transactions will check sfFlags field in preflight() when the amendment is enabled.
- Rename the job in missing-commits.yml from "check" to "up_to_date", because other jobs named "check" prevent merges, but this one should not prevent merges. How else are branches going to get caught up? - Move the job in instrumentation.yml to nix.yml, but keep it entirely independent.
In PeerImpl.cpp, if the function is a message handler (onMessage) or called directly from a message handler, then it should use fee_, since when the handler returns (OnMessageEnd) then the charge function is called. If the function is not a message handler, such as a job queue item, it should remain charge.
Rewrites the code so that the lock is not held during the callback. Instead it locks twice, once before, and once after. This is safe due to the structure of the code, but is checked after the second lock. This allows mutex_ to be changed back to a regular mutex.
Following the XRPL Foundation UNL migration a new set of keys was generated.
This change enhances the filtering in the ledger, ledger_data, and account_objects methods by also supporting filtering by the canonical name of the LedgerEntryType using case-insensitive matching.
- Drop duplicate outgoing TMGetLedger messages per peer - Allow a retry after 30s in case of peer or network congestion. - Addresses RIPD-1870 - (Changes levelization. That is not desirable, and will need to be fixed.) - Drop duplicate incoming TMGetLedger messages per peer - Allow a retry after 15s in case of peer or network congestion. - The requestCookie is ignored when computing the hash, thus increasing the chances of detecting duplicate messages. - With duplicate messages, keep track of the different requestCookies (or lack of cookie). When work is finally done for a given request, send the response to all the peers that are waiting on the request, sending one message per peer, including all the cookies and a "directResponse" flag indicating the data is intended for the sender, too. - Addresses RIPD-1871 - Drop duplicate incoming TMLedgerData messages - Addresses RIPD-1869 - Improve logging related to ledger acquisition - Class "CanProcess" to keep track of processing of distinct items --------- Co-authored-by: Valentin Balaschenko <[email protected]>
Adds detailed log messages for each validation and proposal received from the network.
The current comment in the example cfg file incorrectly mentions both "may" and "must". This change fixes this comment to clarify that the default port of hosts is 2459 and that specifying it is therefore optional. It further sets the default port to 2459 instead of the legacy 51235.
Switch Permissioned Domain feature's supported flag from Supported::no to Supported::yes for it to be votable.
Reverts the [port_peer] back to the legacy port 51235 rather than to the default port 2459, to avoid potentially inconveniencing existing operators.
* Add logging for amendment voting decision process * When counting "received validations" to determine quorum, count the number of validators actually voting, not the total number of possible votes.
This assert is known to occasionally trigger, without causing errors downstream. It is replaced with a log message.
…oposal arrives (#5318) Reset the failure variable.
Combine multiple related debug log data points into a single message. Allows quick correlation of events that previously were either not logged or, if logged, strewn across multiple lines, making correlation difficult. The Heartbeat Timer and consensus ledger accept processing each have this capability. Also guarantees that log entries will be written if the node is a validator, regardless of log severity level. Otherwise, the level of these messages is at INFO severity.
- PR #5228 added assert=TRUE and werr=TRUE CMake flags to the build/action.yml script which is used by all CI jobs to build rippled, ensuring those flags were always set. The assumption was that only the CI jobs used that script, so any extra time cost was offset by the benefit of the extra checks. That assumption was incorrect. That script is used by other downstream projects. Therefore, those flags have been moved into the individual CI jobs' "cmake-args" parameter passed to build/action.yml. This will have the same effect for CI jobs without any side effects.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5334 +/- ##
========================================
+ Coverage 77.9% 78.1% +0.2%
========================================
Files 784 790 +6
Lines 66743 67909 +1166
Branches 8190 8225 +35
========================================
+ Hits 51967 53035 +1068
- Misses 14776 14874 +98
🚀 New features to boost your workflow:
|
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
This is the
rippled 2.4.0
release.Highlights
assert
withXRPL_ASSERT
#5312simulate
RPC #5265fixFrozenLPTokenTransfer
: Prohibit transfer of LPToken when an asset is frozen #5227LedgerEntry.cpp
#5199The base branch is
master
. This PR branch will be pushed directly torelease
andmaster
(not squashed or rebased, and not using theGitHub UI).
Context of Change
This introduces
fixFrozenLPTokenTransfer
assert
s.ledger_entry
RPC handler.MPTIssue
toSTIssue
.Type of Change
API Impact
libxrpl
change (any change that may affectlibxrpl
or dependents oflibxrpl
)