updating-package-versions

Guía la actualización de versiones de dependencias en paquetes publicados para evitar fallos de resolución en mono-repositorios.

npx skills add https://github.com/flutter/devtools --skill updating-package-versions

Updating Package Versions

When updating dependency versions in published package pubspec.yaml files (devtools_shared, devtools_app_shared, and devtools_extensions), follow these rules to protect the local mono-repo workspace graph:

  • Version Decisions: Decide if it should be a major, minor, or patch version based on your edits:
    • Breaking changes: Major bump (+1 to first component, others reset to 0). E.g., removals of public constants, properties, getters/setters, or APIs.
    • New features or deprecation start: Minor bump (+1 to second component, patch resets to 0).
    • Bug fixes and non-breaking changes: Patch bump (+1 to third component).
  • Match Exact Versions: Always use the actual version specified in the target package's pubspec.yaml file.
  • Suffix Preservation: If a requested version contains a suffix like -wip (e.g., 13.0.0-wip), the full string MUST be used in dependency constraints (e.g., devtools_shared: ^13.0.0-wip).
  • Prevent Graph Failures: Do not drop the suffix or estimate the base version tags. Version solver operations will fail in the local workspace if dependencies point to published strings that can't be resolved in non-published repositories.
  • No Dependencies on Unpublished Packages: Published packages (devtools_shared, devtools_app_shared, and devtools_extensions) MUST NOT depend on unpublished packages like devtools_app or devtools_test.
  • Resolution Testing: After updating versions, run flutter pub get in the repository to ensure version solving is satisfied. If this returns errors, you should fix the errors and try again.
  • Updating devtools_app: In packages/devtools_app/pubspec.yaml:
    • Dependencies on published packages do not have version constraints. This is intentional; do not change this when updating versions.
    • Always use the dt update-version tool to update the devtools_app version.
    • This should only be updated for monthly releases and cherry pick releases, so perform this update only when explicitly asked to.

Más skills de flutter

dart-modern-features
flutter
Para encontrar candidatos para la modernización:
flutter-fix-layout-issues
flutter
Corrige errores de diseño en Flutter (desbordamientos, restricciones ilimitadas) usando herramientas Dart y Flutter MCP. Úsalo al abordar "RenderFlex overflowed", "Vertical…
adding-release-notes
flutter
Añade descripciones de cambios visibles para el usuario a las notas de la versión de DevTools. Úsalo al documentar mejoras, correcciones o nuevas funciones en el archivo NEXT_RELEASE_NOTES.md.
reviewing-devtools-prs
flutter
Flujo de trabajo de revisión de PR específico del repositorio de DevTools que aplica las guías de estilo de DevTools y los patrones de revisión comunes. Úsalo al revisar solicitudes de extracción en el…
dart-use-primary-constructors
flutter
Ayuda a los usuarios a escribir constructores primarios sintáctica y semánticamente correctos en Dart, y a migrar/utilizar la nueva sintaxis de constructor, la sintaxis de punto y coma de cuerpo vacío,…
code-documentation
flutter
Guía para escribir documentación de código efectiva, que incluye docstrings, JSDoc, dartdoc y comentarios de implementación. Usa esta habilidad al escribir código nuevo, agregar…
api-review
flutter
Revisa el código especificado conforme a las pautas canónicas de diseño de API. Usa esta habilidad cuando el usuario solicite una revisión de API o quiera verificar el código según las pautas de diseño de API…
flutter-accessibility
flutter
Implementa los estándares de accesibilidad WCAG 2 y EN 301 549 y diseños adaptativos en aplicaciones Flutter. Aplica anotaciones semánticas, tamaños de destino táctil (mínimo 48x48 dp) y relaciones de contraste de texto (4.5:1 para texto pequeño, 3:1 para texto grande) en plataformas móviles, web y de escritorio. Proporciona lógica de decisión para la inicialización de semántica web, envoltura de widgets interactivos, cambio de diseño basado en tamaño de pantalla y manejo de entrada por teclado/ratón. Incluye gestión de enfoque de navegación mediante FocusTraversalGroup y...