Skip to content
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

Update Rust crate uniffi to v0.28.3 - autoclosed #466

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2025

This PR contains the following updates:

Package Type Update Change
uniffi (source) build-dependencies minor 0.25.0 -> 0.28.0
uniffi (source) dependencies minor 0.25 -> 0.28

Release Notes

mozilla/uniffi-rs (uniffi)

v0.28.3

Compare Source

What's fixed?
  • Fixed bug in metadata extraction with large ELF files.

All changes in v0.28.3.

v0.28.2

Compare Source

What's new?
What's fixed?

All changes in v0.28.2.

v0.28.1

Compare Source

What's new?
  • Lift errors will not cause an abort when panic=abort is set.
  • Added the cargo_metadata feature, which is on by default. In some cases, this can be disabled
    for better compatibility with projects that don't use cargo.
  • A new bindgen command line option --metadata-no-deps is available to avoid processing
    cargo_metadata for all dependencies.
  • In UDL it's now possible (and preferred) to remove the [Rust=] attribute and use a plain-old typedef.
    See the manual page for this.
What's changed?
  • Kotlin will use the more efficient Enum.entries property instead of Enum.values() when possible

All changes in v0.28.1.

v0.28.0

Compare Source

What's new?
  • Objects error types can now be as Result<> error type without wrapping them in Arc<>.

  • Swift errors now provide localizedDescription (#​2116)

  • Procmacros support tuple-errors (ie, enums used as errors can be tuple-enums.)

What's fixed?
  • Fixed a problem with procmacro defined errors when the error was not used as an Err result
    in the namespace (#​2108)

  • Custom Type names are now treated as type names by all bindings. This means if they will work if they happen to be
    keywords in the language. There's a very small risk of this being a breaking change if you used a type name which
    did not already start with a capital letter, but this changes makes all type naming consistent.
    (#​2073)

  • Macros uniffi::method and uniffi::constructor can now be used with
    cfg_attr. (#​2113)

  • Python: Fix custom types generating invalid code when there are forward references.
    (#​2067)

What's changed?
  • The internal bindings generation has changed to make it friendlier for external language bindings.
    However, this a breaking change for these bindings.
    No consumers of any languages are impacted, only the maintainers of these language bindings.
    (#​2066), (#​2094)

  • The async runtime can be specified for constructors/methods, this will override the runtime specified at the impl block level.

All changes in v0.28.0.

v0.27.3

Compare Source

  • Removed dependencies on unicode-linebreak and unicode-width. They were being pulled in a
    sub-dependencies for the textwrap crate, but weren't really useful.

All changes in v0.27.3.

v0.27.2

Compare Source

What's new?
  • Added the scaffolding-ffi-buffer-fns feature. When enabled, UniFFI will generate an alternate
    FFI layer that can simplify the foreign bindings code. It's currently being tested out for the
    gecko-js external binding, but other external bindings may also find it useful.
What's changed?

All changes in v0.27.2.

v0.27.1

Compare Source

All changes in v0.27.1.

What's fixed?
  • Fixed a regression in 0.27.0 which broke throwing constructors (#​2061).

  • Fixed a RustBuffer memory leak (#​2056)

v0.27.0

Compare Source

What's new?
  • Constructors can be async. Alternate constructors work in Python, Kotlin and Swift;
    only Swift supports primary constructors.

  • Enums created with proc macros can now produce literals for variants in Kotlin and Swift. See
    the section on enum proc-macros for more information.

  • Objects can be errors - anywhere you can specify an enum error object you can specify
    an Arc<Object> - see the manual.

  • Functions, methods and constructors exported by procmacros can be renamed for the forgeign bindings. See the procmaco manual section.

  • Trait interfaces can now have async functions, both Rust and foreign-implemented. See the futures manual section for details.

  • Procmacros support tuple-enums.

  • RustBuffer was changed to use u64 fields.
    This eliminates panics when the capacity of the vec exceeds i32::MAX.
    This can happen with the current Vec implementation when String/Vec sizes approach i32::MAX but don't exceed it.

  • Proc-macro function/method arguments can now have defaults

  • Proc-macro record defaults now support empty vecs and Some values.

  • Swift: Records and Enums without object references can now be made Sendable Swift,
    by opting in to new Configuration experimental_sendable_value_types in uniffi.toml.

What's fixed?
  • Fixed a memory leak in callback interface handling.
⚠️ Breaking Changes ⚠️
  • Python: Force named parameters for struct constructors (#​1840)
  • Ruby: Force named parameters for struct constructors (#​1840)
⚠️ Breaking Changes for external bindings authors ⚠️
  • The callback interface code was reworked to use vtables rather than a single callback method.
    https://github.com/mozilla/uniffi-rs/pull/18181818 for details and how the other bindings were updated.
  • Added the FfiType::Handle variant. This is a general-purpose opaque handle type used for
    passing objects cross the FFI. This type is always 64 bits and replaces the various older handle
    types including:
    • Rust futures (replacing FfiType::RustFutureHandle which was removed)
    • Rust future continuation data (Replacing FfiType::RustFutureContinuationData which was moved).
  • RustBuffer.len and RustBuffer.capacity are now u64 rather than i32.

All changes in v0.27.0.

v0.26.1

Compare Source

What's fixed?
  • The weedle2 version is now 5.0.0 rather than 4.0.1. 4.0.1 was yanked because it contained a breaking change.
  • Fixed a memory leak in callback interface handling.

All changes in v0.26.1.

v0.26.0

Compare Source

What's changed?
  • The rust_future_continuation_callback_set FFI function was removed. rust_future_poll now
    inputs the callback pointer. External bindings authors will need to update their code.
What's new?
  • Rust traits Display, Hash and Eq exposed to Kotlin and Swift #​1817
  • Foreign types can now implement trait interfaces #​1791 and
    the documentation
    • UDL: use the [WithForeign] attribute
    • proc-macros: use the #[uniffi::export(with_foreign)] attribute
  • Generated Python code is able to specify a package name for the module #​1784
  • UDL can describe async function #​1834
  • UDL files can reference types defined in procmacros in this crate - see
    the external types docs
    and also external trait interfaces #​1831
  • Add support for docstrings via procmacros #​1862
    and in UDL
  • Objects can now be returned from functions/constructors/methods without wrapping them in an Arc<>.

All changes in v0.26.0.

v0.25.3

Compare Source

All changes in v0.25.3.

  • Switched to a patched version of oneshot so that consumers who use cargo vendor don't vendor
    loom and it's sub-dependencies like windows

v0.25.2

Compare Source

What's fixed?
  • Fixed regression in the name of error enums in Kotlin #​1842
  • Fix regression when error types are in dicts etc #​1847

All changes in v0.25.2.

v0.25.1

Compare Source

All changes in v0.25.1.

What's fixed?
  • Fixed several bugs with async functions were defined in multiple crates that get built together.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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 these updates again.


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

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

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Jan 7, 2025
Copy link
Contributor Author

renovate bot commented Jan 7, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: src/nerdbank-zcash-rust/Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path src/nerdbank-zcash-rust/Cargo.toml --workspace
    Updating crates.io index
error: failed to get `zcash_address` as a dependency of package `nerdbank-zcash-rust v0.1.0 (/tmp/renovate/repos/github/nerdcash/Nerdbank.Cryptocurrencies/src/nerdbank-zcash-rust)`

Caused by:
  failed to load source for dependency `zcash_address`

Caused by:
  Unable to update /tmp/renovate/repos/github/nerdcash/Nerdbank.Cryptocurrencies/external/librustzcash/components/zcash_address

Caused by:
  failed to read `/tmp/renovate/repos/github/nerdcash/Nerdbank.Cryptocurrencies/external/librustzcash/components/zcash_address/Cargo.toml`

Caused by:
  No such file or directory (os error 2)

@renovate renovate bot changed the title Update Rust crate uniffi to v0.28.3 Update Rust crate uniffi to v0.28.3 - autoclosed Jan 7, 2025
@renovate renovate bot closed this Jan 7, 2025
@renovate renovate bot deleted the renovate/uniffi-0.x branch January 7, 2025 14:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants