Resumé
Dette modul forklarede versionsstrategier for pakning, bedste praksis for versionsstyring og arbejdsgange for pakkepromovering . Du lærte vigtige koncepter til styring af pakkeversioner gennem hele softwareudviklingens livscyklus.
Det har du lært
Du har lært, hvordan du beskriver fordelene ved og brugen af:
Implementering af en versionsstrategi
- Versionsvigtighed: Anerkend, hvorfor korrekt versionering er afgørende for afhængighedsstyring og softwarestabilitet.
- Uforanderlige pakker: Forstå, at udgivne pakker ikke kan ændres; Kun nye versioner kan frigives.
- Typer af versioner: Forstå hoved-, mindre- og programrettelsesversionsintervaller, og hvornår de skal bruges.
- Pakkespecifik versionering: Implementer versionsstyring for forskellige pakketyper (NuGet, npm, Maven, Python, Universal Packages).
Om semantisk versionsstyring
- SemVer 2.0-format: Anvend Major.Minor.Patch-versionsstyring for at opnå ensartet kommunikation.
- Vigtige ændringer: Brug overordnede versioner til at signalere inkompatible API-ændringer.
- Nye funktioner: Brug underordnede versioner til bagudkompatible tilføjelser.
- Fejlrettelser: Brug patch-versioner til bagudkompatible rettelser.
- Prerelease etiketter: Brug etiketter (alfa, beta, rc) til at angive prerelease-kvaliteten.
- Versionsprioritet: Forstå, hvordan versioner sammenlignes og sorteres.
Brug af Azure Artifacts-visninger
- Tre standardvisninger: Gearing @Local, @Prerelease, og @Release visninger.
- @Local visning: Indeholder alle pakker, herunder dem fra opstrømskilder.
- @Prerelease visning: Filtrerer til pakker med foreløbige mærkater.
- @Release visning: Viser kun produktionsklare pakker.
- Visningsspecifikke URI'er: Konfigurer pakkeforbrugere til at bruge bestemte visninger.
- Brugerdefinerede visninger: Opret yderligere visninger for at få mere detaljerede kvalitetsniveauer.
Promovering af pakker
- Kvalitets porte: Brug promovering til at flytte pakker gennem kvalitetsniveauer.
- Arbejdsgang for promovering: Implementer @Local → @Prerelease → @Release progression.
- Automatiseret promovering: Brug Azure Pipelines-opgaver til at automatisere promovering baseret på testresultater.
- Manuel promovering: Anvend manuelle godkendelsesporte for kritiske pakker.
- Beskyttelse af opbevaring: Forstå, at promoverede pakker er beskyttet mod sletning.
- Upstream-pakker: Administrer promovering af cachelagrede upstream-pakker.
Push-pakker fra pipelines
- Automatiseret udgivelse: Konfigurer buildpipelines til automatisk at publicere pakker til feeds.
- Generering af versioner: Implementer automatiseret generering af versionsnumre i CI/CD.
- Pakkens metadata: Medtag omfattende metadata i pakker.
- Kilde-tagging: Tag kildekode med pakkeversioner for sporbarhed.
Anvendelse af bedste praksis
- Dokumenteret strategi: Vedligehold skriftlig dokumentation til versionsstrategi.
- SemVer-adoption: Standardiser på semantisk versionering 2.0.
- Enkelt feed pr. repo: Konfigurer hvert lager til kun at referere til ét feed.
- Automatiseret udgivelse: Udgiv pakker automatisk ved oprettelse.
- Test før promovering: Test altid pakker, før du forfremmes til højere visninger.
- Holdtilpasning: Integrer versionsstyring i Definition af Udført.
Oversigt over nøglebegreber
Uforanderlig version
- Skift aldrig udgivne versioner: Udgivne pakker er uforanderlige.
- Opret altid nye versioner: Enhver ændring kræver et nyt versionsnummer.
- Tillid og pålidelighed: Forbrugerne har tillid til, at versioner ikke ændres.
Principper for semantisk versionering
- Major.Minor.Patch: Versionsnummer i tre dele.
- Klar kommunikation: Versionsnummer angiver omfanget af ændringer.
- Bagudkompatibilitet: Minor og patch opretholder kompatibilitet.
- Prerelease etiketter: Angiv kvalitetsniveau med etiketter.
Azure Artifacts-visninger
- Kvalitetsindikatorer: Visninger adskiller pakker efter kvalitetsniveau.
- Arbejdsgang for promovering: Eksplicit promovering flytter pakker gennem visninger.
- Forbrugernes valg: Forbrugerne vælger visning baseret på risikotolerance.
- Beskyttelse af opbevaring: Promoverede pakker beskyttet mod sletning.
Fordele ved automatisering
- Konsistens: Automatiserede processer reducerer menneskelige fejl.
- Fart: Hurtigere frigivelsescyklusser med automatisering.
- Kvalitets porte: Automatiseret test før promovering.
- Sporbarhed: Hver build producerer sporbare artefakter.
Næste trin
Fortsæt læring
Forbedre dine versionsfærdigheder:
- Avancerede arbejdsgange til promovering: Implementer promovering i flere faser med godkendelsesporte.
- Administration af versionsområde: Forstå afhængighedsversionsintervaller og -begrænsninger.
- Forgreningsstrategier: Juster versionering med forgreningsstrategier (Gitflow, trunk-baseret).
- Hotfix-versionering: Håndter hotfixes og backports korrekt.
Udforsk avancerede scenarier:
- Monorepo-versionering: Versionspakker i monorepo-lagre.
- Breaking forandringsledelse: Strategier til udfasning og fjernelse af funktioner.
- Fastgørelse af version: Kontrollér, hvornår forbrugerne indfører nye versioner.
- Automatisering af ændringslog: Generer ændringslogge automatisk fra bekræftelser.
Praktisk anvendelse
Begynd at implementere:
- Dokumenter din strategi: Skriv retningslinjer for versionsstyring for dit team.
- Vedtag SemVer 2.0: Standardiser semantisk versionering.
- Konfigurer feeds og visninger: Konfigurere @Local, @Prereleaseog @Release visninger.
- Automatiser versionering: Implementer automatiseret versionsgenerering i buildpipelines.
- Opsæt arbejdsgange for promovering: Definer og automatiser pakkepromovering.
- Træn dit team: Sørg for, at alle forstår og følger versionsstrategien.
Integration med DevOps-praksisser
Versionsstyring i DevOps-arbejdsprocesser:
- Kontinuerlig integration: Automatiser pakkeopbygning og udgivelse.
- Kontinuerlig levering: Brug kampagnearbejdsgange til kontrollerede udgivelser.
- Infrastruktur som kode: Versionsinfrastrukturpakker sammen med applikationspakker.
- Feature flag: Kombiner versionsstyring med funktionsflag for gradvise udrulninger.
Lær mere
Officiel dokumentation
- Nøglebegreber til Azure Artifacts – Omfattende vejledning til Azure Artifacts-begreber, herunder pakkeuforanderlighed.
- Udgiv og download universelle pakker – Azure Artifacts | Microsoft Learn – Startvejledning til universelle pakker i Azure Artifacts.
- Kom i gang med NuGet-pakker – Azure Artifacts | Microsoft Learn – Komplet vejledning til NuGet-pakkeadministration i Azure Artifacts.
Yderligere ressourcer
- Semantisk versionering 2.0.0 - Officiel specifikation for semantisk versionering.
- Azure Artifacts-visninger – Detaljeret forklaring af feedvisninger og promovering.
- Bedste fremgangsmåder for brug af Azure Artifacts – Omfattende bedste praksis for Azure Artifacts.
- Versionsstyring af pakker i Azure Pipelines – Vejledning til versionsstyring af pakker i CI/CD-pipelines.
- Feedvisninger til promovering af pakker – Sådan kommunikerer du pakkekvalitet med visninger.
Pakketypespecifikke vejledninger
- Versionsstyring af NuGet-pakker – NuGet-specifikke retningslinjer for versionsstyring.
- npm semantisk versionering – npm og semantisk versionering.
- Maven-versionering - Maven-projektversionering.
- Python-pakkeversionsspecifikationer - PEP 440-versionsspecifikationer.
Værktøjer og automatisering
- GitVersion – Automatiseret versionsstyring fra Git-historik.
- semantic-release - Fuldautomatisk versionsstyring og pakkeudgivelse.
- Azure DevOps CLI – Kommandolinjeværktøjer til Azure Artifacts-automatisering.
Fællesskab og støtte
- Dokumentation til Azure DevOps: Udforsk omfattende vejledninger og selvstudier.
- Microsoft Q&A: Stil spørgsmål og få svar fra fællesskabet.
- Azure DevOps-blog: Hold dig opdateret med de nyeste funktioner og bedste fremgangsmåder.
- GitHub-eksempler: Udforsk eksempler på pipelines og konfigurationer.