Análisis de las vistas de versión
Al compilar paquetes desde una canalización, el paquete debe contar con una versión antes de ser consumido y probado.
Solo después de realizar pruebas es la calidad del paquete conocido.
Dado que las versiones del paquete no se pueden cambiar y no deben cambiarse, resulta difícil elegir una versión específica de antemano.
Niveles de calidad y vistas
Azure Artifacts reconoce el nivel de calidad de los paquetes en sus fuentes y la diferencia entre las versiones de lanzamiento y las preliminares.
Ofrece vistas diferentes en la lista de paquetes y sus versiones, separando estas en función de su nivel de calidad.
El desafío:
- Versión en primer lugar: El paquete debe tener una versión antes de realizar las pruebas.
- Calidad desconocida: La calidad se determina después de las pruebas.
- Inmutabilidad: No se puede cambiar la versión después de la publicación.
- Solución: Use vistas para indicar la calidad sin cambiar la versión.
Perspectivas como descriptores de calidad
Se adapta bien al uso del versionado semántico de los paquetes para predecir la intención de una versión determinada.
Aun así, sus metadatos adicionales de la fuente de Azure Artifacts se conocen como descriptor.
Las vistas proporcionan:
- Indicador de calidad: Separar paquetes por nivel de madurez.
- Elección del consumidor: Permitir que los consumidores elijan el nivel de calidad.
- Flujo de trabajo de promoción: traslado de paquetes a través de puertas de calidad.
- Inmutabilidad mantenida: La versión del paquete no cambia.
Vistas de fuente predeterminadas
Las fuentes de Azure Artifacts tienen tres vistas diferentes de forma predeterminada. Estas vistas se añaden cuando se crea un nuevo feed (fuente).
Las tres vistas predeterminadas
1. @Local vista
La vista @Local incluye todos los paquetes de versiones de lanzamiento y preliminares, y los paquetes descargados de fuentes ascendentes.
Características:
- Fuente completa: Muestra todos los paquetes independientemente del estado de promoción.
- Paquetes ascendentes: Incluye paquetes almacenados en caché de orígenes ascendentes.
- Vista predeterminada: Se usa de forma predeterminada cuando no se especifica ninguna vista.
- Uso del desarrollo: Normalmente se usa durante el desarrollo.
Casos de uso:
- Compilaciones de desarrollo: Los desarrolladores prueban los paquetes más recientes.
- Compilaciones de CI: Cree canalizaciones que necesiten todas las versiones del paquete.
- Detección de paquetes: Búsqueda de todos los paquetes disponibles.
2. @Prerelease vista
La @Prerelease vista contiene todos los paquetes que tienen una etiqueta en su número de versión.
Características:
-
Solo versiones etiquetadas: Solo muestra versiones con etiquetas de versión preliminar (por ejemplo,
1.0.0-beta). - Puerta de calidad: Los paquetes promocionados aquí han superado las comprobaciones de calidad iniciales.
- Fase de prueba: Indica los paquetes listos para pruebas más amplias.
- No listo para producción: No se recomienda para su uso en producción.
Casos de uso:
- Pruebas de control de calidad: Los equipos de control de calidad prueban versiones preliminares.
- Pruebas beta: Los usuarios pioneros prueban nuevas características.
- Pruebas de integración: Prueba de la integración con otros sistemas.
3. @Release vista
La @Release vista contiene todos los paquetes que se consideran versiones oficiales.
Características:
- Listo para producción: Solo contiene paquetes aprobados para producción.
- Sin etiquetas: Normalmente solo contiene versiones sin etiquetas de versión preliminar.
- Versiones estables: Nivel de calidad más alto.
- Compatibilidad: Los paquetes en estas vistas tienen soporte oficial.
Casos de uso:
- Implementaciones de producción: Aplicaciones implementadas en producción.
- Compilaciones estables: Compilaciones de lanzamiento para los usuarios.
- Versiones oficiales: Paquetes distribuidos a los usuarios finales.
Uso de vistas
Puede utilizar las vistas a fin de ofrecer ayuda a los consumidores de una fuente de paquetes para filtrar entre versiones de paquetes publicadas y no publicadas.
Básicamente, permite a un consumidor tomar una decisión consciente de elegir entre paquetes liberados o participar en versiones preliminares de un determinado nivel de calidad.
Formato de URI de vista predeterminado
De forma predeterminada, la @Local vista se usa para ofrecer la lista de paquetes disponibles. El formato de este URI es el siguiente:
https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}/nuget/v3/index.json
Componentes:
- {organization}: Nombre de la organización de Azure DevOps.
- {feedname}: nombre de la fuente.
- No se ha especificado ninguna vista: La vista predeterminada es @Local.
Example:
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json
Formato de URI específico de la vista
Al consumir una fuente de paquetes por su punto de conexión de URI, la dirección puede incluir la vista solicitada. En el caso de una vista específica, el URI incluye el nombre de esta, que se convierte en:
https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}@{Viewname}/nuget/v3/index.json
Vista-específicos ejemplos:
# @Local view (explicit)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Local/nuget/v3/index.json
# @Prerelease view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Prerelease/nuget/v3/index.json
# @Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json
Filtrado automático de vistas
El conjunto de herramientas mostrará y usará automáticamente los paquetes de la vista especificada.
Comportamiento del administrador de paquetes:
- Filtrado de vistas: Solo los paquetes de la vista especificada son visibles.
- Resolución automática: La resolución de dependencias solo usa paquetes visibles.
- Transparente: No se necesita ninguna configuración adicional.
Vistas entre tipos de paquete
Las vistas funcionan de forma coherente en todos los tipos de paquete:
NuGet
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json
npm
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/npm/registry/
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/npm/registry/
Maven
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/maven/v1
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/maven/v1
Pitón
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/pypi/simple/
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/pypi/simple/
Etiqueta de versión preliminar frente a vista
Las herramientas pueden ofrecer una opción para seleccionar versiones preliminares, como se muestra en este cuadro de diálogo de NuGet de Visual Studio 2017.
Distinción importante:
No se relaciona ni hace referencia a la vista @Prerelease de una fuente. En su lugar, se basa en la presencia de etiquetas de versión preliminar del control de versiones semántico para incluir o excluir paquetes en los resultados de la búsqueda.
Dos conceptos independientes:
Etiquetas de versión preliminar (SemVer)
-
Basado en versiones: Parte del número de versión (por ejemplo,
1.0.0-beta). - Control de versiones semántico: Sigue las convenciones de SemVer.
- Característica del administrador de paquetes: Los administradores de paquetes pueden filtrar en función de las etiquetas.
- Universal: Funciona en todos los sistemas de paquetes.
Example:
1.0.0-alpha.1 ← Prerelease label
1.0.0 ← Stable version
@Prerelease vista (Azure Artifacts)
- Metadatos de fuente: Indicador de calidad específico de Azure Artifacts.
- Basados en promociones: paquetes promocionados para esta vista.
- Puerta de calidad: Indica un determinado nivel de calidad.
- Específico de Azure: Solo se aplica a las fuentes de Azure Artifacts.
Cómo funcionan juntos:
- Complementario: Ambos ayudan a administrar la calidad del paquete.
- Independiente: Un paquete puede tener una etiqueta, pero no estar visible en @Prerelease.
- Flujo de trabajo: normalmente, las versiones etiquetadas se promocionan a la vista @Prerelease.
Configuración de consumidores de paquetes
Configuración de desarrollo
Utilice la vista @Local para el desarrollo activo:
# NuGet - Add source with Local view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json" --name MyFeed-Local
# npm - Configure in .npmrc
registry=https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/npm/registry/
Configuración de QA/Testing
Utiliza @Prerelease vista para pruebas:
# NuGet - Add source with Prerelease view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Prerelease/nuget/v3/index.json" --name MyFeed-Prerelease
Configuración de producción
Utilice la vista @Release para producción:
# NuGet - Add source with Release view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json" --name MyFeed-Release
# npm - Configure in .npmrc for production
registry=https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/npm/registry/
Vistas personalizadas
Además de las tres vistas predeterminadas, puede crear vistas personalizadas para niveles de calidad más específicos.
Ejemplos de vistas personalizadas:
- @Alpha: Versiones muy tempranas.
- @Beta: Versiones de prueba con todas las características integradas.
- @RC: Lanzamiento de versiones candidatas.
- @Stable: Versiones estables a largo plazo.
Creación de vistas personalizadas:
- Vaya a la configuración del feed: Vaya a su feed en Azure Artifacts.
- Pestaña Vistas: Seleccione la sección Vistas.
- Agregar vista: Seleccione "Agregar vista" y proporcione un nombre.
- Configurar: Establecer reglas de visibilidad y promoción.
Visualización de las ventajas
Control de calidad:
- Versiones graduales: mueva los paquetes a través de puertas de calidad.
- Mitigación de riesgos: Evitar paquetes no probados en producción.
- Comunicación clara: Las vistas indican el nivel de calidad.
Flexibilidad del consumidor:
- Elección: Los consumidores eligen su tolerancia al riesgo.
- Inscripción voluntaria: Elija conscientemente las versiones preliminares.
- Seguridad: Los sistemas de producción solo ven los paquetes publicados.
Integración del flujo de trabajo:
- CI/CD: integre la promoción en canalizaciones.
- Automatización: Automatice la promoción en función de los resultados de las pruebas.
- Gobernanza: refuerce las puertas de calidad mediante vistas.
Consulte también: