Skip to content

Declare the Dart 3.11.0 floor - #62

Merged
leoafarias merged 1 commit into
mainfrom
chore/dart-3-11-floor
Sep 12, 2026
Merged

leoafarias merged 1 commit into
mainfrom
chore/dart-3-11-floor

Conversation

@leoafarias

Copy link
Copy Markdown
Member

What this changes

Declares sdk: ">=3.11.0 <4.0.0" for the okf package, matching conceptadev/mix and conceptadev/wayfinder so one SDK serves every Concepta package. tool/release already required 3.11.0 for cli_pkg 2.15.2's xml 7 API, so this collapses the gap between the package and its release tooling rather than widening it.

The trade-off, stated plainly. The floor is higher than anything okf depends on needs. This buys organization-wide consistency and costs reach for consumers still on Dart 3.9 or 3.10. That is the intended trade, not an oversight.

Four places hold the number

The CI gate caught the two that are easy to miss — test/ci/gate_test.dart asserts both the pubspec constraint and the SDK floor job's pinned version verbatim, so the change cannot be done in the pubspec alone:

  • pubspec.yaml — the constraint itself
  • test/ci/gate_test.dart — the asserted pubspec constraint
  • test/ci/gate_test.dart — the asserted sdk-version of the SDK floor job
  • .github/workflows/test.yml — that job's pinned SDK

Two comments were also wrong or became wrong. The one beside RELEASE_DART_SDK claimed "the rest of the repository still targets the >=3.4.0 floor", which was already untrue at 3.9.0; it now says what the variable still does, which is pin an exact SDK where the other jobs track stable. The SDK floor job's own comment records that it equals the stable job only until stable moves past 3.11, which is the reason to keep it rather than delete it as redundant.

Checks

dart pub get, dart format --set-exit-if-changed clean, dart analyze --fatal-infos clean, and 227 tests pass locally on Dart 3.11.0. No lint newly fired: okf was already above the 3.7 tall-style formatter boundary, so unlike the equivalent change in wayfinder this carries no reformatting churn.

Match conceptadev/mix and conceptadev/wayfinder so one SDK serves every
Concepta package. tool/release already required 3.11.0 for cli_pkg's
xml 7 API, so this collapses the gap rather than widening it.

The floor is above what okf's own dependencies need, which is the point
being traded: consistency across the organization over reach for
consumers on 3.9 and 3.10.

Four places hold the number, and the CI gate found the two that are
easy to miss: test/ci/gate_test.dart asserts both the pubspec
constraint and the SDK floor job's pinned version verbatim. The stale
comment claiming the repository targets >=3.4.0 is corrected, and the
note beside RELEASE_DART_SDK now says what it still does -- pin an
exact SDK where other jobs track stable -- rather than isolating a
higher floor it no longer has.

The pubspec assertion moves to a local variable so the line stays
short: dart format's output is version-dependent and this file is
canonically formatted by stable, so a wrapped expect() would have
churned the whole file.
@leoafarias
leoafarias force-pushed the chore/dart-3-11-floor branch from bc59eea to dfc8d95 Compare September 12, 2026 19:16
@leoafarias
leoafarias merged commit 2119c02 into main Sep 12, 2026
4 checks passed
@leoafarias
leoafarias deleted the chore/dart-3-11-floor branch September 12, 2026 19:43
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