You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,8 +14,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
14
14
15
15
### Added
16
16
17
+
- New `xrpl::signing` module containing the pure-crypto signing helpers (`sign`, `multisign`, `prepare_transaction`) extracted from `asynch::transaction` and `transaction`. Available with just `core + models + wallet` features (no `helpers`/runtime/client dependency). The legacy paths `asynch::transaction::sign` and `transaction::multisign` are preserved as re-exports for backward compatibility.
18
+
- Expanded unit-test coverage and raised CI thresholds: lines `73 → 83`, regions `75 → 85`, functions `67 → 73`.
19
+
- Codecov integration with per-PR project (≥83%) and patch (≥80% on new/modified lines) gates.
20
+
- Integration-test coverage gate: a CI workflow runs all five integration test binaries under `cargo-llvm-cov`, uploads to codecov under an `integration` flag, and gates the project at ≥65%.
21
+
22
+
### Changed
23
+
24
+
- Unit-test and integration-test coverage are now scoped via Cargo feature flags rather than path regex. The unit-test workflow builds with `--no-default-features --features std,core,utils,wallet,models`, so integration-territory code (CLI, async clients, sync wrappers, faucet) simply isn't compiled and doesn't appear in the unit coverage report.
25
+
- Network-dependent inline tests in `src/asynch/transaction/` and `src/asynch/wallet/` (`test_autofill_txn`, `test_autofill_and_sign`, `test_submit_and_wait`, `test_generate_faucet_wallet`) are now gated behind `feature = "integration"` so `cargo test --release` is hermetic by default.
26
+
- Codecov **patch** coverage is now gated per flag (separate `unit` and `integration` sections) rather than a single combined gate.
27
+
17
28
### Fixed
18
29
30
+
-`RipplePathFind::destination_amount` changed from `Currency<'a>` to `Amount<'a>` to match the XRPL wire format.
31
+
-`NoRippleCheckRole` no longer serializes with the `#[serde(tag = "role")]` discriminator; now emits a plain `snake_case` string matching the XRPL wire format.
32
+
-`is_success()` now reports success correctly for responses deserialized into typed `XRPLResult` variants (e.g. `ServerInfo`); it consults the preserved raw result JSON instead of the re-serialized typed value.
33
+
-`get_latest_open_ledger_sequence` now uses the `ledger_current` request; it previously sent `ledger { ledger_index: "open" }`, which rippled rejects with `invalidParams`.
The feature set matches `.github/workflows/integration_test.yml`; `cli` and
93
+
`websocket` are required for `cli_integration.rs` and the websocket tests in
94
+
`utils.rs` to compile. `--test-threads=1` matches CI and prevents concurrent
95
+
tests from racing on the shared `xrpld` container.
96
+
88
97
Breaking down the `docker run` command:
89
98
90
99
-`-p 5005:5005 -p 6006:6006` exposes the HTTP JSON-RPC and WebSocket admin ports.
91
100
-`--rm` closes the container automatically when it exits.
92
101
-`-it` keeps stdin open so you can stop the node with Ctrl-C.
93
102
-`--name xrpld_standalone` is an instance name for clarity.
94
-
-`--volume $PWD/.ci-config/:/etc/opt/xrpld/`: bind-mounts the host directory (left side) into the container (right side). `xrpld.cfg` lives in `$PWD/.ci-config/`, and this command is intended to be run from the root of the `xrpl-rust` project. The `xrpld` binary searches for its configuration file inside `/etc/opt/xrpld/`. An absolute path is required, so we use `$PWD` instead of `./`.
103
+
-`--volume $PWD/.ci-config/:/etc/xrpld/`: bind-mounts the host directory (left side) into the container (right side). `xrpld.cfg` lives in `$PWD/.ci-config/`, and this command is intended to be run from the root of the `xrpl-rust` project. The `xrpld` binary searches for its configuration file inside `/etc/xrpld/`. An absolute path is required, so we use `$PWD` instead of `./`.
95
104
-`rippleci/xrpld` is an image that is regularly updated with the latest `xrpld` releases (the binary formerly known as `rippled`; see xrpl.js PR #3270).
96
105
-`--standalone` starts `xrpld` in standalone mode, where ledgers only close on demand.
97
106
@@ -102,24 +111,69 @@ Breaking down the `docker run` command:
102
111
103
112
### Coverage
104
113
105
-
Coverage is measured with [`cargo-llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov).
114
+
Coverage is measured with [`cargo-llvm-cov`](https://github.com/taiki-e/cargo-llvm-cov)
115
+
and uploaded to codecov under two separate flags:
116
+
117
+
-**unit** — pure-logic code (models, core, utils, `_serde`, signing). Built
118
+
with a minimal feature set so network-bound modules are not compiled.
under `account/`, `ledger/`, `transaction/`). Scoped via
121
+
`--ignore-filename-regex` so unit-territory files do not dilute the
122
+
integration metric.
106
123
107
-
Install the tool and run a coverage report locally:
124
+
Install the tool once:
108
125
109
126
```bash
110
127
cargo install cargo-llvm-cov --locked
111
-
cargo llvm-cov --summary-only
112
128
```
113
129
114
-
The CI enforces the following minimum thresholds (current baseline is ~78% lines / ~68% regions / ~75% functions, measured with default features only — integration tests are excluded from coverage):
0 commit comments