Drop the embassy-sync git patch once a release carries poll_next_message / poll_changed

オープン
#386 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
22/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
活発
技術スタック
rust

調査の方向性

Start with the [patch.crates-io] block in the workspace Cargo.toml and the matching dependency lines in aimdb-mqtt-connector/Cargo.toml, then check crates.io for an embassy-sync release that includes poll_next_message and poll_changed. Only after that release exists, bump the crates, remove the patch entries, and update PUBLISH_NO_VERIFY in the Makefile. Done means the workspace resolves from registry releases and the embedded build (make test-embedded) passes. The work is blocked on upstream, so confirm the release status with a maintainer first.

索引モデルが issue の本文から書いたものです。

説明

dependencies

Tracking issue for moving embassy-sync (and the two crates that follow it) back to crates.io releases.

Background

aimdb-embassy-adapter/src/buffer.rs polls Subscriber::poll_next_message and Receiver::poll_changed directly. Both are merged upstream but not in embassy-sync 0.8.0, still the latest on crates.io. The workspace therefore patches them in (Cargo.toml, [patch.crates-io], added in #343 for #341):

  • embassy-sync → embassy git rev 03c826f
  • embassy-net-driver-channel and embassy-net-driver → same rev. Published embassy-net-driver-channel 0.4.0 calls the pre-guard zerocopy_channel API the patched embassy-sync no longer has, and its driver trait must be the same instance embassy-net sees.

Consequences while the patch is in place:

  • Publishing: patches are not published, so the packaged aimdb-embassy-adapter cannot build its embassy-sync feature for a downstream user. The Makefile publishes it without verification (PUBLISH_NO_VERIFY) for this reason. The vendored copy carries the same 0.8.0 version as the registry release, so nothing flags the mismatch.
  • Other embassy bumps: pinning further embassy-* crates to git is constrained by this rev. E.g. pointing embassy-stm32 at 03c826f to pick up the BufferedUart TX fix fails to resolve (embassy-time-driver conflict), see #382 / #385.

To do once a release carries both APIs

  • Bump embassy-sync in the workspace Cargo.toml and in aimdb-mqtt-connector/Cargo.toml (it declares its own embassy-sync = "0.8.0").
  • Remove the three [patch.crates-io] entries and their comment; bump embassy-net-driver-channel / embassy-net-driver (or embassy-net) to releases that match the new embassy-sync.
  • Drop aimdb-embassy-adapter from PUBLISH_NO_VERIFY in the Makefile and update its comment (it still points at #242).
  • Update the comments that point at the patch (aimdb-mqtt-connector/Cargo.toml, aimdb-embassy-adapter/src/buffer.rs around the poll_* calls).
  • Check whether this unblocks #385 (embassy-stm32 with the BufferedUart fix) so both can move together.
  • Build the embedded targets (make test-embedded or equivalent) and smoke-test one Embassy demo on the NUCLEO-H563ZI.
主要言語
Rust
スター
101
フォーク
20
平均マージ
2時間 33分
マージ済み PR(30日)
90

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

aimdb-dev/aimdb のほかの issue

aimdb-dev/aimdb の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。