From 7ed8a7270a40128a6212e588bbfb094215662532 Mon Sep 17 00:00:00 2001 From: Evie Gauthier Date: Thu, 9 Jul 2026 16:04:48 -0400 Subject: [PATCH 1/2] ci: ignore imbl bumps until matrix-sdk-ui allows them 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. --- .github/dependabot.yml | 13 +++++++++++++ src-tauri/Cargo.toml | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index faa92cde..3f877d22 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -54,3 +54,16 @@ updates: update-types: - minor - patch + # `imbl` is a direct dependency (src-tauri/Cargo.toml) only so our code can + # share `imbl::Vector`/`Arc` types with what matrix-sdk-ui + # 0.18.0 returns from its timeline API — see the comment there. Bumping it + # independently of matrix-sdk-ui's own (older) imbl requirement leaves two + # semver-incompatible `imbl` versions in the dependency graph, which Cargo + # treats as distinct types even though the crate name matches — breaking + # every call site that passes a matrix-sdk-ui Vector into our code (first + # seen in PR #42, dependabot/cargo/src-tauri/main/cargo-major-12407c90ff: + # E0308 "multiple different versions of crate `imbl`"). Ignore it here + # until matrix-sdk-ui bumps its own imbl requirement past 6.x; remove this + # ignore in the same PR that bumps matrix-sdk/matrix-sdk-ui. + ignore: + - dependency-name: "imbl" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index be6a5be8..e950d146 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -45,6 +45,13 @@ tauri-plugin-dialog = "2.7.1" tauri-plugin-store = "2" matrix-sdk-ui = "0.18.0" lru = "0.12" +# Direct dep so timeline.rs can pass matrix-sdk-ui's returned +# `imbl::Vector>` straight into our own functions — Cargo +# treats two semver-incompatible `imbl` versions as distinct types even with +# the same crate name, so this must track whatever imbl version matrix-sdk-ui +# 0.18.0 itself resolves to (currently 6.1.0), not the latest imbl release. +# Bumping it independently breaks that type match (see PR #42); dependabot is +# configured to ignore it (.github/dependabot.yml) until matrix-sdk-ui moves. imbl = "6.1.0" regex = "1" async-trait = "0.1" From 4d4d712a0f58bc26fb0acf644ae0fcc313668bf0 Mon Sep 17 00:00:00 2001 From: Evie Gauthier Date: Thu, 9 Jul 2026 16:13:51 -0400 Subject: [PATCH 2/2] ci: narrow imbl dependabot ignore to major-version bumps only 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. --- .github/dependabot.yml | 22 +++++++++++++--------- src-tauri/Cargo.toml | 9 +++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3f877d22..38646894 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -56,14 +56,18 @@ updates: - patch # `imbl` is a direct dependency (src-tauri/Cargo.toml) only so our code can # share `imbl::Vector`/`Arc` types with what matrix-sdk-ui - # 0.18.0 returns from its timeline API — see the comment there. Bumping it - # independently of matrix-sdk-ui's own (older) imbl requirement leaves two - # semver-incompatible `imbl` versions in the dependency graph, which Cargo - # treats as distinct types even though the crate name matches — breaking - # every call site that passes a matrix-sdk-ui Vector into our code (first - # seen in PR #42, dependabot/cargo/src-tauri/main/cargo-major-12407c90ff: - # E0308 "multiple different versions of crate `imbl`"). Ignore it here - # until matrix-sdk-ui bumps its own imbl requirement past 6.x; remove this - # ignore in the same PR that bumps matrix-sdk/matrix-sdk-ui. + # 0.18.0 returns from its timeline API — see the comment there. A *major* + # bump breaks that: matrix-sdk-ui's own `imbl = "6.1.0"` requirement can't + # follow it, so two semver-incompatible `imbl` versions end up in the + # dependency graph, which Cargo treats as distinct types even though the + # crate name matches — breaking every call site that passes a + # matrix-sdk-ui Vector into our code (first seen in PR #42, + # dependabot/cargo/src-tauri/main/cargo-major-12407c90ff: E0308 "multiple + # different versions of crate `imbl`"). A 6.x minor/patch release is fine + # — matrix-sdk-ui's requirement still resolves to it — so only major + # updates are ignored here; remove this ignore in the same PR that bumps + # matrix-sdk/matrix-sdk-ui past their current imbl requirement. ignore: - dependency-name: "imbl" + update-types: + - "version-update:semver-major" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index e950d146..9473f86a 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -48,10 +48,11 @@ lru = "0.12" # Direct dep so timeline.rs can pass matrix-sdk-ui's returned # `imbl::Vector>` straight into our own functions — Cargo # treats two semver-incompatible `imbl` versions as distinct types even with -# the same crate name, so this must track whatever imbl version matrix-sdk-ui -# 0.18.0 itself resolves to (currently 6.1.0), not the latest imbl release. -# Bumping it independently breaks that type match (see PR #42); dependabot is -# configured to ignore it (.github/dependabot.yml) until matrix-sdk-ui moves. +# the same crate name, so stay on imbl 6.x until matrix-sdk-ui (currently +# pinned to `imbl = "6.1.0"` itself) moves past 6.x — don't jump to the +# latest imbl release independently. Bumping the major version breaks that +# type match (see PR #42); dependabot is configured to ignore major-version +# imbl bumps (.github/dependabot.yml) until matrix-sdk-ui moves. imbl = "6.1.0" regex = "1" async-trait = "0.1"