vgv-dart-flutter-sdk-upgrade

Par verygoodopensource · vgv-ai-flutter-plugin

Référence spécifique à VGV pour la mise à jour des contraintes de SDK Dart et Flutter dans les packages. Couvre les contraintes d'environnement dans `pubspec.yaml`, les versions Flutter dans les workflows CI, et la préparation des PR de mise à jour SDK. Le CI utilise `^MAJOR.MINOR.x` pour résoudre vers le dernier patch ; `pubspec` épingle la version de patch exacte (ex. : `^3.50.1`).

npx skills add https://github.com/verygoodopensource/vgv-ai-flutter-plugin --skill vgv-dart-flutter-sdk-upgrade

Mise à jour VGV Flutter/Dart SDK — Référence rapide

Une PR par projet. Uniquement les modifications du workflow CI et pubspec.yaml — pas de logique, pas de bump de version de dépendance, pas de modifications de tests.


Standards fondamentaux

Appliquez ces standards à TOUT travail de mise à jour SDK :

  • Les versions Flutter et Dart diffèrent — consultez toujours la version Dart fournie avec la version Flutter cible sur https://docs.flutter.dev/install/archive
  • CI utilise ^MAJOR.MINOR.x — wildcard de patch pour que CI récupère toujours le dernier patch
  • pubspec épingle le patch exact — utilisez ^MAJOR.MINOR.PATCH avec la version de patch spécifique
  • Paquets Dart pur — utilisez la version Dart directement, aucune correspondance Flutter nécessaire
  • Vérifiez avec pub get et analyze — ne résolvez pas silencieusement les conflits

0. Résoudre la version cible

Flutter fournit une version Dart spécifique — leurs numéros de version ne correspondent pas. Par exemple, Flutter 3.41.0 est livré avec Dart 3.11.0. Vous devez consulter la version Dart correcte pour la version Flutter cible avant de modifier tout fichier.

Comment trouver la version Dart :

  1. Ouvrez https://docs.flutter.dev/install/archive
  2. Trouvez la version Flutter stable cible
  3. Notez la version Dart affichée à côté

Si l'utilisateur n'a pas spécifié de version Flutter, consultez la dernière version Flutter stable sur cette même page. Pour les paquets Dart pur (sans dépendance Flutter), la version Dart est celle que l'utilisateur spécifie ou la dernière stable — aucune correspondance Flutter nécessaire.

Confirmez les deux versions résolues avec l'utilisateur avant de modifier les fichiers.


1. Workflows CI — .github/workflows/

Les paquets VGV utilisent des workflows réutilisables VeryGoodOpenSource/very_good_workflows. Laissez la balise @v1 intacte. Utilisez ^MAJOR.MINOR.x — caret avec le littéral x comme wildcard de patch pour que CI résolve toujours automatiquement le dernier patch de release. Lors du bump de versions, mettez à jour MAJOR et/ou MINOR selon les besoins (par ex., ^3.41.x^3.42.x ou ^4.0.x) :

Paquet Flutter :

uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/flutter_package.yml@v1
with:
  flutter_version: "^3.41.x" # ← caret + MAJOR.MINOR.x, résout le dernier patch

Paquet Dart pur — notez que la clé est dart_sdk, pas flutter_version. Utilisez la version Dart, pas la version Flutter :

uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/dart_package.yml@v1
with:
  dart_sdk: "^3.11.x" # ← version Dart (pas version Flutter)

Si un fichier utilise flutter_channel: stable au lieu d'une version épinglée, épinglez la version — VGV épingle toujours les versions Flutter dans les workflows CI.


2. Contraintes d'environnement pubspec.yaml

Le format est ^MAJOR.MINOR.PATCH (caret, patch exact). Contrairement à CI, pubspec épingle une version de patch spécifique — celle que l'utilisateur spécifie ou la version stable actuelle au moment du bump.

Paquet Flutter (a flutter: sous dependencies) :

environment:
  sdk: ^3.11.0 # ← version Dart fournie avec la version Flutter cible
  flutter: ^3.41.0 # ← version Flutter

Paquet Dart pur (sans dépendance Flutter SDK) :

environment:
  sdk: ^3.11.0 # ← version Dart uniquement
  # pas de ligne flutter:

Dans un monorepo, mettez à jour le pubspec.yaml de chaque paquet individuellement. Le workflow CI partagé ne doit être mis à jour qu'une seule fois.


3. Vérifier

Exécutez depuis le répertoire de chaque paquet. Utilisez les outils Dart/Flutter MCP si disponibles ; sinon Bash.

flutter pub get   # ou: dart pub get  (pour les paquets Dart pur)
flutter analyze   # ou: dart analyze

Si pub get échoue avec des conflits de dépendance, signalez-les — ne résolvez pas silencieusement en mettant à niveau les paquets. Si analyze révèle de nouvelles erreurs introduites par le bump SDK, signalez-les plutôt que de les corriger dans cette PR.


4. Vérification de la portée de la PR

Avant de committer, confirmez que le diff contient uniquement :

  • .github/workflows/*.yml
  • pubspec.yaml (un ou plusieurs)
git diff HEAD --name-only

Message de commit/PR suggéré :

chore: bump Flutter to 3.41.0 / Dart to 3.11.0

- Update flutter_version in .github/workflows/ to ^3.41.x (CI resolves latest patch)
- Update environment sdk/flutter constraints in pubspec.yaml

No logic or code changes.

Skills similaires