Resumo

Concluído

Este módulo explicou estratégias de controle de versão para empacotamento, práticas recomendadas para controle de versão e fluxos de trabalho de promoção de pacotes . Você aprendeu conceitos essenciais para gerenciar versões de pacote em todo o ciclo de vida de desenvolvimento de software.

O que você aprendeu

Você aprendeu a descrever os benefícios e o uso de:

Implementando uma estratégia de controle de versão

  • Importância da versão: Reconheça por que o controle de versão adequado é fundamental para o gerenciamento de dependências e a estabilidade do software.
  • Pacotes imutáveis: Entenda que os pacotes publicados não podem ser alterados; somente novas versões podem ser lançadas.
  • Tipos de versão: Entenda os incrementos principais, secundários e de versão do patch e quando usar cada um.
  • Controle de versão específico do pacote: Implemente o controle de versão para diferentes tipos de pacote (NuGet, npm, Maven, Python, Pacotes Universais).

Noções básicas sobre controle de versão semântico

  • Formato SemVer 2.0: Aplique o versionamento Major.Minor.Patch para comunicação consistente.
  • Alterações significativas: usar versões principais para sinalizar alterações incompatíveis na API.
  • Novos recursos: Use versões menores para adições que mantêm a compatibilidade com versões anteriores.
  • Correções de bug: Use versões de patch para correções compatíveis com versões anteriores.
  • Rótulos de pré-lançamento: Use rótulos (alfa, beta, rc) para indicar a qualidade de pré-lançamento.
  • Precedência de versão: Entenda como as versões são comparadas e ordenadas.

Usando visões do Azure Artifacts

  • Três exibições padrão: Utilize as exibições @Local, @Prerelease e @Release.
  • @Visão local: Contém todos os pacotes, incluindo aqueles de fontes upstream.
  • Visualização @Prerelease: filtra pacotes com rótulos de pré-lançamento.
  • @Visão de Lançamento: Mostra apenas pacotes prontos para produção.
  • URIs específicas de exibição: Configure os consumidores de pacotes para usar exibições específicas.
  • Exibições personalizadas: Crie exibições adicionais para níveis de qualidade mais refinados.

Promovendo pacotes

  • Verificações de qualidade: usar promoção para mover pacotes entre níveis de qualidade.
  • Fluxo de trabalho de promoção: Implemente progressão @Local → @Prerelease → @Release.
  • Promoção automatizada: Use as tarefas do Azure Pipelines para automatizar a promoção com base nos resultados do teste.
  • Promoção manual: Aplique portões de aprovação manuais para pacotes críticos.
  • Proteção de retenção: Entenda que os pacotes promovidos estão protegidos contra exclusão.
  • Pacotes upstream: Gerenciar a promoção de pacotes upstream armazenados em cache.

Enviar pacotes de pipelines

  • Publicação automatizada: configurar pipelines de build para publicar automaticamente pacotes em feeds.
  • Geração de versão: Implementar a geração de número de versão automatizada em CI/CD.
  • Metadados do pacote: Inclua metadados abrangentes em pacotes.
  • Marcação de origem: Etiquete o código-fonte com versões de pacotes para rastreabilidade.

Aplicando práticas recomendadas

  • Estratégia documentada: Manter a documentação da estratégia de controle de versão escrita.
  • Adoção do SemVer: Padronizar na Versão Semântica 2.0.
  • Feed único por repositório: Configure cada repositório para referenciar apenas um feed.
  • Publicação automatizada: Publicar pacotes automaticamente na criação.
  • Teste antes de promover: Sempre teste pacotes antes de promover para exibições mais altas.
  • Alinhamento da equipe: integrar o controle de versão à Definição de Concluído.

Resumo dos principais conceitos

Imutabilidade de versão

  • Nunca altere as versões publicadas: Os pacotes publicados são imutáveis.
  • Sempre crie novas versões: Qualquer alteração requer um novo número de versão.
  • Confiança e confiabilidade: Os consumidores confiam que as versões não mudam.

Princípios semânticos de controle de versão

  • Major.Minor.Patch: número de versão de três partes.
  • Comunicação clara: O número de versão indica o escopo das alterações.
  • Compatibilidade com versões anteriores: as versões secundária e de patch mantêm a compatibilidade.
  • Rótulos de pré-lançamento: Indicam o nível de qualidade através de rótulos.

Exibições do Azure Artifacts

  • Indicadores de qualidade: exibições separam pacotes por nível de qualidade.
  • Fluxo de trabalho de promoção: a promoção explícita move pacotes por exibições.
  • Escolha do consumidor: Os consumidores selecionam a exibição com base na tolerância a riscos.
  • Proteção de retenção: Pacotes promovidos protegidos contra exclusão.

Benefícios de automação

  • Consistência: Os processos automatizados reduzem o erro humano.
  • Velocidade: Ciclos mais rápidos de lançamento com automação.
  • Portões de qualidade: Teste automatizado antes da promoção.
  • Rastreabilidade: Cada build produz artefato rastreável.

Próximas etapas

Continuar aprendendo

Aprimore suas habilidades de controle de versão:

  • Fluxos de trabalho avançados de promoção: Implemente a promoção em vários estágios com portões de aprovação.
  • Gerenciamento de intervalo de versão: Entenda os intervalos e restrições de versão de dependência.
  • Estratégias de ramificação: Alinhar o controle de versão com estratégias de ramificação (Gitflow, baseado em tronco).
  • Controle de versão de hotfix: lidar corretamente com hotfixes e backports.

Explore cenários avançados:

  • Versionamento de monorepo: Versionamento de pacotes em repositórios de monorepo.
  • Gerenciamento de alterações importantes: estratégias para descontinuar e remover recursos.
  • Fixação de versão: Controlar quando os consumidores adotarem novas versões.
  • Automação do changelog: Gere changelogs automaticamente a partir de commits.

Aplicativo prático

Comece a implementar:

  1. Documente sua estratégia: Escreva diretrizes de controle de versão para sua equipe.
  2. Adotar o SemVer 2.0: Padronizar no controle de versão semântico.
  3. Configurar feeds e exibições: Configurar @Local, @Prereleasee modos @Release de exibição.
  4. Automatizar o controle de versão: Implementar a geração de versão automatizada em pipelines de build.
  5. Configurar fluxos de trabalho de promoção: Definir e automatizar a promoção de pacotes.
  6. Treine sua equipe: Verifique se todos entendem e seguem a estratégia de controle de versão.

Integração com as práticas do DevOps

Controle de versão em fluxos de trabalho do DevOps:

  • Integração contínua: Automatize a criação e a publicação de pacotes.
  • Continuous Delivery: Use fluxos de trabalho de promoção para lançamentos controlados.
  • Infraestrutura como Código: Versionar pacotes de infraestrutura em conjunto com pacotes de aplicativos.
  • Feature flags: Combine o versionamento com feature flags para implantações graduais.

Saiba mais

Documentação oficial

Recursos adicionais

Guias específicos do tipo de pacote

Ferramentas e automação

Comunidade e suporte

  • Documentação do Azure DevOps: Explore guias e tutoriais abrangentes.
  • Microsoft Q&A: Faça perguntas e obtenha respostas da comunidade.
  • Blog do Azure DevOps: Mantenha-se atualizado com os recursos e as práticas recomendadas mais recentes.
  • Exemplos do GitHub: Explore exemplos de pipelines e configurações.