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

fix(deps): update rust crate zbus to v5 (v2) #1953

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 19, 2024

This PR contains the following updates:

Package Type Update Change
zbus dependencies major 4 -> 5

Release Notes

dbus2/zbus (zbus)

v5.0.0: πŸ”– zbus 5.0.0

Compare Source

  • πŸ‘½οΈ Adapt to zvariant 5.0 API. This brings in massive performance improvements to message
    encoding and decoding.
  • πŸ’₯ Breakinging changes:
    • Message body signature now mandatory.
    • proxy macro respects visibility. This includes all types generated by proxy. Unfortunately
      this means that the existing code will have to set the visiblity explicitly to pub if they
      were relying on the generated proxy to be public.
    • Drop support for DBUS_COOKIE_SHA1 auth mechanism. #​727
      • It drags the sha1 crate as a dependency, which can be problematic for some users. #​543
      • It makes the handshake more complex, not allowing to pipeline all the commands.
      • It's not widely used. If EXTERNAL is not an option, you might as well just use ANONYMOUS.
    • πŸ›‚ Only support one authentication method at a time. Now that we're down to only two
      authentication mechanisms with one of them being no-authentication, this really makes sense
      since we can just autodetect what authentication method to use for a specific socket type on a
      specific platform. This also simplifies the handshake logic and will allow us to pipeline the
      whole client-side handshake in the future, when we can drop the xdg-dbus-proxy workarounds. #​781
    • Drop unnecessary lifetimes on genarated signal streams.
    • Streamline Message & message::Builder constructors. They should be named the same and take the
      same type of arguments.
    • proxy::Defaults now has typed values.
    • Rename proxy::ProxyDefault to proxy::Defaults.
    • πŸ”₯ Drop API deprecated in 4.0.
    • Minor changes in fdo API.
  • ✨ New features:
    • interface now generates a trait, Signals, that provides the same signal
      methods as user specifies but w/o the SignalEmitter argument (#​871). The macro also generates
      2 implementations of this trait for:
      • InterfaceRef, for emitting signals from outside the context of an interface
        method.
      • SignalEmitter, for emitting signals from inside an interface methods.
    • Add SignalContext::emit. Add a new method to SignalContext that allows emitting a signal for
      a given interface and singal name.
    • Add Connection::graceful_shutdown.
    • Add conn::AuthMechanism::as_str(). This gives you a static string representation of the
      mechanism. We'll use this in a following commit to avoid an allocation.
    • Add Socket::auth_mechanism. The socket impl will now inform us which authentication mechanism
      should be used with it. The implementation can choose this based on the socket type and the
      target platform.
    • Allow specifying visibility of interface-generated proxy. This implies that by default, it will
      be private.
    • ObjectServer now implements Clone.
  • 🚚 Renames and moves:
    • Rename SignalContext to SignalEmitter. Since now this emits signals, this is a more
      appropriate name. We keep a deprecated SignalContext type alias as well as the
      signal_context attribute of interface for not completely breaking the existing code.
    • Move AuthMechanism from crate root to conn. We leave the AuthMechanism in the root as
      deprecated.
  • πŸš‘οΈ Gracefully handle serial number wrap. When SERIAL_NUM wraps past u32::MAX back to zero,
    the conversion to NonZeroU32 panics. #​946
  • 🩹 Fix some lifetimes in Proxy API. We were unnecessarily constraining the lifetimes in some of
    the Proxy API.
  • ⚑️ Optimizations
    • Only enable Guid::generate() if p2p feature is enabled.
    • Use relaxed load order for serial number fetch & add.
    • msg::Header no longer allocates.
    • Avoid deserialization of msg::Header needlessly.
  • 🚩 Add serde_bytes Cargo feature. This is just a proxy feature for zvariant's serde_bytes
    feature. #​1052
  • 🚩 Feature-gate blocking API. Add a cargo feature called blocking-api to zbus &
    zbus_macros. When enabled, the zbus::blocking module is available. When disabled, proxy
    macro ignores the value of gen_blocking attribute and doesn't generate blocking proxy. This
    feature is enabled by default.
  • βž• Add camino feature as proxy for zvariant feature of the same name.
  • βž– Dependendies removed:
    • Remove dependency on sha1 crate.
    • Drop direct dep on futures-sink.
    • rand now an optional dependency. It is only enabled if p2p feature is enabled. This means
      that rand dependency is dropped for typical users.
  • ⬆️ Updated dependencies:
    • zvariant to 5.0.
    • windows-sys to 0.59.
    • tokio-vsock 5. #​643
  • ⬆️ Bump MSRV to 1.81.
  • πŸ“ Documentation
    • Tidy documentation across entire crate.
    • Improve blocking module docs.
    • Correct wrong documentation links.
    • Remove a now incorrect warning from Message::header method.
  • ✏️ Fix doc list item missing indentation.
  • 🚨 Drop invalid cfg from documentation example.

v4.4.0: πŸ”– zbus 4.4.0

Compare Source

  • πŸš‘οΈ Fix regression of not replying to inexistent methods. #​905.
  • πŸ› Fix a potential deadlock during name registration.
  • ✨ Add optional heapless feature, which is just a proxy to zvariant feature of the same name.
  • ⬆️ Require zvariant 4.2.0.

v4.3.1: πŸ”– zbus 4.3.1

Compare Source

  • πŸ’© Workaround for xdg-dbus-proxy's monotonic serial requirement. While the underlying
    issue in xdg-dbus-proxy
    has already been fixed, it will take some time before the fix is
    released and is widely available.
  • πŸ₯… Methods of interface-generated proxy now use the same error type as the interface's error
    type. We might need to add an attribute to control this in the future, as this as this may not
    always be what the user wants.
  • πŸ“ book
    • Add a TOC to each chapter, using mdbook-toc from @​badboy.
    • Add an FAQ section about enum representations.
    • Add property trait bounds to server chapter too.
    • Provide "edit page" option, making it easier to contribute fixes and improvements.
    • "server" -> "service". A D-Bus service is not a server, that's the bus. So let's keep these
      two distinct concepts separate.
    • Remove numeric labels from the navigation bar.
    • Update rust edition information.
    • Update repo icon to Github.
  • ⬆️ Bump nix to v0.29.

v4.3.0: πŸ”– zbus 4.3.0

Compare Source

  • ✨ interface can now generate proxy for you. #​236
  • πŸš‘οΈ Handle FDs received during handshake, in server-side code. #​813.
  • ✨ object_server::ResponseDispatchNotifier
    • Add response getter.
    • Implement serde::Deserialize for it.
  • πŸ“ Update blocking::Connection::call_method docs.

v4.2.2: πŸ”– zbus 4.2.2

Compare Source

  • πŸš‘οΈ zm: Fix a regression introduced by in 4.2.0, resulting in tasks not being spawned for
    methods by default. #​799
  • ⬆️ Update syn to v2. #​401
  • ⬆️ Update zvariant_utils to 2.0.0.
  • πŸ“ Correct wrong documentation links. #​790

v4.2.1: πŸ”– zbus 4.2.1

Compare Source

  • πŸš‘οΈ Critical fixes:
    • Don't invalidate all properties on change. This fixes a regression in c1aa5c7, where we
      started to invalidate properties in every PropertyChanged signal. This is wrong anyway but it
      also meant zbus interfaces breaking against gio. #​765
    • Use assert! instead of debug_assert!. debug_assert! is removed in release builds, along
      with any values computed inside it. This meant that since the use of debug_assert! in
      commit 7fc3ab7, the fdo interfaces weren't getting added for
      nodes for release profile. Let's use assert! instead. #​764
    • Fix 0 byte transfer and parsing regressions for FreeBSD. #​756
  • πŸ’© Hack to make connection handshake work inside Flatpak. xdg-dbus-proxy can't handle
    pipelining
    , hence we need to handle NEGOTIATE_UNIX_FD command's response before sending out
    BEGIN command and Hello method call message.
  • πŸ₯… Gracefully handle rejection of UNIX FD passing.
  • πŸ› Ensure all messsage bytes received during handshake are used. Don't assume that only a single
    full message could be received at the end of the client handshake process.
  • πŸ“ Correct logo URL in docs.
  • 🚨 Allow dead code in doc samples.
  • ⬆️ Update dependencies:
    • serde to 1.0.200.
    • proc-macro2 to 1.0.81.
    • tokio to 1.37.0.

v4.2.0: πŸ”– zbus 4.2.0

Compare Source

  • ✨ Make spawning tasks for method call handling, optional. dbus_interface now provides a spawn
    attribute to control whether the method call handling is spawned as a task or not.
  • ✨ Add serial to Message's Debug representation.
  • πŸ”Œ Add connection::Builder::authenticated_socket for creating a connection with a
    pre-authenticated socket. This could also be socket that doesn't need any authentication. #​590.
  • ✨ Add connection::socket::{ReadHalf::receive_message, WriteHalf::send_message} methods. These
    method have a default implementation that just uses the lower-level sibling methods. Implementers
    can either override this method or the lower-level method, depending on the underlying socket
    they're using.
  • ✨ Introducing connection::socket::Channel. This new socket type, uses channels for in-process p2p
    communication. This can be used with connection::Builder::authenticated_socket to create a
    connection for in-process communication. #​591.
  • ⚑️ Pipeline client-side handshake as much as possible, including the Hello method call to the
    bus. This reduces unnecessary round-trips & hence latencies. #​493
  • ✨ Add connection::Builder::auth_mechanism. Unlike auth_mechanisms method, this method only allows
    one mechanism to be set.
  • πŸ—‘οΈ Deprecate connection::Builder::auth_mechansims. In favor of auth_mechansim. This is in
    preparation for #​731, when we will remove this method entirely.
  • πŸ₯… Don't assert on invalid serve_at() usage. Document that standard interfaces are already added.
    Return an error instead of an explicit panic if attempted, since it is not an internal invariant.
  • πŸ₯… Catch interface handler error.
  • πŸ”Š Reduce the amount of tracing data when adding traces in handlers (duplicated "msg").
  • πŸ”₯ Remove now unnecessary hack to ensure ObjectManager signals aren't sent before Hello method.
  • πŸ”Š Instrument all async methods of server handshake.
  • 🚩 Support autolaunch address on Windows without windows-gdbus feature and associated hacks.
    Turns out that the reference D-Bus implementation supports autolaunch fine and we don't need
    special support for gdbus binary. Hopefully, in the near future, busd will also support it. #​687
  • πŸ“ Clearly document Interface being unstable API. Also recommend what people should do when
    dbus_interface isn't enough.
  • πŸ”₯ Drop impossible scope on autolaunch session bus address. We currently can't handle scopes on
    autolaunch addresses so there is no need to create an address with scopes.
  • πŸ₯… Correctly handle cancellation of handshake in server. If the client sends a CANCEL command
    during a handshake, the server must move on to the next handshake method available (if any).
  • πŸ›‚ Server-side handshake should be as lenient as the spec says. If a received command from the
    client is unknown or invalid in the current context, we shouldn't completely error out but rather
    send an error and continue as if nothing happened.
  • πŸ”Š Exclude newline terminators from String repr of commands. Otherwise it messes up the logging
    output.
  • 🏷️ Implement Default for address::transport::Autolaunch.
  • 🚨 Remove duplicate trait bounds.
  • πŸ’„ Use the new logo in docs.
  • ⬆️ Updated depdencies:
    • blocking to 1.6.0
    • async-fs to 2.1.2
    • async-task to 4.7.1
    • async-process to 2.2.2
    • async-executor to 1.11.0
    • async-trait to 0.1.80
    • vsock to 0.5.0
    • serde_repr to 0.1.19
    • event-listener to 5.3.0
    • async-io to 2.3.2
    • async-recursion to 1.1.1
    • tempfile to 3.10.1
    • quote to 1.0.36
    • zvariant_utils to 1.1.1
  • βž– Removed depdencies:
    • regex
    • derivative
  • 🎨 Use imports over qualifies in macros.
  • ✏️ Fix some typos.
  • ♻️ Many internal code cleanups and improvements.

v4.1.2: πŸ”– zbus 4.1.2

Compare Source

To go with zbus_macros 4.1.2. Other changes:

  • ⬆️ Bump nix to 0.28.

v4.1.1: πŸ”– zbus 4.1.1

Compare Source

The actual change is in zbus_macros 4.1.1.

v4.1.0: πŸ”– zbus 4.1.0

Compare Source

  • πŸš‘οΈ zb: Fix a deprecation re-export.
  • πŸ”₯ zb: Remove some redundant imports.
  • ✏️ zb: Fix a typo in docs.
  • ⬆️ Updated deps:
    • async-io to v2.3.1.
    • async-process to 2.1.0.
    • async-task to 4.7.0.
    • async-recursion to 1.0.5.
    • async-lock to 3.3.0.
    • async-fs to 2.1.1.
    • async-executor to 1.8.0.
    • async-trait to 0.1.77.
    • blocking to 1.5.1.
    • enumflags2 to 0.7.9.
    • event-listener to 5.1.0.
    • futures-sink to 0.3.30.
    • futures-core to 0.3.30.
    • futures-util to 0.3.30.
    • sha1 to 0.10.6.
    • serde_repr to 0.1.18.
    • tracing to 0.1.40.
    • tempfile to 3.10.0.
    • xdg-home to 1.1.0.

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 is behind base branch, 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.

@renovate renovate bot requested a review from a team as a code owner October 19, 2024 06:24
@renovate renovate bot added the dependencies Pull requests that update a dependency file label Oct 19, 2024
Copy link
Contributor

github-actions bot commented Oct 19, 2024

Package Changes Through 5c37512

There are 4 changes which include sql-js with patch, clipboard-manager with patch, sql with patch, fs-js with patch

Planned Package Versions

The following package releases are the planned based on the context of changes in this pull request.

package current next
api-example 2.0.4 2.0.5
api-example-js 2.0.1 2.0.2
clipboard-manager 2.0.1 2.0.2
fs-js 2.0.1 2.0.2
sql 2.0.1 2.0.2
sql-js 2.0.0 2.0.1

Add another change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

Copy link
Contributor Author

renovate bot commented Oct 20, 2024

⚠️ 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: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path plugins/single-instance/Cargo.toml --package [email protected] --precise 5.1.0
    Updating crates.io index
error: failed to select a version for the requirement `zbus = "^4"`
candidate versions found which didn't match: 5.1.0
location searched: crates.io index
required by package `notify-rust v4.11.3`
    ... which satisfies dependency `notify-rust = "^4.11"` (locked to 4.11.3) of package `tauri-plugin-notification v2.0.1 (/tmp/renovate/repos/github/tauri-apps/plugins-workspace/plugins/notification)`

@renovate renovate bot force-pushed the renovate/v2-zbus-5.x branch 10 times, most recently from f49095d to b1a7fc0 Compare October 26, 2024 11:22
@renovate renovate bot force-pushed the renovate/v2-zbus-5.x branch 10 times, most recently from a40bf81 to 1227359 Compare November 4, 2024 12:19
@renovate renovate bot force-pushed the renovate/v2-zbus-5.x branch from 1227359 to 5c37512 Compare November 4, 2024 12:24
Copy link
Member

@FabianLars FabianLars left a comment

Choose a reason for hiding this comment

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

incompatible msrv

@FabianLars FabianLars marked this pull request as draft November 4, 2024 12:30
@FabianLars FabianLars closed this Nov 4, 2024
Copy link
Contributor Author

renovate bot commented Nov 4, 2024

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 5.x releases. But if you manually upgrade to 5.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/v2-zbus-5.x branch November 4, 2024 12:31
@zeenix
Copy link

zeenix commented Jan 6, 2025

@FabianLars would this PR be acceptable if zbus' MSRV was lowered to 1.77? @thomaseizinger already provided the PR for that and I'll merge it, if that's the case.

@FabianLars
Copy link
Member

@zeenix Yes, absolutely!

@zeenix
Copy link

zeenix commented Jan 10, 2025

@zeenix Yes, absolutely!

Merged and released.

@FabianLars
Copy link
Member

Awesome! thanks so much :)

#2271

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.

2 participants