Examinar exibições de lançamento

Concluído

Ao criar pacotes de um pipeline, o pacote precisa ter uma versão antes de ser consumido e testado.

Somente após o teste é a qualidade do pacote conhecido.

Como as versões do pacote não podem e não devem ser alteradas, torna-se desafiador escolher uma versão específica com antecedência.

Níveis de qualidade e visualizações

O Azure Artifacts reconhece o nível de qualidade dos pacotes em seus feeds e a diferença entre versões de pré-lançamento e lançamento.

Ele oferece diferentes modos de exibição na lista de pacotes e suas versões, separando-os com base em seu nível de qualidade.

O desafio:

  • Versão primeiro: o pacote deve ter uma versão definida antes do teste.
  • Qualidade desconhecida: A qualidade é determinada após o teste.
  • Imutabilidade: Não é possível alterar a versão após a publicação.
  • Solução: Use exibições para indicar a qualidade sem alterar a versão.

Exibições como descritores de qualidade

Ele se encaixa bem com o uso de versionamento semântico dos pacotes, permitindo prever a intenção de uma versão específica.

Ainda assim, seus metadados extras do feed do Azure Artifacts são chamados de descritor.

Os modos de exibição fornecem:

  • Indicador de qualidade: Separar pacotes por nível de maturidade.
  • Escolha do consumidor: Permitir que os consumidores escolham o nível de qualidade.
  • Fluxo de trabalho de promoção: mover pacotes por meio de gates de qualidade.
  • A Imutabilidade foi mantida: A versão do pacote não é alterada.

Visões padrão do feed

Os feeds no Azure Artifacts têm três exibições diferentes por padrão. Essas exibições são adicionadas quando um novo feed é criado.

As três exibições padrão

1. exibição @Local

A exibição @Local contém todos os pacotes de lançamento e pré-lançamento e os pacotes baixados de fontes upstream.

Características:

  • Feed completo: Mostra todos os pacotes, independentemente do status de promoção.
  • Pacotes upstream: Inclui pacotes armazenados em cache de fontes upstream.
  • Modo de exibição padrão: Usado por padrão quando nenhuma exibição é especificada.
  • Uso de desenvolvimento: Normalmente usado durante o desenvolvimento.

Casos de uso:

  • Compilações de desenvolvimento: desenvolvedores testando os pacotes mais recentes.
  • Compilações de CI: pipelines de build que precisam de todas as versões de pacotes.
  • Descoberta de pacote: Localizando todos os pacotes disponíveis.

2. @Prerelease exibição

A exibição @Prerelease contém todos os pacotes que têm um rótulo no número da versão.

Características:

  • Somente versões rotuladas: Mostra apenas versões com rótulos de pré-lançamento (por exemplo, 1.0.0-beta).
  • Portão de qualidade: Os pacotes promovidos aqui passaram por verificações de qualidade iniciais.
  • Fase de teste: Indica pacotes prontos para testes mais amplos.
  • Não pronto para produção: Não recomendado para uso em produção.

Casos de uso:

  • Teste de QUALIDADE: Equipes de garantia de qualidade testando versões de pré-lançamento.
  • Teste beta: Adotadores iniciais testando novos recursos.
  • Teste de integração: Testar a integração com outros sistemas.

3. Exibição @Release

A exibição @Release contém todos os pacotes considerados lançamentos oficiais.

Características:

  • Pronto para produção: Contém apenas pacotes aprovados para produção.
  • Sem rótulos: Normalmente, contém apenas versões sem rótulos de pré-lançamento.
  • Versões estáveis: Nível de qualidade mais alto.
  • Suportado: Os pacotes nessa exibição têm suporte oficial.

Casos de uso:

  • Implantações de produção: Aplicativos implantados em produção.
  • Compilações estáveis: compilações de lançamento para clientes.
  • Versões oficiais: Pacotes distribuídos para usuários finais.

Usando exibições

Você pode usar exibições para ajudar os consumidores de um feed de pacotes a filtrar entre versões lançadas e não lançadas de pacotes.

Essencialmente, permite que um consumidor tome uma decisão consciente de escolher entre pacotes liberados ou aceitar pré-lançamentos de um determinado nível de qualidade.

Formato de URI de exibição padrão

Por padrão, o modo de exibição@Local é usado para oferecer a lista de pacotes disponíveis. O formato desse URI é:

https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}/nuget/v3/index.json

