Resumen
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:
- Documente su estrategia: Escribir directrices de control de versiones para el equipo.
- Adopta SemVer 2.0: Estandariza en el versionado semántico.
- Configurar fuentes y vistas: configure vistas @Local, @Prerelease y @Release.
- Automatización del control de versiones: Implemente la generación de versiones automatizada en canalizaciones de compilación.
- Configurar flujos de trabajo de promoción: Definir y automatizar la promoción de paquetes.
- 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
- Conceptos clave de Azure Artifacts : guía completa sobre los conceptos de Azure Artifacts, incluida la inmutabilidad del paquete.
- Publicación y descarga de paquetes universales: Azure Artifacts | Microsoft Learn : guía de inicio rápido para paquetes universales en Azure Artifacts.
- Introducción a paquetes NuGet: Azure Artifacts | Microsoft Learn : guía completa sobre la administración de paquetes NuGet en Azure Artifacts.
Recursos adicionales
- Versionamiento semántico 2.0.0 : especificación oficial de versiones semánticas.
- Vistas de Azure Artifacts: explicación detallada de las vistas de fuente y la promoción.
- Procedimientos recomendados para usar Azure Artifacts: procedimientos recomendados completos para Azure Artifacts.
- Versionado de paquetes en Azure Pipelines - guía para el versionado de paquetes en canalizaciones de CI/CD.
- Vistas de fuente para la promoción de paquetes: procedimiento para comunicar la calidad del paquete mediante vistas.
Guías específicas del tipo de paquete
- Control de versiones de paquetes NuGet : directrices de control de versiones específicas de NuGet.
- Control de versiones semánticas de npm: npm y control de versiones semánticas.
- Control de versiones de Maven : control de versiones del proyecto de Maven.
- Especificadores de versión de empaquetado de Python - Especificadores de versión PEP 440.
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.