Skip to content

v4.1.0

Latest

Choose a tag to compare

@vi-k vi-k released this 18 Aug 08:16
· 3 commits to main since this release

format 4.1.0 and format_intl 1.1.0. Minor rather than patch in both: the SDK floor and the intl range widen what can install the packages, and new compatibility is a feature even when the code is unchanged.

format 4.1.0

  • SDK floor lowered from ^3.7.2 to ^3.6.0, which admits Flutter 3.27.0 and later rather than 3.29.2 and later. Nothing here needed a language feature newer than 3.6; the whole suite, both web backends and the dependency floor were run on a real Dart 3.6.0 before the constraint moved.
  • Fixed every brace conversion — !s, !r and !a — throwing UnsupportedConversionException under dart2wasm on Dart 3.6.0 through 3.9.0. The conversion was selected by a switch statement over a nullable String with a case null, a shape those SDKs miscompile: a string equal to a case constant but not identical to it reached default, and every conversion is such a string because the parser cuts it out of the template. Dart 3.10.0 and later compiled the same code correctly, which is why no CI job saw it. Anything else was unaffected — a field with no conversion, a format specification, the whole printf mini-language, dart2js and the VM.

Both web suites now run on every SDK in the CI matrix rather than on stable alone.

format_intl 1.1.0

  • intl constraint widened from ^0.20.2 to >=0.19.0 <0.21.0, so the adapter installs alongside flutter_localizations from Flutter 3.27.0 rather than 3.32.0. flutter_localizations pins intl to one exact version, so a caret excluded the 0.19.0 half of the range outright.
  • SDK floor lowered to ^3.6.0, matching format.

The adapter reports whatever the resolved intl carries, and four of its 119 locales differ across the range — en_ZA, de_CH, gsw and it_CH. Three of those four already differed inside ^0.20.2. The README names them.