Сводка

Завершено

В этом модуле описаны стратегии управления версиями для упаковки, рекомендаций по управлению версиями и рабочих процессов продвижения пакетов . Вы узнали основные понятия для управления версиями пакетов на протяжении всего жизненного цикла разработки программного обеспечения.

Полученные навыки

Вы узнали, в чем состоят преимущества и как использовать:

Реализация стратегии управления версиями

  • Важность версии: Распознать, почему правильное управление версиями имеет решающее значение для управления зависимостями и стабильности программного обеспечения.
  • Неизменяемые пакеты: Понимать, что опубликованные пакеты не могут быть изменены; можно выпускать только новые версии.
  • Типы версий: Ознакомьтесь с мажорными, минорными и патч версиями, и когда использовать каждую из них.
  • Управление версиями для конкретного пакета: Реализуйте управление версиями для различных типов пакетов (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.
  • Критическое управление изменениями: Стратегии для нерекомендуемой и удаления функций.
  • Закрепление версий: Контроль при переходе потребителей на новые версии.
  • Автоматизация журнала изменений: Автоматически создавайте журналы изменений из фиксаций.

Практическое приложение

Начните реализацию:

  1. Задокументируйте стратегию: Напишите рекомендации по управлению версиями для вашей команды.
  2. Принять SemVer 2.0: Стандартизируйте семантическое версионирование.
  3. Настройка веб-каналов и представлений: Настройте представления @Local, @Prerelease, и @Release.
  4. Автоматизация управления версиями: Реализуйте автоматическое создание версий в конвейерах сборки.
  5. Настройте рабочие процессы продвижения: Определите и автоматизируйте продвижение пакетов.
  6. Обучите команду: Убедитесь, что все понимают и следуют стратегии управления версиями.

Интеграция с методиками DevOps

Управление версиями в рабочих процессах DevOps:

  • Непрерывная интеграция: Автоматизация сборки и публикации пакетов.
  • Непрерывная доставка: Используйте рабочие процессы продвижения для контролируемых выпусков.
  • Инфраструктура как код: Пакеты инфраструктуры версий вместе с пакетами приложений.
  • Флаги функций: Объедините управление версиями с флагами функций для постепенного развертывания.

Подробнее

Официальная документация

Дополнительные ресурсы

Руководства, зависящие от типа пакета

Средства и автоматизация

  • GitVersion — автоматическое управление версиями из журнала Git.
  • semantic-release — полностью автоматизированное управление версиями и публикация пакетов.
  • Azure DevOps CLI — средства командной строки для автоматизации артефактов Azure.

Сообщество и поддержка

  • Документация по Azure DevOps: Ознакомьтесь с исчерпывающими руководствами и учебными пособиями.
  • Microsoft Q&A: Задайте вопросы и получите ответы от сообщества.
  • Блог Azure DevOps: Оставайтесь в курсе новейших функций и передового опыта.
  • Примеры GitHub: Изучите примеры конвейеров и конфигураций.