Skip to content

ci: include omitted rust packages in ci filters#3663

Merged
QuantumExplorer merged 1 commit into
v3.1-devfrom
codex/fix-rust-ci-package-filters
May 19, 2026
Merged

ci: include omitted rust packages in ci filters#3663
QuantumExplorer merged 1 commit into
v3.1-devfrom
codex/fix-rust-ci-package-filters

Conversation

@PastaPastaPasta
Copy link
Copy Markdown
Member

@PastaPastaPasta PastaPastaPasta commented May 18, 2026

Issue being fixed or feature implemented

Some Rust workspace package changes did not trigger the Rust workspace CI dispatcher because .github/package-filters/rs-packages-no-workflows.yml did not cover every Cargo workspace member. This is why PR #3662 ran the top-level Tests workflow but skipped Rust workspace tests for a change under packages/rs-platform-wallet-ffi/**.

The same gap applied to other workspace crates such as rs-platform-wallet, rs-unified-sdk-ffi, rs-platform-encryption, rs-dash-async, simple-signer, strategy-tests, data-contracts, keyword-search-contract, and wasm-drive-verify.

What was done?

  • Added the omitted Cargo workspace crates to the Rust package filters.
  • Kept the rs-packages.yml, rs-packages-no-workflows.yml, and rs-packages-direct.yml filter variants aligned so future use does not reintroduce inconsistent coverage.
  • Added relevant dependency links in the Rust filters for wallet, FFI, SDK, signer, data-contract, and strategy-test crates.
  • Extended the Swift SDK trigger to include the unified/platform wallet FFI crates and their local support crates, because the Swift SDK build uses rs-unified-sdk-ffi and platform-wallet-ffi.

