refactor: split shorebird C API consumption (engine side of updater #350)#138
Merged
eseidel merged 2 commits intoshorebird/devfrom May 4, 2026
Merged
refactor: split shorebird C API consumption (engine side of updater #350)#138eseidel merged 2 commits intoshorebird/devfrom
eseidel merged 2 commits intoshorebird/devfrom
Conversation
Author
|
Will need update after updater#350 lands |
bdero
approved these changes
May 4, 2026
…lutter#350) Switch shell/common/shorebird/updater.cc to include updater_engine.h instead of the combined updater.h, which is removed in updater flutter#350. Drop ghost entries from android_exports.lst: - shorebird_active_path, shorebird_active_patch_number: never existed in the Rust crate (already dead before flutter#350). - shorebird_check_for_update, shorebird_update: removed in updater flutter#350, replaced by shorebird_check_for_downloadable_update and shorebird_update_with_result respectively. Coordinated with shorebirdtech/updater#350. The DEPS updater_rev bump is intentionally not included here -- it should land together with the final commit of flutter#350 once the merge order is settled.
cff3893 to
44d6e9a
Compare
bdero
added a commit
that referenced
this pull request
May 7, 2026
Upstream commit be89e40 (#138) split the updater C API into separate engine and dart cbindgen configs (cbindgen_engine.toml / cbindgen_dart.toml) and removed the combined cbindgen.toml, but the companion shell/common/shorebird/BUILD.gn change to update the declared inputs was not landed. Without this fix, the iOS engine build fails with: ninja: error: '../../flutter/third_party/updater/library/cbindgen.toml', needed by 'gen/flutter/shell/common/shorebird/rust_updater_<...>.stamp', missing and no known rule to make it Worth landing upstream as a follow-up on #138.
2 tasks
bdero
added a commit
that referenced
this pull request
May 7, 2026
…split (#140) PR #138 (refactor: split shorebird C API consumption) switched shell/common/shorebird/updater.cc to the new updater_engine.h header, and the matching DEPS bump pulled the updater repo state where the combined library/cbindgen.toml has been replaced with separate library/cbindgen_dart.toml and library/cbindgen_engine.toml. The build_rust_updater action's declared inputs were not updated to match, so iOS engine builds on shorebird/dev fail with: ninja: error: '../../flutter/third_party/updater/library/cbindgen.toml', needed by 'gen/flutter/shell/common/shorebird/rust_updater_<...>.stamp', missing and no known rule to make it This action only runs in shorebird-runtime engine builds, which the periodic _build_engine workflow exercises but no per-PR CI job does, so the regression went unnoticed. Replace the missing input with the two split tomls.
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Engine-side companion to shorebirdtech/updater#350, which splits
library/src/c_apiintodartandenginesubmodules and replaces the combinedupdater.hwithupdater_dart.h+updater_engine.h.engine/src/flutter/shell/common/shorebird/updater.cc— switch the include fromupdater.h(deleted in Explicitly dispose heavy C++ objects flutter/flutter#350) toupdater_engine.h.engine/src/flutter/shell/platform/android/android_exports.lst— drop four entries that no longer exist in the Rust crate after Explicitly dispose heavy C++ objects flutter/flutter#350:shorebird_active_path,shorebird_active_patch_number— ghost entries; they never existed in Rust and were already dead before Explicitly dispose heavy C++ objects flutter/flutter#350.shorebird_check_for_update,shorebird_update— both removed in Explicitly dispose heavy C++ objects flutter/flutter#350, replaced byshorebird_check_for_downloadable_updateandshorebird_update_with_resultrespectively.DEPS— bumpupdater_revto34509fca3c65388ebc84cfaea8f38733ce41f41a, the merge commit of Explicitly dispose heavy C++ objects flutter/flutter#350 on updater `main`.The follow-up checklist on flutter#350 listed three drops; I also dropped
shorebird_updatefor the same reason (the symbol no longer exists post-flutter#350). Worth confirming in review.Why
Two commits, kept separate so each is easy to re-review:
updater_revbump, added now that Explicitly dispose heavy C++ objects flutter/flutter#350 is on updatermainat34509fca3c.Test plan
updater_revinDEPSto its merge SHA.shorebird previewapp against this engine and confirm patch download + reporting still work.Coordination
shorebirdtech/updater#350 landed at
34509fca3c; this PR is no longer blocked.