Componentes:

  • {organization}: O nome da sua organização do Azure DevOps.
  • {feedname}: O nome do feed.
  • Nenhuma exibição especificada: O padrão é exibir @Local .

Example:

https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json

Formato de URI específico da visualização

Ao consumir um feed de pacotes pelo URI do ponto de extremidade, o endereço pode incluir a exibição solicitada. Para uma exibição específica, o URI inclui o nome da exibição, que muda para:

https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}@{Viewname}/nuget/v3/index.json

Exemplos específicos da exibição:

# @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

Filtragem automática de exibição

As ferramentas de desenvolvimento mostrarão e usarão automaticamente os pacotes da visão especificada.

Comportamento do gerenciador de pacotes:

  • Filtragem de exibição: Somente os pacotes no modo de exibição especificado são visíveis.
  • Resolução automática: A resolução de dependência usa apenas pacotes visíveis.
  • Transparente: Nenhuma configuração adicional é necessária.

Exibições entre tipos de pacote

As exibições funcionam consistentemente em todos os tipos de pacote:

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

Python

# 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/

Rótulo de pré-lançamento versus visualização

As ferramentas podem oferecer uma opção para selecionar versões de pré-lançamento, como mostrado nesta caixa de diálogo NuGet do Visual Studio 2017.

Distinção importante:

Ele não se relaciona nem se refere à exibição @Prerelease de um feed. Em vez disso, ele depende da presença de rótulos de pré-lançamento do controle de versão semântico para incluir ou excluir pacotes nos resultados da pesquisa.

Dois conceitos separados:

Rótulos de pré-lançamento (SemVer)

  • Baseado em versão: Parte do número da versão (por exemplo, 1.0.0-beta).
  • Controle de versão semântico: Segue as convenções do SemVer.
  • Recurso do gerenciador de pacotes: Os gerenciadores de pacotes podem filtrar com base em rótulos.
  • Universal: Funciona em todos os sistemas de pacotes.

Example:

1.0.0-alpha.1  ← Prerelease label
1.0.0          ← Stable version

Exibição @Prerelease (Azure Artifacts)

  • Metadados de feed: Indicador de qualidade específico do Azure Artifacts.
  • Baseado em promoção: pacotes promovidos para essa exibição.
  • Portão de qualidade: Indica um determinado nível de qualidade.
  • Específico do Azure: Aplica-se somente aos feeds do Azure Artifacts.

Como eles trabalham juntos:

  • Complementares: Ambas ajudam a gerenciar a qualidade de pacotes.
  • Independente: um pacote pode ter um rótulo, mas não estar na exibição @Prerelease.
  • Fluxo de trabalho: normalmente, as versões rotuladas são promovidas para a exibição @Prerelease.

Configurando clientes de pacotes

Configuração de desenvolvimento

Use o modo @Local de exibição para desenvolvimento ativo:

# 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/

Configuração de QA/Teste

Use o modo @Prerelease de exibição para teste:

# 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

Configuração de produção

Usar a exibição @Release para produção:

# 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/

Visões personalizadas

Além das três exibições padrão, você pode criar exibições personalizadas para níveis de qualidade mais refinados.

Exemplos de exibição personalizados:

  • @Alpha: Versões muito antigas.
  • @Beta: Versões de teste completas do recurso.
  • @RC: versões release candidate.
  • @Stable: Versões estáveis de longo prazo.

Criando exibições personalizadas:

  1. Navegue até as configurações de feed: Vá para o feed no Azure Artifacts.
  2. Guia Exibições: Selecione a aba Exibições.
  3. Adicionar exibição: Selecione "Adicionar exibição" e forneça um nome.
  4. Configurar: Defina regras de visibilidade e promoção.

Exibir benefícios

Controle de qualidade:

  • Lançamentos em etapas: mover pacotes por meio de gates de qualidade.
  • Mitigação de risco: Impedir pacotes não testados na produção.
  • Comunicação clara: As exibições indicam o nível de qualidade.

Flexibilidade do consumidor:

  • Escolha: Os consumidores escolhem sua tolerância a riscos.
  • Aceitação: Opte conscientemente por versões de pré-lançamento.
  • Segurança: Os sistemas de produção veem apenas os pacotes liberados.

Integração de fluxo de trabalho:

  • CI/CD: Integre a promoção em pipelines.
  • Automação: Automatize a promoção com base nos resultados do teste.
  • Governança: Imponha barreiras de qualidade por meio de visões.

Confira também: