diff --git a/examples/demo_app/MODULE.bazel.lock b/examples/demo_app/MODULE.bazel.lock index 9bb2ea9..110713d 100644 --- a/examples/demo_app/MODULE.bazel.lock +++ b/examples/demo_app/MODULE.bazel.lock @@ -378,7 +378,7 @@ }, "@@rules_flutter+//tools/flutter:plugins.bzl%flutter_plugins_ext": { "general": { - "bzlTransitiveDigest": "YDyYRyA+h/cB6QG169Hi67W4q0wg0xgGvvpFuEMM3Tg=", + "bzlTransitiveDigest": "tQNMt955Aw9GgNkaaslFjOQlTt/8uwsvu2YmduiXfjg=", "usagesDigest": "XZeXzyR0RtbfpK9X/cRefQ0IzVT+2325G7HjeZJ9G1U=", "recordedInputs": [ "REPO_MAPPING:,flutter_maven rules_jvm_external++maven+flutter_maven", diff --git a/examples/local_plugin/MODULE.bazel.lock b/examples/local_plugin/MODULE.bazel.lock index 5ea341e..172fcf3 100644 --- a/examples/local_plugin/MODULE.bazel.lock +++ b/examples/local_plugin/MODULE.bazel.lock @@ -378,7 +378,7 @@ }, "@@rules_flutter+//tools/flutter:plugins.bzl%flutter_plugins_ext": { "general": { - "bzlTransitiveDigest": "YDyYRyA+h/cB6QG169Hi67W4q0wg0xgGvvpFuEMM3Tg=", + "bzlTransitiveDigest": "tQNMt955Aw9GgNkaaslFjOQlTt/8uwsvu2YmduiXfjg=", "usagesDigest": "Z9hQSeXyPKbND6D/cNmthbIQrw93atyT653mkQZgs8Q=", "recordedInputs": [ "REPO_MAPPING:,flutter_maven rules_jvm_external++maven+flutter_maven", diff --git a/examples/pub_plugins/MODULE.bazel.lock b/examples/pub_plugins/MODULE.bazel.lock index c722b8d..217893d 100644 --- a/examples/pub_plugins/MODULE.bazel.lock +++ b/examples/pub_plugins/MODULE.bazel.lock @@ -378,7 +378,7 @@ }, "@@rules_flutter+//tools/flutter:plugins.bzl%flutter_plugins_ext": { "general": { - "bzlTransitiveDigest": "YDyYRyA+h/cB6QG169Hi67W4q0wg0xgGvvpFuEMM3Tg=", + "bzlTransitiveDigest": "tQNMt955Aw9GgNkaaslFjOQlTt/8uwsvu2YmduiXfjg=", "usagesDigest": "YAm/jbk0GwO9p9qd76oXRuG29FRMV6Bi9F3BHgRBbI0=", "recordedInputs": [ "REPO_MAPPING:,flutter_maven rules_jvm_external++maven+flutter_maven", diff --git a/tests/consumer/MODULE.bazel.lock b/tests/consumer/MODULE.bazel.lock index e78fe72..cc82499 100644 --- a/tests/consumer/MODULE.bazel.lock +++ b/tests/consumer/MODULE.bazel.lock @@ -378,7 +378,7 @@ }, "@@rules_flutter+//tools/flutter:plugins.bzl%flutter_plugins_ext": { "general": { - "bzlTransitiveDigest": "YDyYRyA+h/cB6QG169Hi67W4q0wg0xgGvvpFuEMM3Tg=", + "bzlTransitiveDigest": "tQNMt955Aw9GgNkaaslFjOQlTt/8uwsvu2YmduiXfjg=", "usagesDigest": "MM5qL4l0rXCX1ki2Bk8iDaeEbFfREdpk3KGY5JkftEE=", "recordedInputs": [ "REPO_MAPPING:,fake_plugin_metadata +fake_plugin_metadata+fake_plugin_metadata", diff --git a/tools/flutter/plugins.bzl b/tools/flutter/plugins.bzl index fb93bab..dd1921e 100644 --- a/tools/flutter/plugins.bzl +++ b/tools/flutter/plugins.bzl @@ -1026,13 +1026,17 @@ def _flutter_plugins_impl(ctx): if override != None: used_overrides.append(name) - # An override that clears nothing is dead weight, and dead weight - # drifts out of date unnoticed. Recorded, not failed: what it - # supplies is still correct, so the build is right either way. - if "unresolved_dep" not in reasons: + # Stale only when it does neither thing it can do: clear + # `unresolved_dep`, or contribute a coordinate the scraper missed -- + # which is how a classless KMP root gets its `-android`/`-jvm` + # child. Judging by the gate alone called those dead and told the + # consumer to delete them, silently dropping the coordinate. + # Recorded, not failed: what it supplies is correct either way. + contributed = [c for c in override if c not in coordinates] + if "unresolved_dep" not in reasons and not contributed: stale_overrides.append(name) - coordinates = coordinates + [c for c in override if c not in coordinates] + coordinates = coordinates + contributed reasons = [r for r in reasons if r != "unresolved_dep"] gated = [r for r in reasons if r in _GATED_REASONS]