Skip to content

Improve the tools/process around tracking and minimizing technical debt #143344

@matanlurey

Description

@matanlurey

Forked from #143312.

This is a catch-all issue/wishlist for having better tooling or process for minimizing and reducing usages of deprecated stuff1.

Anyone is welcome to add their thoughts, but:

  1. Please be respectful.
  2. These are for tools and process for Flutter contributors, not users, i.e. for the Flutter framework itself.
  3. When possible, explain the problem you're trying to solve before suggesting a solution.

It's also not clear who or when this work will get done, but we can discuss priorities as a team.


I'll start with a few seeded ideas:

1-time allow-listing all existing deprecations and making future ones breaking

Imagine the following API:

// package:foo/foo.dart

final class Foo {
  void bar() {}
}

In a roll, the following happens:

// package:foo/foo.dart

final class Foo {
+  @Deprecated('Use baz() instead')
  void bar() {}
+  void baz() {}
}

... a bot could automatically add:

+ // ignore: deprecated_member_use
foo.bar();

... to all existing call-sites, and then make that symbol breaking for future usages.

Create a dashboard that tracks deprecated member usages

... potentially with WoW or MoM changes.

Import Symbol Current Last 30 Days
package:foo/foo.dart Foo.bar 3 +1 (33%)

Footnotes

  1. I'd say code, but perhaps you could extend this to "using Groovy instead of Kotlin for Gradle", etc.

Metadata

Metadata

Labels

P2Important issues not at the top of the work listc: contributor-productivityTeam-specific productivity, code health, technical debt.c: proposalA detailed proposal for a change to Flutterc: tech-debtTechnical debt, code quality, testing, etc.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions