Skip to content

Conversation

@parlough
Copy link
Member

@parlough parlough commented Nov 18, 2025

Port of JetBrains/intellij-plugins#942 to the new repository and project structure.

Original PR description:

Increase the minimum supported Dart SDK to 2.12, which is the release which added support for null safety and finalized the consolidation on the combined dart CLI tool. This simplifies plugin development as a lot of tooling changed before the 2.12 release, requiring a lot of conditional behavior that is relatively hard to maintain and not well tested as very few developers run those old SDK versions.


Justification and background

Dart 2.12 was released on 2021-03-04, so over 4 years ago now. With the release of Dart 3 (May 2023), the Dart team stopped supporting language versions before 2.12 and highlighted most packages support null safety.

Beyond this, the Flutter IntelliJ plugin implemented a support policy at the beginning of 2025 only supporting SDKs from the previous two years. As of the most recent release, they only support Flutter 3.13 or later, which comes with Dart 3.1.

In this PR I set 2.12 as the minimum instead of 3.0 or 3.1 for two reasons:

  • Incrementally migrating to an increased minimum, for easier review, fewer opportunities for regressions, and an additional notice period for developers.
  • Continue supporting the few Dart developers that might not be running their apps with sound null safety, therefore needing an SDK before 3.0. I expect the minimum SDK version can later be increased to 2.19 while still supporting this group, but eventually support for SDKs before 3.0 should be dropped as well.

Included changes

  • Increased the minimum SDK version to "2.12.0".
  • Removed checks for versions before 2.12 and if there was one, removed the branch for earlier versions.
  • Removed support for the long-removed pub serve and pub build command, in favor of webdev.
    • Some related files, classes, methods, etc. should eventually be renamed due to this cleanup.
  • Removed support for stagehand for project templates, only supporting dart create.
    • Some related files, classes, methods, etc. should eventually be renamed due to this cleanup.
  • Consolidated the "asserts enabled or checked mode" setting to just "asserts enabled" now that Dart 1 is no longer supported.
  • Removed messages from the bundle that are no longer used due to removed messages and forms.

@parlough parlough force-pushed the feat/require-dart-2-12 branch from 940c486 to 4969571 Compare November 18, 2025 22:31
@parlough parlough marked this pull request as ready for review November 19, 2025 01:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant