Skip to content

[PM-34607] [deps] Platform (cargo): Update Rust crate uniffi to v0.31.0#900

Open
renovate[bot] wants to merge 2 commits intomainfrom
renovate/uniffi-0.x
Open

[PM-34607] [deps] Platform (cargo): Update Rust crate uniffi to v0.31.0#900
renovate[bot] wants to merge 2 commits intomainfrom
renovate/uniffi-0.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Apr 3, 2026

This PR contains the following updates:

Package Type Update Change
uniffi (source) workspace.dependencies minor =0.29.4=0.31.0

Release Notes

mozilla/uniffi-rs (uniffi)

v0.31.0

Compare Source

⚠️ Breaking Changes ⚠️
  • The uniffi-bindgen command no longer accepts the --lib-file argument. Instead, pass the
    library directly without a UDL file.
  • Removed the [Swift|Kotlin|Python|Ruby]BindingGenerator types. Use uniffi::generate instead
    to generate these bindings.
  • Reworked the experimental pipeline bindgen code. Any external binding generators using this will
    need to be reworked as well. See #​2787 for
    examples of how this can be done.
What's Deprecated?
  • BindgenCrateConfigSupplier. Use the new BindgenPaths type instead.
What's New?
  • Added the uniffi::generate function. This implements the uniffi-bindgen generate command and
    allows it to be run programmatically.
  • The --library argument of uniffi-bindgen is deprecated and no longer has an effect.
    uniffi-bindgen will now auto-detect when the source path is a library rather than a UDL file.
  • All builtin bindings support renaming almost all of the interface (types, args, items, variants, etc) via TOML definitions -
    see the docs.
    (#​2715)
  • Support for methods on records and enums
    (#​2706, #​2724, #​2739).
  • Added the BindgenPaths type, which is the new way to find UDL and TOML data.
  • Enum variants can now be renamed with the proc-macro name = "NewVariantName" attribute (#​2783)
  • It's now possible to build a uniffi-bindgen that doesn't depend on cargo-metadata (#​2746)
  • MSR is now 1.87, our CI runs against 1.90.
What's Fixed
  • Kotlin: Rust enums with nested payload types are generated using the inner type’s fully qualified
    name, avoiding naming conflicts and allowing payloads to reuse the variant name (#​2698).
  • Kotlin: Enums and errors now support exporting trait methods (Display, Debug, Eq, Hash, Ord) via toString(),
    equals(), hashCode(), and compareTo() implementations. Flat enums only support exporting Display. (#​2700).
  • Kotlin: Initialization functions now have a stable ordering (#​2718)
  • Prevented a potential segfault when completing foreign futures (#​2733)
  • Swift: exporting Eq, Cmp etc would generate invalid code if the Rust name had unusual captialization (#​2707).
  • Fix an issue when an impl block has only async constructors (#​2778)
  • Fix issues parsing some #[doc(...)] attributes in exported blocks (#​2777)
  • Fix extracting metadata from multi-arch binary files (#​2750)
  • Python: improve generated code for __eq__ (#​2741)
⚠️ Breaking Changes ⚠️
  • Method checksums no longer include the self type. This shouldn't affect normal use. However
    checksum comparisons will fail if bindings built with 0.30.x and the Rust code is built with
    0.31.x, or vice-versa.
⚠️ Breaking Changes for external bindings authors ⚠️
  • The module_path field now stores full module paths rather than crate names only.
    External bindings authors will probably need to make some minor changes to work with this.
    See #​2695/ for examples.

All changes in v0.31.0.

v0.30.0

Compare Source

⚠️ Breaking Changes ⚠️
  • The uniffi-bindgen command no longer accepts the --lib-file argument. Instead, pass the
    library directly without a UDL file.
  • Removed the [Swift|Kotlin|Python|Ruby]BindingGenerator types. Use uniffi::generate instead
    to generate these bindings.
  • Reworked the experimental pipeline bindgen code. Any external binding generators using this will
    need to be reworked as well. See #​2787 for
    examples of how this can be done.
What's Deprecated?
  • BindgenCrateConfigSupplier. Use the new BindgenPaths type instead.
What's New?
  • Added the uniffi::generate function. This implements the uniffi-bindgen generate command and
    allows it to be run programmatically.
  • The --library argument of uniffi-bindgen is deprecated and no longer has an effect.
    uniffi-bindgen will now auto-detect when the source path is a library rather than a UDL file.
  • All builtin bindings support renaming almost all of the interface (types, args, items, variants, etc) via TOML definitions -
    see the docs.
    (#​2715)
  • Support for methods on records and enums
    (#​2706, #​2724, #​2739).
  • Added the BindgenPaths type, which is the new way to find UDL and TOML data.
  • Enum variants can now be renamed with the proc-macro name = "NewVariantName" attribute (#​2783)
  • It's now possible to build a uniffi-bindgen that doesn't depend on cargo-metadata (#​2746)
  • MSR is now 1.87, our CI runs against 1.90.
What's Fixed
  • Kotlin: Rust enums with nested payload types are generated using the inner type’s fully qualified
    name, avoiding naming conflicts and allowing payloads to reuse the variant name (#​2698).
  • Kotlin: Enums and errors now support exporting trait methods (Display, Debug, Eq, Hash, Ord) via toString(),
    equals(), hashCode(), and compareTo() implementations. Flat enums only support exporting Display. (#​2700).
  • Kotlin: Initialization functions now have a stable ordering (#​2718)
  • Prevented a potential segfault when completing foreign futures (#​2733)
  • Swift: exporting Eq, Cmp etc would generate invalid code if the Rust name had unusual captialization (#​2707).
  • Fix an issue when an impl block has only async constructors (#​2778)
  • Fix issues parsing some #[doc(...)] attributes in exported blocks (#​2777)
  • Fix extracting metadata from multi-arch binary files (#​2750)
  • Python: improve generated code for __eq__ (#​2741)
⚠️ Breaking Changes ⚠️
  • Method checksums no longer include the self type. This shouldn't affect normal use. However
    checksum comparisons will fail if bindings built with 0.30.x and the Rust code is built with
    0.31.x, or vice-versa.
⚠️ Breaking Changes for external bindings authors ⚠️
  • The module_path field now stores full module paths rather than crate names only.
    External bindings authors will probably need to make some minor changes to work with this.
    See #​2695/ for examples.

All changes in v0.31.0.

v0.29.5

Compare Source


Configuration

📅 Schedule: Branch creation - "every 2nd week starting on the 2 week of the year before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

PM-34607

@renovate renovate bot requested review from a team and coroiu April 3, 2026 13:56
@bitwarden-bot bitwarden-bot changed the title [deps] Platform (cargo): Update Rust crate uniffi to v0.31.0 [PM-34607] [deps] Platform (cargo): Update Rust crate uniffi to v0.31.0 Apr 3, 2026
@bitwarden-bot
Copy link
Copy Markdown

Internal tracking:

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

🔍 SDK Breaking Change Detection Results

SDK Version: renovate/uniffi-0.x (bd83c22)
Completed: 2026-04-03 14:18:20 UTC
Total Time: 275s

Client Status Details
typescript ✅ No breaking changes detected TypeScript compilation passed with new SDK version - View Details

Breaking change detection completed. View SDK workflow

@renovate
Copy link
Copy Markdown
Contributor Author

renovate bot commented Apr 3, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

Logo
Checkmarx One – Scan Summary & Details4a16d4d1-e231-4684-a886-b08fd27323ae


New Issues (1) Checkmarx found the following issues in this Pull Request
# Severity Issue Source File / Package Checkmarx Insight
1 LOW Parameter_Tampering /crates/bitwarden-uniffi/kotlin/app/src/main/java/com/bitwarden/myapplication/MainActivity.kt: 410
detailsMethod decryptVault at line 410 of /crates/bitwarden-uniffi/kotlin/app/src/main/java/com/bitwarden/myapplication/MainActivity.kt gets user input ...
Attack Vector

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 3, 2026

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 3, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.45%. Comparing base (7cc2cbc) to head (bd83c22).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #900   +/-   ##
=======================================
  Coverage   82.45%   82.45%           
=======================================
  Files         356      356           
  Lines       42817    42817           
=======================================
  Hits        35306    35306           
  Misses       7511     7511           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

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.

2 participants