Сводка
В этом модуле описаны стратегии управления версиями для упаковки, рекомендаций по управлению версиями и рабочих процессов продвижения пакетов . Вы узнали основные понятия для управления версиями пакетов на протяжении всего жизненного цикла разработки программного обеспечения.
Полученные навыки
Вы узнали, в чем состоят преимущества и как использовать:
Реализация стратегии управления версиями
- Важность версии: Распознать, почему правильное управление версиями имеет решающее значение для управления зависимостями и стабильности программного обеспечения.
- Неизменяемые пакеты: Понимать, что опубликованные пакеты не могут быть изменены; можно выпускать только новые версии.
- Типы версий: Ознакомьтесь с мажорными, минорными и патч версиями, и когда использовать каждую из них.
- Управление версиями для конкретного пакета: Реализуйте управление версиями для различных типов пакетов (NuGet, npm, Maven, Python, универсальные пакеты).
Общие сведения о семантической версии
- Формат SemVer 2.0: Примените управление версиями Major.Minor.Patch для согласованного взаимодействия.
- Серъёзные изменения: Используйте старшие версии для обозначения несовместимых изменений API.
- Новые возможности: Используйте микроверсии для встроений, совместимых с предыдущими версиями.
- Исправления ошибок: Используйте версии патчей для исправлений, совместимых с предыдущими версиями.
- Метки предварительного выпуска: Используйте метки (альфа, бета-версия, rc), чтобы указать качество предварительной версии.
- Приоритет версии: Узнайте, как сравниваются и упорядочены версии.
Использование представлений артефактов Azure
- Три представления по умолчанию: Используйте представления @Local, @Prerelease и @Release.
- представление @Local: Содержит все пакеты, включая пакеты из вышестоящих источников.
- @Prerelease view: Показывает пакеты с метками предварительной версии.
- представление @Release: Отображает только готовые к работе пакеты.
- URI для определенных представлений: Настройте потребителей пакетов для использования определенных представлений.
- Пользовательские представления: Создайте дополнительные представления для более детализированных уровней детальности качества.
Продвижение пакетов
- Контрольные точки качества: Используйте продвижение для перемещения пакетов через уровни качества.
- Рабочий процесс продвижения: Реализуйте @Local → @Prerelease → @Release прогрессию.
- Автоматическое продвижение: Используйте задачи Azure Pipelines для автоматизации продвижения на основе результатов теста.
- Повышение вручную: Применение ручных шлюзов утверждения для критически важных пакетов.
- Защита от удаления: Поймите, что продвигаемые пакеты защищены от удаления.
- Пакеты восходящего потока: Управление продвижением кэшированных пакетов восходящего потока.
Отправка пакетов из конвейеров
- Автоматическая публикация: Настройте конвейеры сборки для автоматической публикации пакетов в фиды.
- Создание версий: Реализуйте автоматическое создание номеров версий в CI/CD.
- Метаданные пакета: Включите полные метаданные в пакеты.
- Тег источника: Пометьте исходный код с версиями пакетов для отслеживания.
Применение передовых практик
- Документированная стратегия: Поддержание документации по стратегии версионирования.
- Внедрение SemVer: Стандартизируйте семантическое управление версиями 2.0.
- Один веб-канал на репозиторий: Настройте каждый репозиторий для ссылки только на один веб-канал.
- Автоматическая публикация: Автоматически публиковать пакеты при создании.
- Тестирование перед повышением уровня: Всегда тестируйте пакеты перед повышением уровня представлений.
- Выравнивание команды: Интеграция управления версиями в определение готового.
Сводка ключевых понятий
Неизменяемость версии
- Никогда не изменяйте опубликованные версии: Опубликованные пакеты неизменяемы.
- Всегда создавайте новые версии: Для любого изменения требуется новый номер версии.
- Доверие и надежность: Потребители доверяют, что версии не изменяются.
Принципы семантического управления версиями
- Major.Minor.Patch: Номер версии из трех компонентов.
- Очистить связь: Номер версии указывает область изменений.
- Обратная совместимость: Минимальные изменения и исправления сохраняют совместимость.
- Метки предварительного выпуска: Укажите уровень качества с метками.
Просмотры артефактов Azure
- Показатели качества: Представления отдельных пакетов по уровню качества.
- Рабочий процесс продвижения: Явное продвижение перемещает пакеты через представления.
- Выбор потребителя: Потребители выбирают представление на основе допустимости рисков.
- Защита хранения: Повышены пакеты, защищенные от удаления.
Преимущества автоматизации
- Последовательность: Автоматизированные процессы снижают человеческую ошибку.
- Скорость: Более быстрые циклы выпуска с помощью автоматизации.
- Контрольные точки качества: Автоматическое тестирование перед продвижением.
- Прослеживаемость: Каждая сборка создает отслеживаемый артефакт.
Дальнейшие шаги
Продолжить обучение
Улучшение навыков управления версиями:
- Расширенные рабочие процессы продвижения: Реализуйте многоэтапную рекламу с воротами утверждения.
- Управление диапазоном версий: Общие сведения о диапазонах и ограничениях версий зависимостей.
- Стратегии ветвления: Согласование версий со стратегиями ветвления (Gitflow, магистральное).
- Управление версиями исправлений: Правильно обрабатывайте исправления и обратные портирования.
Ознакомьтесь с расширенными сценариями:
- Управление версиями Monorepo: Пакеты версий в репозиториях monorepo.
- Критическое управление изменениями: Стратегии для нерекомендуемой и удаления функций.
- Закрепление версий: Контроль при переходе потребителей на новые версии.
- Автоматизация журнала изменений: Автоматически создавайте журналы изменений из фиксаций.
Практическое приложение
Начните реализацию:
- Задокументируйте стратегию: Напишите рекомендации по управлению версиями для вашей команды.
- Принять SemVer 2.0: Стандартизируйте семантическое версионирование.
- Настройка веб-каналов и представлений: Настройте представления @Local, @Prerelease, и @Release.
- Автоматизация управления версиями: Реализуйте автоматическое создание версий в конвейерах сборки.
- Настройте рабочие процессы продвижения: Определите и автоматизируйте продвижение пакетов.
- Обучите команду: Убедитесь, что все понимают и следуют стратегии управления версиями.
Интеграция с методиками DevOps
Управление версиями в рабочих процессах DevOps:
- Непрерывная интеграция: Автоматизация сборки и публикации пакетов.
- Непрерывная доставка: Используйте рабочие процессы продвижения для контролируемых выпусков.
- Инфраструктура как код: Пакеты инфраструктуры версий вместе с пакетами приложений.
- Флаги функций: Объедините управление версиями с флагами функций для постепенного развертывания.
Подробнее
Официальная документация
- Основные понятия azure Artifacts — комплексное руководство по понятиям Артефактов Azure, включая неизменяемость пакета.
- Публикация и скачивание универсальных пакетов в Azure Artifacts | Microsoft Learn — краткое руководство по универсальным пакетам в Azure Artifacts.
- Начало работы с пакетами NuGet — Azure Artifacts | Microsoft Learn. Полное руководство по управлению пакетами NuGet в Azure Artifacts.
Дополнительные ресурсы
- Семантическое управление версиями 2.0.0 — официальная спецификация семантического управления версиями.
- Представления артефактов Azure — подробное описание представлений каналов и их продвижения.
- Рекомендации по использованию артефактов Azure — комплексные рекомендации по использованию артефактов Azure.
- Управление версиями пакетов в Azure Pipelines — руководство по использованию пакетов управления версиями в конвейерах CI/CD.
- Представления ленты для продвижения пакета - Как с помощью представлений донести информацию о качестве пакета.
Руководства, зависящие от типа пакета
- Управление версиями пакетов NuGet — рекомендации по управлению версиями nuGet.
- семантическая версия npm — npm и семантическое управление версиями.
- Управление версиями Maven — управление версиями проекта Maven.
- Пакетные спецификаторы версий Python — спецификаторы версий PEP 440.
Средства и автоматизация
- GitVersion — автоматическое управление версиями из журнала Git.
- semantic-release — полностью автоматизированное управление версиями и публикация пакетов.
- Azure DevOps CLI — средства командной строки для автоматизации артефактов Azure.
Сообщество и поддержка
- Документация по Azure DevOps: Ознакомьтесь с исчерпывающими руководствами и учебными пособиями.
- Microsoft Q&A: Задайте вопросы и получите ответы от сообщества.
- Блог Azure DevOps: Оставайтесь в курсе новейших функций и передового опыта.
- Примеры GitHub: Изучите примеры конвейеров и конфигураций.