Resumé

Fuldført

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:

  1. Dokumenter din strategi: Skriv retningslinjer for versionsstyring for dit team.
  2. Vedtag SemVer 2.0: Standardiser semantisk versionering.
  3. Konfigurer feeds og visninger: Konfigurere @Local, @Prereleaseog @Release visninger.
  4. Automatiser versionering: Implementer automatiseret versionsgenerering i buildpipelines.
  5. Opsæt arbejdsgange for promovering: Definer og automatiser pakkepromovering.
  6. 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

Yderligere ressourcer

Pakketypespecifikke vejledninger

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.