Resumen

Completado

En este módulo se explican las estrategias de control de versiones para el empaquetado, los procedimientos recomendados para el control de versiones y los flujos de trabajo de promoción de paquetes. Ha aprendido conceptos esenciales para administrar las versiones de paquetes a lo largo del ciclo de vida de desarrollo de software.

Lo que ha aprendido

Ha aprendido a describir las ventajas y el uso de:

Implementación de una estrategia de control de versiones

  • Importancia de la versión: Reconozca por qué el control de versiones adecuado es fundamental para la administración de dependencias y la estabilidad del software.
  • Paquetes inmutables: Comprender que los paquetes publicados no se pueden cambiar; solo se pueden publicar nuevas versiones.
  • Tipos de versión: Entender los incrementos en la versión principal, secundaria y de revisión y cuándo se debe usar cada uno.
  • Control de versiones específico del paquete: Implemente el control de versiones para diferentes tipos de paquete (NuGet, npm, Maven, Python, Paquetes universales).

Comprendiendo el versionado semántico

  • Formato SemVer 2.0: Aplique el versionado Major.Minor.Patch para asegurar una comunicación coherente.
  • Cambios decisivos: Utilice versiones principales para indicar cambios de API incompatibles.
  • Nuevas características: Use versiones menores para adiciones compatibles con versiones anteriores.
  • Correcciones de errores: Use versiones de parche para correcciones compatibles con versiones anteriores.
  • Etiquetas de versión preliminar: Use etiquetas (alfa, beta, rc) para indicar la calidad de la versión preliminar.
  • Precedencia de versión: Comprenda cómo se comparan y ordenan las versiones.

Uso de vistas de Azure Artifacts

  • Tres vistas predeterminadas: aproveche las vistas de @Local, @Prerelease, y @Release.
  • @Vista local: Contiene todos los paquetes, incluidos los de fuentes ascendentes.
  • Vista @Prerelease: filtra a paquetes con etiquetas de versión preliminar.
  • @Vista de lanzamiento: Muestra solo los paquetes listos para producción.
  • URI específicos de la vista: configure los consumidores de paquetes para usar vistas específicas.
  • Vistas personalizadas: Cree vistas adicionales para niveles de calidad más específicos.

Promoción de paquetes

  • Puertas de calidad: Use la promoción para mover los paquetes a través de los niveles de calidad.
  • Flujo de trabajo de promoción: implemente la progresión @Local → @Prerelease → @Release.
  • Promoción automatizada: Use tareas de Azure Pipelines para automatizar la promoción en función de los resultados de las pruebas.
  • Promoción manual: Aplicar puertas de aprobación manuales para paquetes críticos.
  • Protección de retención: Comprenda que los paquetes promocionados están protegidos contra la eliminación.
  • Paquetes de origen: Administrar la promoción de paquetes de origen almacenados en caché.

Inserción de paquetes desde canalizaciones

  • Publicación automatizada: configure canalizaciones de compilación para publicar automáticamente paquetes en repositorios.
  • Generación de versiones: Implemente la generación automatizada de números de versión en CI/CD.
  • Metadatos del paquete: Incluya metadatos completos en paquetes.
  • Etiquetado de origen: Etiquete el código fuente con versiones de paquete para la rastreabilidad.

Aplicación de procedimientos recomendados

  • Estrategia documentada: Mantenga la documentación de la estrategia de control de versiones escrita.
  • Adopción de SemVer: Estandarizarse en el versionado semántico 2.0.
  • Fuente única por repositorio: Configure cada repositorio para que haga referencia solo a una fuente.
  • Publicación automatizada: Publicar paquetes automáticamente al crearlos.
  • Probar antes de promover: Siempre pruebe los paquetes antes de promoverlos a niveles superiores.
  • Alineación de equipos: integre el control de versiones en la definición de Hecho.

Resumen de conceptos clave

