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

chore(deps): update rust crate zbus to v5 (v2) #2271

Draft
wants to merge 1 commit into
base: v2
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 6, 2025

This PR contains the following updates:

Package Type Update Change
zbus workspace.dependencies major 4 -> 5

Release Notes

dbus2/zbus (zbus)

v5.2.0: 🔖 zbus 5.2.0

Compare Source

  • ⚡️ Optimizations:
    • Don't use proxies in connection code. This allows LTO to remove the proxy-side code from the
      binary if the users isn't directly using proxy APIs. On busd, this reduces the binary size by
      200KB.
    • Disable docs in fdo interface introspection. These interfaces are well-known and documented (in
      the spec itself), so we don't need to provide the docs in the introspection data at runtime.
    • interface now allows disabling docs in introspection. Introspection strings are part of the
      binary and can have an impact on the binary size. This change allows to disable the addition of
      docs in the introspection for cases where there interface is well-known/well-documented. For
      example, combined with the following change of using this in the zbus::fdo interfaces, this
      will allow busd binary to shed 26 KB.
    • Avoid some formatting at runtime in interface macro. Add values already known to the
      introspection XML at compile time. This also removes about 500 bytes from busd binary size.
  • 🚩 Add gvariant feature flag to zbus_macros. It's just a proxy feature for zvariant and
    only needed to fix the build in the root workspace when building with --features gvariant.
    #​1125.
  • ⬆️ Update tokio-vsock to 0.6.
  • 🔊 Skip self in an instrumented method.
  • 🔥 Drop now unused sink feature of futures-util.

v5.1.1: 🔖 zbus 5.1.1

Compare Source

  • ➖ Tie async-process dependency to async-io feature, instead of the target OS. This fixes
    tokio users (a big majority of our users) needlessly depending on it along with a bunch of its
    dependencies.
  • 🔊 Don't log error on broadcasting on generic message channel. Otherwise, we just end up with a
    lot of noise in the logs.

v5.1.0: 🔖 zbus 5.1.0

Compare Source

  • ⬇️ Reduce rust-version to 1.80. #​1107
  • 🦺 Verify validity of names and object paths pased to macros at compile time.
  • 🐛 Generate interface properties signal methods only when needed.
  • ♻️ Use winnow for parsing GUID and D-Bus address strings. #​1070
  • ✨ Add support for unixexec transport.
  • 🔌 Add Command stdio socket type. This socket communicates with a spawned child process via
    its standard input and output streams.
  • ➕ Add direct dep on winnow.

v5.0.1: 🔖 zbus 5.0.1

Compare Source

  • 📌 Don't pin zvariant_utils dep. We don't always release zvariant_utils together with other
    crates, so unlike the macros crates, the versions don't need to be tied together. This will also
    allow us to bring zvariant_utils improvements to users without having to release all dependent
    packages as well.

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.

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 January 6, 2025 22:21
@renovate renovate bot added the dependencies Pull requests that update a dependency file label Jan 6, 2025
Copy link
Contributor Author

renovate bot commented Jan 6, 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: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package [email protected] --precise 5.2.0
    Updating crates.io index
error: failed to select a version for the requirement `zbus = "^4"`
candidate versions found which didn't match: 5.2.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.2.0 (/tmp/renovate/repos/github/tauri-apps/plugins-workspace/plugins/notification)`

Copy link
Contributor

github-actions bot commented Jan 6, 2025

Package Changes Through f0e69d6

There are 4 changes which include geolocation with patch, geolocation-js with patch, haptics with patch, haptics-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.12 2.0.13
geolocation 2.2.0 2.2.1
geolocation-js 2.2.0 2.2.1
haptics 2.2.0 2.2.1
haptics-js 2.2.0 2.2.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

@FabianLars
Copy link
Member

i unblocked zbus in renovate because of #1953 (comment)

@FabianLars FabianLars marked this pull request as draft January 6, 2025 22:22
@renovate renovate bot force-pushed the renovate/v2-zbus-5.x branch 3 times, most recently from c8dfcd6 to 8ebc8a2 Compare January 8, 2025 13:56
@renovate renovate bot force-pushed the renovate/v2-zbus-5.x branch from 8ebc8a2 to f0e69d6 Compare January 8, 2025 16:03
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.

1 participant