Skip to content

[Bug] CI breaks when flutter_rust_bridge publishes a new version #100

Closed

Description

@thangnm93

Description

The yourssh_rdp and yourssh_vnc Dart tests fail as soon as a new
flutter_rust_bridge release lands on pub.dev, with no change on our side:

Bad state: yourssh_rdp's codegen version (2.12.0) should be the same as
runtime version (2.13.0). See https://cjycode.com/flutter_rust_bridge
package:yourssh_rdp/src/generated/frb_generated.dart 28:20  RustLib.init

Steps to Reproduce

  1. Run cd packages/yourssh_rdp && flutter test with no pubspec.lock present
    (which is how CI runs it — package lockfiles are not committed).
  2. pub resolves the newest flutter_rust_bridge, currently 2.13.0.
  3. RustLib.init aborts in setUpAll.

Expected Behavior

The bridge runtime matches the generated code, so the tests run.

Actual Behavior

rust/Cargo.toml pins the crate exactly (flutter_rust_bridge = "=2.12.0") and
lib/src/generated/ was produced by codegen 2.12.0, but the Dart side allowed a
range (^2.12.0). flutter_rust_bridge requires all three to be the same
version, so any minor release breaks the build.

Environment

  • OS: ubuntu-latest (GitHub Actions) and locally after a fresh resolve
  • App version: 0.1.40
  • Installed via: built from source

Additional Context

Surfaced on #86 the first time CI ran on a PR into develop (#97 added that
trigger). The failure predates that PR — it is time-based, not caused by the
branch. Fix is to pin the Dart dependency exactly, matching Cargo.toml; bumping
the bridge then means regenerating lib/src/generated/ and moving all three
together, which is the intended workflow.

Activity

  1. added a commit that references this issue on Aug 23, 2026
    875aca4
  2. thangnm93 commented on Aug 23, 2026

    @thangnm93
    CollaboratorAuthor

    Fixed in 875aca4 (merged to develop via #86). The Dart dependency is pinned to flutter_rust_bridge: 2.12.0 in both packages/yourssh_rdp and packages/yourssh_vnc, matching the =2.12.0 already pinned in rust/Cargo.toml and the codegen that produced lib/src/generated/. All three now move together, so a new bridge release on pub.dev can no longer break a fresh resolve.

    Upgrading the bridge from here means regenerating lib/src/generated/ and bumping Cargo.toml in the same change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions