Podsumowanie
W tym module wyjaśniono strategie wersjonowania pakietów, najlepsze praktyki wersjonowania oraz procesy promowania pakietów. Przedstawiono podstawowe pojęcia dotyczące zarządzania wersjami pakietów w całym cyklu tworzenia oprogramowania.
Czego się nauczyłeś
Wiesz już, jak opisać korzyści i użycie następujących elementów:
Implementowanie strategii przechowywania wersji
- Ważność wersji: Zdaj sobie sprawę, dlaczego właściwe przechowywanie wersji ma kluczowe znaczenie dla zarządzania zależnościami i stabilności oprogramowania.
- Niezmienne pakiety: Dowiedz się, że nie można zmienić opublikowanych pakietów; można wydać tylko nowe wersje.
- Typy wersji: Informacje o przyrostach wersji głównych, pomocniczych i poprawek oraz o tym, kiedy należy ich używać.
- Przechowywanie wersji specyficznych dla pakietu: Zaimplementuj przechowywanie wersji dla różnych typów pakietów (NuGet, npm, Maven, Python, Universal Packages).
Zrozumienie wersjonowania semantycznego
- Format SemVer 2.0: Zastosuj obsługę wersji Major.Minor.Patch, aby zapewnić spójną komunikację.
- Zmiany powodujące niezgodność: Używanie wersji głównych do sygnalizowania niezgodnych zmian interfejsu API.
- Nowe funkcje: Używaj wersji pomocniczych dla dodatków zgodnych z poprzednimi wersjami.
- Poprawki: Użyj wersji poprawek dla poprawek zgodnych z poprzednimi wersjami.
- Etykiety wersji wstępnej: Użyj etykiet (alpha, beta, rc), aby wskazać jakość wersji wstępnej.
- Pierwszeństwo wersji: Dowiedz się, jak wersje są porównywane i uporządkowane.
Korzystanie z widoków usługi Azure Artifacts
- Trzy widoki domyślne: Korzystaj z @Localwidoków , @Prereleasei @Release .
- @Local view: Zawiera wszystkie pakiety, w tym te z źródeł nadrzędnych.
- widok @Prerelease: Filtruje pakiety z etykietami wersji wstępnej.
- widok @Release: Pokazuje tylko pakiety gotowe do produkcji.
- Identyfikatory URI specyficzne dla widoku: Skonfiguruj odbiorców pakietów, aby używali określonych widoków.
- Widoki niestandardowe: Utwórz dodatkowe widoki dla bardziej szczegółowego poziomu jakości.
Promowanie pakietów
- Bramy jakości: Użyj promocji, aby przesuwać pakiety przez różne poziomy jakości.
- Przepływ pracy promocji: Zaimplementuj @Local → @Prerelease → @Release postęp.
- Automatyczne podwyższanie poziomu: Zadania usługi Azure Pipelines umożliwiają automatyzowanie podwyższania poziomu na podstawie wyników testów.
- Ręczna promocja: Stosowanie ręcznych bram zatwierdzania dla pakietów krytycznych.
- Ochrona przechowywania: Dowiedz się, że promowane pakiety są chronione przed usunięciem.
- Pakiety źródłowe: Zarządzanie promocją buforowanych pakietów źródłowych.
Wypychanie paczek z ciągów przetwarzania
- Automatyczne publikowanie: Skonfiguruj potoki kompilacji, aby automatycznie publikować pakiety w kanałach dystrybucji.
- Generowanie wersji: Zaimplementuj automatyczne generowanie numeru wersji w CI/CD.
- Metadane pakietu: Uwzględnij kompleksowe metadane w pakietach.
- Tagowanie kodu źródłowego: Oznacz kod źródłowy wersjami pakietów dla łatwego śledzenia.
Stosowanie najlepszych rozwiązań
- Udokumentowana strategia: Utrzymuj pisemną dokumentację strategii wersjonowania.
- Zastosowanie SemVer: Standaryzacja na wersjonowanie semantyczne 2.0.
- Pojedyncze źródło danych na repozytorium: Skonfiguruj każde repozytorium tak, aby odwoływać się tylko do jednego źródła danych.
- Automatyczne publikowanie: Automatyczne publikowanie pakietów podczas tworzenia.
- Przetestuj przed promocją: Zawsze testuj pakiety przed promocją do wyższych widoków.
- Wyrównanie zespołu: Integrowanie wersji z definicją gotowej wersji.
Podsumowanie kluczowych pojęć
Niezmienność wersji
- Nigdy nie zmieniaj opublikowanych wersji: Opublikowane pakiety są niezmienne.
- Zawsze twórz nowe wersje: Każda zmiana wymaga nowego numeru wersji.
- Zaufanie i niezawodność: Konsumenci ufają, że wersje nie zmieniają się.
Semantyczne zasady przechowywania wersji
- Major.Minor.Patch: Trzyczęściowy numer wersji.
- Wyczyść komunikację: Numer wersji wskazuje zakres zmian.
- Zgodność z poprzednimi wersjami: Drobne i poprawki zachowują zgodność.
- Etykiety wersji wstępnej: Wskazują poziom jakości za pomocą etykiet.
Widoki usługi Azure Artifacts
- Wskaźniki jakości: Przeglądy rozdzielają pakiety według poziomu jakości.
- Przepływ pracy promocji: Eksplitywna promocja przenosi pakiety przez widoki.
- Wybór konsumenta: Konsumenci wybierają widok na podstawie tolerancji ryzyka.
- Ochrona przechowywania: Promowane pakiety chronione przed usunięciem.
Korzyści z automatyzacji
- Konsystencja: Zautomatyzowane procesy zmniejszają liczbę błędów ludzkich.
- Szybkość: Szybsze cykle wydawania dzięki automatyzacji.
- Bramy jakości: Testowanie automatyczne przed podwyższeniem poziomu.
- Identyfikowalność: Każda kompilacja tworzy artefakt możliwy do śledzenia.
Dalsze kroki
Kontynuuj szkolenie
Zwiększ swoje umiejętności dotyczące przechowywania wersji:
- Zaawansowane przepływy pracy promowania: Zaimplementuj promowanie wieloetapowe z bramami zatwierdzania.
- Zarządzanie zakresem wersji: Zrozumienie zakresów wersji zależności i ograniczeń.
- Strategie rozgałęziania: Dopasuj wersjonowanie do strategii rozgałęziania (Gitflow, trunk-based).
- Wersjonowanie poprawek: Poprawnie zarządzaj poprawkami i backportami.
Poznaj zaawansowane scenariusze:
- Wersjonowanie monorepo: Wersjonuj pakiety w repozytoriach monorepo.
- Zarządzanie zmianami naruszającymi zgodność: Strategie dotyczące wycofywania i usuwania funkcji.
- Przypinanie wersji: Kontrolowanie, kiedy konsumenci przyjmują nowe wersje.
- Automatyzacja dziennika zmian: Automatycznie generuj dzienniki zmian na podstawie zatwierdzeń.
Aplikacja praktyczna
Rozpocznij implementowanie:
- Dokumentowanie strategii: Pisanie wytycznych dotyczących przechowywania wersji dla zespołu.
- Adopt SemVer 2.0: Standandaryzuj przechowywanie wersji semantycznych.
- Skonfiguruj kanały i widoki: Skonfiguruj widoki @Local, @Prerelease i @Release.
- Automatyzowanie przechowywania wersji: Implementowanie zautomatyzowanego generowania wersji w potokach kompilacji.
- Konfigurowanie przepływów pracy promowania: Definiowanie i automatyzowanie promowania pakietu.
- Trenowanie zespołu: Upewnij się, że wszyscy rozumieją i postępują zgodnie ze strategią przechowywania wersji.
Integracja z praktykami metodyki DevOps
Przechowywanie wersji w przepływach pracy metodyki DevOps:
- Ciągła integracja: Automatyzowanie tworzenia i publikowania pakietów.
- Ciągłe dostarczanie: Użyj przepływów pracy promocyjnej dla kontrolowanych wydań.
- Infrastruktura jako kod: Wersjonowanie pakietów infrastruktury obok pakietów aplikacji.
- Flagi funkcji: Połącz wersjonowanie z flagami funkcji, aby stopniowo wprowadzać zmiany.
Dowiedz się więcej
Oficjalna dokumentacja
- Kluczowe pojęcia dotyczące usługi Azure Artifacts — kompleksowy przewodnik po pojęciach związanych z usługą Azure Artifacts, w tym niezmienność pakietów.
- Publikowanie i pobieranie pakietów uniwersalnych — Azure Artifacts | Microsoft Learn — przewodnik Szybki start dotyczący pakietów uniwersalnych w usłudze Azure Artifacts.
- Wprowadzenie do pakietów NuGet — Azure Artifacts | Microsoft Learn — kompletny przewodnik po zarządzaniu pakietami NuGet w usłudze Azure Artifacts.
Dodatkowe zasoby
- Semantyczne wersjonowanie 2.0.0 — oficjalna specyfikacja wersjonowania semantycznego.
- Widoki usługi Azure Artifacts — szczegółowe wyjaśnienie widoków strumienia i promocji.
- Najlepsze rozwiązania dotyczące korzystania z usługi Azure Artifacts — kompleksowe najlepsze rozwiązania dotyczące usługi Azure Artifacts.
- Versionowanie pakietów w usłudze Azure Pipelines — przewodnik po wersjonowaniu pakietów w potokach CI/CD.
- Widoki kanałów dla promocji pakietu — jak komunikować jakość pakietu za pomocą widoków.
Przewodniki specyficzne dla typu pakietu
- Przechowywanie wersji pakietów NuGet — wytyczne dotyczące obsługi wersji specyficzne dla pakietu NuGet.
- npm i wersjonowanie semantyczne - npm i Wersjonowanie Semantyczne.
- Przechowywanie wersji programu Maven — przechowywanie wersji projektu Maven.
- Specyfikatory wersji pakietów języka Python — specyfikatory wersji PEP 440.
Narzędzia i automatyzacja
- GitVersion — automatyczne przechowywanie wersji z historii usługi Git.
- semantic-release — w pełni zautomatyzowane zarządzanie wersjami i publikowanie pakietów.
- Interfejs wiersza polecenia usługi Azure DevOps — narzędzia wiersza polecenia dla automatyzacji usługi Azure Artifacts.
Społeczność i wsparcie
- Dokumentacja usługi Azure DevOps: Zapoznaj się z kompleksowymi przewodnikami i samouczkami.
- Microsoft Q&A: Zadaj pytania i uzyskaj odpowiedzi od społeczności.
- Blog usługi Azure DevOps: Bądź na bieżąco z najnowszymi funkcjami i najlepszymi rozwiązaniami.
- Przykłady w usłudze GitHub: Zapoznaj się z przykładowymi potokami i konfiguracjami.