Skip to content

Lower minimum SDK constraint to ^3.10.0#9

Open
galacticgibbon wants to merge 1 commit into
leancodepl:mainfrom
galacticgibbon:lower-sdk-constraint-3.11
Open

Lower minimum SDK constraint to ^3.10.0#9
galacticgibbon wants to merge 1 commit into
leancodepl:mainfrom
galacticgibbon:lower-sdk-constraint-3.11

Conversation

@galacticgibbon

Copy link
Copy Markdown

Summary

Lowers environment.sdk from ^3.12.2 to ^3.10.0 (root package and the example/ fixture). This lets ciach be activated on projects still pinned to Flutter 3.38–3.41 (Dart 3.10–3.11), which currently fail version solving:

Because pub global activate depends on ciach any which requires SDK version >=3.12.2 <4.0.0, version solving failed.

Why 3.10 is a safe floor

  • The only language feature in the codebase that gates the floor is dot shorthands (.class$, .new(...), etc.), which shipped stable in Dart 3.10. Null-aware elements ('container': ?container) only need 3.8.
  • pro_lsp declares sdk: ^3.10.0 itself, so nothing in the dependency tree requires 3.12.

Verification (on Dart 3.11.4 / Flutter 3.41.6)

  • dart analyze — no issues
  • dart test — all 30 tests pass
  • dart format --set-exit-if-changed . — unchanged
  • dart run bin/ciach.dart example — runs end-to-end, reports the expected fixture declarations
  • Confirmed // @dart=3.10 accepts the shorthand syntax while // @dart=3.9 rejects it, so ^3.10.0 is the true floor

Notes

Deliberately not bumping the version or touching the CHANGELOG so you can fold this into your next release however you prefer — happy to add an entry if you'd like. You may also want a second CI job on SDK 3.10 to keep the floor honest; also happy to add that here if wanted.

The only language feature in use that gates the SDK floor is dot
shorthands, which shipped stable in Dart 3.10. pro_lsp itself only
requires ^3.10.0, so nothing in the dependency tree needs 3.12.

Verified on Dart 3.11.4 (Flutter 3.41.6): dart analyze is clean, all
30 tests pass, dart format is unchanged, and the tool runs end-to-end
against the example fixture.
@galacticgibbon
galacticgibbon force-pushed the lower-sdk-constraint-3.11 branch from eefc9a3 to da50a31 Compare July 14, 2026 22:18
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