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

未关闭
#386 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
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 分钟
30 天内合并 PR
90

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

aimdb-dev/aimdb 的其他 Issue

查看 aimdb-dev/aimdb 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。