Inmutabilidad de la versión

  • Nunca cambie las versiones publicadas: Los paquetes publicados son inmutables.
  • Cree siempre nuevas versiones: Cualquier cambio requiere un nuevo número de versión.
  • Confianza y confiabilidad: Los consumidores confían en que las versiones no cambian.

Principios de versionado semántico

  • Major.Minor.Patch: Número de versión de tres partes.
  • Comunicación clara: El número de versión indica el ámbito de los cambios.
  • Retrocompatibilidad: Las versiones menores y de parche mantienen la compatibilidad.
  • Etiquetas de versión preliminar: Indique el nivel de calidad con etiquetas.

Vistas de Azure Artifacts

  • Indicadores de calidad: las vistas separan los paquetes por nivel de calidad.
  • Flujo de trabajo de promoción: La promoción explícita mueve los paquetes a través de vistas.
  • Elección del consumidor: Los consumidores eligen la opción en función de la tolerancia al riesgo.
  • Protección de retención: Paquetes promocionados protegidos contra la eliminación.

Ventajas de automatización

  • Consistencia: Los procesos automatizados reducen el error humano.
  • Velocidad: Ciclos de lanzamiento más rápidos con automatización.
  • Puertas de calidad: Pruebas automatizadas antes de la promoción.
  • Trazabilidad: Cada construcción produce un artefacto rastreable.

Pasos siguientes

Continuar aprendiendo

Mejore sus aptitudes de control de versiones:

  • Flujos de trabajo de promoción avanzada: Implementar promoción en múltiples etapas con puertas de aprobación.
  • Administración del intervalo de versiones: Comprenda los intervalos y restricciones de la versión de dependencia.
  • Estrategias de ramificación: alinee el control de versiones con estrategias de ramificación (Gitflow, con base troncal).
  • Control de versiones de correcciones: controle correctamente las correcciones y la portabilidad con versiones anteriores.

Explorar escenarios avanzados:

  • Control de versiones de un repositorios: paquetes de versión en repositorios de un solo repositorio.
  • Gestión de cambios disruptivos: Estrategias para dejar de usar y eliminar funcionalidades.
  • Anclaje de versiones: Controlar cuándo los consumidores adoptan nuevas versiones.
  • Automatización del registro de cambios: Genere registros de cambios automáticamente a partir de confirmaciones.

Aplicación práctica

Empiece a implementar:

  1. Documente su estrategia: Escribir directrices de control de versiones para el equipo.
  2. Adopta SemVer 2.0: Estandariza en el versionado semántico.
  3. Configurar fuentes y vistas: configure vistas @Local, @Prerelease y @Release.
  4. Automatización del control de versiones: Implemente la generación de versiones automatizada en canalizaciones de compilación.
  5. Configurar flujos de trabajo de promoción: Definir y automatizar la promoción de paquetes.
  6. Entrenar al equipo: Asegúrese de que todo el mundo entiende y sigue la estrategia de control de versiones.

Integración con prácticas de DevOps

Control de versiones en flujos de trabajo de DevOps:

  • Integración continua: Automatización de la compilación y publicación de paquetes.
  • Entrega continua: Use flujos de trabajo de promoción para versiones controladas.
  • Infraestructura como código: Paquetes de infraestructura de versión junto con paquetes de aplicación.
  • Marcas de características: combine el control de versiones con marcas de características para lanzamientos graduales.

Más información

Documentación oficial

Recursos adicionales

Guías específicas del tipo de paquete

Herramientas y automatización

  • GitVersion : control de versiones automatizado desde el historial de Git.
  • semantic-release : administración de versiones totalmente automatizada y publicación de paquetes.
  • CLI de Azure DevOps : herramientas de línea de comandos para la automatización de Azure Artifacts.

Comunidad y soporte técnico

  • Documentación de Azure DevOps: Explore guías y tutoriales completos.
  • Preguntas y respuestas de Microsoft: Formular preguntas y obtener respuestas de la comunidad.
  • Blog de Azure DevOps: Manténgase actualizado con las características y procedimientos recomendados más recientes.
  • Ejemplos de GitHub: Explore las canalizaciones y configuraciones de ejemplo.