ci: ignore imbl bumps until matrix-sdk-ui allows them#120
Conversation
Dependabot's cargo-major group bumped our direct imbl dep independently of matrix-sdk-ui's own (older) imbl requirement in PR #42, leaving two semver-incompatible imbl versions in the graph and breaking every call site that passes a matrix-sdk-ui Vector into our code (E0308: multiple different versions of crate `imbl`). Pin stays at 6.1.0 with an ignore rule until matrix-sdk-ui bumps its own requirement.
|
Web preview: https://pr-120-charm-preview.justin-tech.workers.dev Built with |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7ed8a7270a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
This PR addresses CI failures caused by semver-incompatible duplicate imbl versions in the Rust dependency graph by documenting the constraint in src-tauri/Cargo.toml and configuring Dependabot to stop proposing problematic imbl upgrades until matrix-sdk-ui updates its own imbl requirement.
Changes:
- Add an explanatory comment in
src-tauri/Cargo.tomldescribing whyimblmust remain compatible withmatrix-sdk-ui. - Add a Dependabot
ignorerule forimblto prevent recurring CI-breaking upgrade PRs.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src-tauri/Cargo.toml |
Documents why imbl must stay compatible with matrix-sdk-ui’s imbl::Vector types. |
.github/dependabot.yml |
Adds a rule to prevent Dependabot from repeatedly proposing imbl upgrades that break type compatibility. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Review feedback on #120: the ignore rule as written blocked every imbl update, including compatible 6.x minor/patch releases that matrix-sdk-ui's imbl = "6.1.0" requirement can still resolve. Only the major-version jump causes the duplicate-type break, so scope the ignore to version-update:semver-major and reword the Cargo.toml comment accordingly.
Summary
E0308: mismatched types... there are multiple different versions of crate imbl in the dependency graph.imblis a direct dependency insrc-tauri/Cargo.tomlonly so our code can passmatrix-sdk-ui's returnedimbl::Vector<Arc<TimelineItem>>straight into our own functions (seetimeline.rs).matrix-sdk/matrix-sdk-ui0.18.0 haven't bumped their own imbl requirement past 6.x, so bumping our imbl to 7.0.0 independently leaves two semver-incompatibleimblversions in the graph — Cargo treats them as distinct types even though the crate name matches, breaking every call site that mixes the two.imblpinned at 6.1.0 with a comment explaining the constraint, and add a dependabotignorerule for it so this doesn't recur every time upstream publishes a new imbl — until matrix-sdk-ui itself bumps its imbl requirement, at which point both the ignore and the pin should move together.Test plan
cargo check --libpasses locally with no changes to Cargo.lock (this PR only adds comments + a dependabot ignore rule, doesn't touch the resolved version).@dependabot recreate) once this ignore rule is merged.