Resumo
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:
- Documente sua estratégia: Escreva diretrizes de controle de versão para sua equipe.
- Adotar o SemVer 2.0: Padronizar no controle de versão semântico.
- Configurar feeds e exibições: Configurar @Local, @Prereleasee modos @Release de exibição.
- Automatizar o controle de versão: Implementar a geração de versão automatizada em pipelines de build.
- Configurar fluxos de trabalho de promoção: Definir e automatizar a promoção de pacotes.
- 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
- Principais conceitos para a Azure Artifacts – Guia abrangente dos conceitos do Azure Artifacts, incluindo imutabilidade do pacote.
- Publicar e baixar pacotes universais – Azure Artifacts | Microsoft Learn – Guia de início rápido para Pacotes Universais no Azure Artifacts.
- Introdução aos pacotes NuGet – Azure Artifacts | Microsoft Learn – Guia completo do gerenciamento de pacotes NuGet no Azure Artifacts.
Recursos adicionais
- Versionamento Semântico 2.0.0 – Especificação oficial de versionamento semântico.
- Exibições do Azure Artifacts - explicação detalhada das exibições de feed e promoção.
- Melhores práticas para usar o Azure Artifacts – práticas abrangentes para o Azure Artifacts.
- Controle de versão do pacote no Azure Pipelines – Guia para pacotes de controle de versão em pipelines de CI/CD.
- Exibições de feed para promoção de pacotes - como comunicar a qualidade do pacote com exibições.
Guias específicos do tipo de pacote
- Controle de versão do pacote NuGet – diretrizes de controle de versão específicas do NuGet.
- controle de versão semântico npm – npm e controle de versão semântico.
- Controle de versão do Maven – controle de versão do projeto maven.
- Especificadores de versão de empacotamento do Python – especificadores de versão PEP 440.
Ferramentas e automação
- GitVersion – controle de versão automatizado do histórico do Git.
- semantic-release – gerenciamento totalmente automatizado de versões e publicação de pacotes.
- CLI do Azure DevOps – ferramentas de linha de comando para automação do Azure Artifacts.
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.