How Has This Been Tested?

  • Parsed updated YAML files with Ruby YAML.load.
  • Checked every packages/*/Cargo.toml workspace package path appears in all three Rust package filter files.
  • git diff --check

This pull request was created by Codex.

Breaking Changes

None.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Summary by CodeRabbit

  • Chores
    • Updated GitHub package filters to reorganize and extend Rust package groupings for improved CI/CD management.
    • Expanded Swift SDK test coverage to include additional packages, ensuring broader validation across the codebase.

Review Change Stack

@github-actions github-actions Bot added this to the v3.1.0 milestone May 18, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4bafaf2a-edfb-47f8-82a2-aaa2341fab5c

📥 Commits

Reviewing files that changed from the base of the PR and between 798cd25 and 107ffd5.

📒 Files selected for processing (4)
  • .github/package-filters/rs-packages-direct.yml
  • .github/package-filters/rs-packages-no-workflows.yml
  • .github/package-filters/rs-packages.yml
  • .github/workflows/tests.yml

📝 Walkthrough

Walkthrough

The PR restructures GitHub Actions CI package filter configurations to enable composable anchor-based groupings, consolidating contract definitions and introducing modular SDK component anchors (signer, async, context, encryption). It simultaneously expands Swift SDK change detection to recognize additional package modifications.

Changes

CI Package Filter Reorganization

Layer / File(s) Summary
Keyword-search-contract foundation
.github/package-filters/rs-packages-direct.yml, .github/package-filters/rs-packages-no-workflows.yml, .github/package-filters/rs-packages.yml
New keyword-search-contract filter entry added across all three package-filter files, mapping the contract's source, schema, and Cargo manifest paths.
Data-contracts anchor consolidation
.github/package-filters/rs-packages-direct.yml, .github/package-filters/rs-packages-no-workflows.yml, .github/package-filters/rs-packages.yml
Introduces data-contracts anchor aggregating wallet-utils-contract, token-history-contract, and keyword-search-contract. The dpp anchor is refactored to reference *data-contracts instead of enumerating individual contract anchors.
SDK component anchors (signer, async, context, encryption)
.github/package-filters/rs-packages-no-workflows.yml, .github/package-filters/rs-packages.yml
Adds anchors for simple-signer, strategy-tests, dash-async, dash-context-provider, rs-sdk-trusted-context-provider, and platform-encryption to establish reusable SDK dependency groups.
SDK filter composition updates
.github/package-filters/rs-packages-no-workflows.yml, .github/package-filters/rs-packages.yml
Rewrites dash-sdk and rs-sdk-ffi filter definitions to use the new anchor-based groups instead of concrete package paths, enabling modular dependency composition.
Extended package groups (wallet, features, scripts)
.github/package-filters/rs-packages-direct.yml, .github/package-filters/rs-packages-no-workflows.yml, .github/package-filters/rs-packages.yml
Introduces filters for platform-wallet, platform-wallet-ffi, rs-unified-sdk-ffi, wasm-drive-verify, check-features, dash-platform-balance-checker, and rs-scripts, using the anchor-based composition structure.

Workflow Change Detection

Layer / File(s) Summary
Swift SDK change detection expansion
.github/workflows/tests.yml
Broadens the swift-sdk-changed path filter from rs-sdk and rs-sdk-ffi to include dapi-grpc, multiple contract packages, platform packages, SDK variants, and wallet-related packages, expanding when downstream Swift SDK jobs trigger.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • QuantumExplorer

🐰 Hop along, the CI has grown wide,
With anchors and filters now unified inside,
Swift SDKs detect with expanded sight,
Package flows reorganized just right!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately summarizes the main change: adding omitted Rust packages to CI filter configurations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/fix-rust-ci-package-filters

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@thepastaclaw
Copy link
Copy Markdown
Collaborator

thepastaclaw commented May 18, 2026

✅ Review complete (commit 107ffd5)

@codecov
Copy link
Copy Markdown

codecov Bot commented May 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.86%. Comparing base (cd93b2f) to head (107ffd5).
⚠️ Report is 8 commits behind head on v3.1-dev.

Additional details and impacted files
@@             Coverage Diff              @@
##           v3.1-dev    #3663      +/-   ##
============================================
- Coverage     88.06%   87.86%   -0.21%     
============================================
  Files          2521     2537      +16     
  Lines        308995   311803    +2808     
============================================
+ Hits         272122   273960    +1838     
- Misses        36873    37843     +970     
Components Coverage Δ
dpp 87.92% <ø> (-0.10%) ⬇️
drive 87.03% <ø> (-0.03%) ⬇️
drive-abci 90.05% <ø> (ø)
sdk ∅ <ø> (∅)
dapi-client ∅ <ø> (∅)
platform-version ∅ <ø> (∅)
platform-value 92.17% <ø> (ø)
platform-wallet ∅ <ø> (∅)
drive-proof-verifier 53.13% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Collaborator

@thepastaclaw thepastaclaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

PR closes the immediate dispatcher gap: every Cargo workspace member is now reachable from rs-packages-no-workflows.yml, which gates rs-workspace-tests. Codex flags a remaining iOS-specific coverage hole — the new swift-sdk-changed trigger omits several crates that the unified-SDK build transitively compiles, so iOS-only compile/link regressions in dpp/drive/dapi-grpc-etc. can still skip swift-sdk-build. Claude flags one minor cross-file drift (rs-dapi missing *dpp in the no-workflows file) and two cosmetic nitpicks. No blockers.

Reviewed commit: b2c2e06

🟡 2 suggestion(s) | 💬 2 nitpick(s)

1 additional finding

💬 nitpick: rs-dash-platform-macros not extracted to its own entry in the 'direct' variant

.github/package-filters/rs-packages-direct.yml (lines 96-101)

rs-packages-direct.yml follows a one-crate-per-entry convention (e.g., platform-version, platform-value, data-contracts are split out). rs-dash-platform-macros/** is still bundled inside the dapi-grpc: block with no top-level entry of its own, inconsistent with how other derive/value/macro crates are treated here. Cosmetic only — this file isn't consumed by any workflow yet — but it undermines the file's stated 'direct = one crate per entry' contract.

🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.

In `.github/workflows/tests.yml`:
- [SUGGESTION] lines 122-133: swift-sdk-changed trigger omits crates that unified-SDK FFI compiles transitively
  The expanded `swift-sdk-changed` filter is still a strict subset of the crate graph that `packages/swift-sdk/build_ios.sh` actually compiles. `rs-sdk-ffi/Cargo.toml:18` declares a direct path dependency on `drive-proof-verifier`, and `rs-sdk/Cargo.toml:10-25` pulls in `dpp`, `dapi-grpc`, `rs-dapi-client`, `drive`, and `dash-platform-macros` — none of which appear in the trigger list. A PR touching only one of those crates will run `rs-workspace-tests` but skip `swift-sdk-build`, so iOS-target-specific compile/link regressions (the exact failure mode this gate exists to catch) can still land unnoticed. Add the missing transitive crates, or — to avoid the same drift the package-filter files now suffer from — gate `swift-sdk-build` off the same rs-packages output that already covers them.

In `.github/package-filters/rs-packages-no-workflows.yml`:
- [SUGGESTION] lines 111-114: rs-dapi filter drifts from rs-packages.yml (missing *dpp)
  The `rs-dapi` block here omits `*dpp`, while the equivalent block in `rs-packages.yml:136-141` includes it. Since `rs-packages-no-workflows.yml` is the file actually consumed by `tests.yml`, the no-workflows variant is the one that needs to be correct. The functional impact is small today — `rs-workspace-tests` only checks that the output array is non-empty, and a change to `rs-dpp` already triggers via the `dpp` top-level key — but this is exactly the kind of cross-file drift the PR is trying to eliminate going forward.

Comment thread .github/workflows/tests.yml
Comment thread .github/package-filters/rs-packages-no-workflows.yml
Comment thread .github/package-filters/rs-packages-no-workflows.yml
@PastaPastaPasta PastaPastaPasta force-pushed the codex/fix-rust-ci-package-filters branch from b2c2e06 to 107ffd5 Compare May 18, 2026 18:54
Copy link
Copy Markdown
Collaborator

@thepastaclaw thepastaclaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

PR closes the previously-flagged dispatcher gaps: rs-dapi now pulls in *dpp (rs-packages-no-workflows.yml:114) and swift-sdk-changed in tests.yml lists the full transitive crate set built by build_ios.sh. Two nitpicks remain — redundant alias expansions in three blocks of rs-packages-no-workflows.yml, and three crates still bundled rather than split out in the one-crate-per-entry rs-packages-direct.yml. No blocking issues.

Reviewed commit: 107ffd5

💬 2 nitpick(s)

Comment thread .github/package-filters/rs-packages-no-workflows.yml
Comment thread .github/package-filters/rs-packages-direct.yml
@@ -121,8 +121,38 @@ jobs:
filters: |
swift-sdk-changed:
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we move it to a separate file as well? It's become quite big

@QuantumExplorer QuantumExplorer merged commit 6a3b904 into v3.1-dev May 19, 2026
21 checks passed
@QuantumExplorer QuantumExplorer deleted the codex/fix-rust-ci-package-filters branch May 19, 2026 14:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants