Orígenes de nivel superior
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017
Los orígenes ascendentes permiten usar una sola fuente para almacenar paquetes de orígenes diferentes: los que publica y los que consume de fuentes y registros públicos, como NuGet.org, npmjs.com, Maven Central y PyPI. Una vez que se habilita un origen ascendente, cualquier usuario conectado a la fuente puede instalar un paquete de nivel superior y se guardará una copia en la fuente.
Nota
Actualmente, los orígenes ascendentes personalizados solo se admiten para npm.
Ventajas
Los orígenes ascendentes permiten administrar todas las dependencias del producto en una sola fuente. La publicación de todos los paquetes en una sola fuente tiene algunas ventajas:
- Simplicidad: el archivo de configuración, como NuGet.config, .npmrc o settings.xml contendrá solo una fuente para que sea menos propensa a errores y errores.
- Determinismo: la fuente resuelve las solicitudes de paquete en orden, por lo que la recompilación del código será más coherente.
- Origen: la fuente conoce la procedencia de los paquetes que guardó de los orígenes ascendentes, por lo que puede comprobar que usa el paquete original y no una copia o un paquete malintencionado.
- Tranquilidad: se guardará una copia en la fuente para cualquier paquete instalado desde orígenes ascendentes. Por lo tanto, si el origen ascendente está deshabilitado, eliminado o en mantenimiento, puede seguir desarrollando y compilando porque tiene una copia de ese paquete en la fuente.
Procedimientos recomendados: consumidores de paquetes
Para aprovechar al máximo las ventajas de los orígenes ascendentes como consumidor de paquetes, siga estos procedimientos recomendados:
Uso de una sola fuente en el archivo de configuración
Para que la fuente proporcione una restauración determinista,es importante asegurarse de que el archivo de configuración, como nuget.config o .npmrc, solo hace referencia a una fuente con los orígenes ascendentes habilitados.
Ejemplo:
nuget.config
<packageSources> <clear /> <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" /> </packageSources>
Nota
La etiqueta es necesaria porque NuGet varios archivos de <clear /><clear /> para determinar el conjunto completo de opciones que se usarán. <clear />indica NuGet omitir todos los demás <packageSources> definidos en los archivos de configuración de nivel superior.
.npmrc:
registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/ always-auth=true
Ordenar los orígenes ascendentes intencionadamente
Si solo usa registros públicos, como nuget.org o npmjs.com, el orden de los orígenes ascendentes es irrelevante. Las solicitudes a la fuente seguirán el orden de búsqueda.
Si usa varios orígenes, como una mezcla de fuentes y registros públicos, se busca cada canal de subida en el orden en que se muestra en los valores de configuración de la fuente. En este caso, se recomienda colocar primero los registros públicos en la lista de orígenes ascendentes.
En raras ocasiones, algunas organizaciones deciden modificar los paquetes del sistema operativo para corregir problemas de seguridad, agregar funcionalidad o satisfacer los requisitos de que el paquete se crea desde cero internamente, en lugar de consumirse directamente desde el repositorio público. Si su organización sigue este patrón, coloque el origen ascendente que contiene estos paquetes modificados del sistema operativo antes que los administradores de paquetes públicos para asegurarse de que usa las versiones modificadas de la organización.
Uso de la vista predeterminada sugerida
Al agregar una fuente remota como origen ascendente, debe seleccionar la vista de su fuente. Esto permite que los orígenes ascendentes construya un conjunto de paquetes disponibles. Consulte gráficos de paquetes completos para obtener más detalles.
Procedimientos recomendados: propietarios de fuentes o publicadores de paquetes
Nota
Los orígenes ascendentes no se admiten en fuentes públicas.
Para asegurarse de que la fuente se configura fácilmente como origen ascendente, considere la posibilidad de aplicar los siguientes procedimientos recomendados:
Uso de la vista predeterminada
La @local vista es la vista predeterminada para todas las fuentes recién creadas. Contiene todos los paquetes publicados en la fuente o guardados desde orígenes ascendentes.
Si desea usar vistas para publicar nuevas versiones de paquete, puede promover el paquete a una vista como y hacer que esté @release disponible para los consumidores.
Construcción de un gráfico de paquetes
Cuando una fuente consulta su origen ascendente para un paquete, Azure Artifacts los paquetes en la vista que se configuró para ese origen ascendente específico. Para construir un gráfico de paquetes, simplemente conéctese a la vista predeterminada de la fuente e instale el paquete que desea compartir. Cuando el paquete se instala correctamente en la vista predeterminada, los usuarios que quieran consumirlo podrán resolver el gráfico del paquete e instalar el paquete deseado.
Orden de búsqueda
En el caso de los administradores de paquetes públicos que admiten varias fuentes (NuGet y Maven), el orden en el que se consultan las fuentes a veces es poco claro o no determinista. Por ejemplo, en NuGet, las consultas paralelas se realizan en todas las fuentes del archivo de configuración y las respuestas se procesan primero en in, primero en salir FIFO.
Los orígenes ascendentes evitan este comportamiento no determinista buscando en la fuente y sus orígenes ascendentes con el orden siguiente:
Paquetes que se insertan en la fuente.
Paquetes guardados desde un origen ascendente.
Paquetes disponibles desde orígenes ascendentes: cada canal de subida se busca en el orden en que se muestra en la configuración de la fuente.
Para aprovechar al máximo la característica de búsqueda rápida, se recomienda incluir solo una fuente en el archivo de configuración.
Guardar paquetes de orígenes ascendentes
Al habilitar orígenes ascendentes para la fuente, los paquetes instalados desde orígenes ascendentes se guardarán automáticamente en la fuente. Estos paquetes se pueden instalar directamente desde el canal de subida como se muestra a continuación o se pueden instalar como parte de una resolución de dependencias (la instalación también guardaría dependencias npm install expressexpress como accepts ).
Guardar paquetes puede mejorar el rendimiento de descarga y ahorrar ancho de banda de red, especialmente para servidores TFS en redes internas.
Invalidar paquetes de orígenes ascendentes
Al habilitar los orígenes ascendentes, debe tener en cuenta que no será posible publicar una versión del paquete que ya existe en la fase ascendente. Por ejemplo, cuando se habilita la NuGet.org ascendente, no se puede publicar el paquete porque esa misma versión del paquete ya está Newtonsoft.Json 10.0.3 presente NuGet.org.
Si debe publicar una versión del paquete que ya existe en uno de los orígenes ascendentes, debe deshabilitar ese origen ascendente, publicar el paquete y, a continuación, volver a habilitar el origen ascendente.
Nota
Solo puede publicar una versión del paquete que no se guardó previamente desde el nivel superior. Los paquetes guardados permanecen en la fuente incluso si el origen ascendente está deshabilitado o quitado.
Estado de mantenimiento
Si una fuente tiene un origen ascendente con errores, los metadatos ya no se pueden actualizar para los paquetes del mismo protocolo. Para ver el estado de mantenimiento del
origen ascendente, seleccione el icono de engranaje para acceder a la configuración de fuente y, a continuación, seleccione Orígenes ascendentes.
Si se produce algún error, se mostrará un mensaje de advertencia. La página de configuración también indicará cuál de los orígenes ascendentes está fallando. Al seleccionar el canal ascendente con errores se proporcionarán más detalles, como el motivo del error e instrucciones sobre cómo resolverlo.
Nota
En el caso de los registros públicos, como NuGet.org, hay un retraso de 3 a 6 horas entre el momento en que se inserta un paquete en el registro público y cuando está disponible para su descarga en la fuente. Este retraso depende del tiempo del trabajo y de la propagación de datos. no es una latencia cuando el origen ascendente es una Azure Artifacts fuente.
Orígenes ascendentes sin conexión
Los orígenes ascendentes son una excelente manera de proteger a los consumidores y la infraestructura frente a interrupciones no planeadas. Al instalar un paquete desde un origen ascendente, se guarda una copia de ese paquete en la fuente. Si el origen ascendente está fuera de servicio, en mantenimiento o no disponible, todavía puede acceder a los paquetes que necesita desde la fuente.
Preguntas más frecuentes
P: ¿No puedo ver mi paquete aunque pueda verlo en uno de los ascendentes de la fuente?
A. Los paquetes que pertenecen a un nivel superior están disponibles de bajada poco después de su publicación. Sin embargo, el paquete solo se mostrará en la interfaz de usuario de la fuente una vez que se hayan ingerido, lo que requiere instalar la versión del paquete por primera vez en la fuente de bajada.
P: ¿Qué son las vistas de fuente?
A. Las vistas permiten a los desarrolladores compartir solo un subconjunto de versiones de paquetes que se han probado y validado y excluido los paquetes que aún están en desarrollo o que no cumplen la barra de calidad. Consulte ¿Qué son las vistas de fuente? para obtener más detalles.
P: ¿No encuentro la fuente que quiero configurar como ascendente?
A. Asegúrese de que el propietario de la fuente comparte una vista como origen ascendente.