0Pricing
Swift Academy · Урок

Семантическое версионирование и маркировка выпусков

Применяйте семантическое версионирование (MAJOR.MINOR.PATCH), создавайте аннотированные теги git и явно указывайте версии зависимостей в SwiftPM.

«Семантическое версионирование и маркировка выпусков» — бесплатный урок Swift Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Swift Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Swift Academy содержит 3 уроков всего.

Что такое SemVer?

SemVer = MAJOR.MINOR.PATCH.

  • MAJOR: несовместимые изменения
  • MINOR: новые возможности, совместимые с предыдущими версиями
  • PATCH: исправления ошибок, документация и небольшие улучшения

Когда повышать версию

Выберите тип повышения версии:

  • Удаление или переименование общедоступного программного интерфейса → MAJOR
  • Добавление нового программного интерфейса без несовместимых изменений → MINOR
  • Внутренняя переработка или исправления ошибок → PATCH

Рабочий процесс с тегами Git

Создайте аннотированный тег (например, v1.2.0) и отправьте его в удалённый репозиторий. SwiftPM определяет версии пакетов по тегам Git.

// Create an annotated tag and push it so SwiftPM can resolve it.
// Prereqs: tests pass; CHANGELOG updated.
//
//   git add -A
//   git commit -m "Release 1.2.0: new JSON helpers"
//   git tag -a v1.2.0 -m "v1.2.0"
//   git push --follow-tags
//
// Note: use the "v" prefix consistently (e.g., v1.2.0).
print("Tagged v1.2.0 and pushed with --follow-tags")

Требования к версиям SwiftPM

В Package.swift выберите способ задания требования: from:, exact:, .upToNextMajor или .upToNextMinor.

// Package.swift (illustrative dependency specs)
// dependencies: [
//   // Compatible with 1.x (>=1.2.0, <2.0.0)
//   .package(url: "https://example.com/Lib.git", from: "1.2.0"),
//
//   // Exact pin:
//   // .package(url: "https://example.com/Lib.git", exact: "1.2.3"),
//
//   // Up to next major (same as "from:"):
//   // .package(url: "https://example.com/Lib.git", .upToNextMajor(from: "1.2.0")),
//
//   // Up to next minor (>=1.2.0, <1.3.0):
//   // .package(url: "https://example.com/Lib.git", .upToNextMinor(from: "1.2.0"))
// ]
print("Declare dependency ranges clearly: from/exact/upToNextMajor/upToNextMinor")

Правила ведения CHANGELOG

Обобщайте изменения для каждой версии. Чётко выделяйте элементы BREAKING, чтобы пользователи могли безопасно обновляться.

// Keep a concise CHANGELOG with headings per version.
//
// # Changelog
// ## [1.2.0] - 2025-09-19
// - Add JSON.encodePretty(_:) (non-breaking)
// - Fix crash in Parser.parse() on empty input
//
// ## [2.0.0] - 2026-01-10
// - BREAKING: Renamed Parser.parse(_:) -> Parser.run(_:)
print("Write a short, helpful CHANGELOG for each release")

Советы по предварительным выпускам

Предварительные выпуски (например, 2.0.0-beta.1) указывают на нестабильность. Не создавайте для них теги, если не хотите, чтобы пользователи выбирали их по умолчанию. Соблюдайте единообразие в именовании тегов.

Правило повышения SemVer

Быстрая проверка: когда следует повышать MAJOR?

Итоги

Итоги: используйте SemVer (MAJOR.MINOR.PATCH), создавайте аннотированные теги git вроде v1.2.0, задавайте диапазоны версий зависимостей в Package.swift и поддерживайте понятный CHANGELOG.

Часто задаваемые вопросы

Урок «Семантическое версионирование и маркировка выпусков» бесплатный?

Да — полный текст урока «Семантическое версионирование и маркировка выпусков» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Swift Academy, подпишись на CoddyKit PRO. Курс Swift Academy содержит 3 уроков всего.

Чему я научусь в уроке «Семантическое версионирование и маркировка выпусков»?

Применяйте семантическое версионирование (MAJOR.MINOR.PATCH), создавайте аннотированные теги git и явно указывайте версии зависимостей в SwiftPM. Ты практикуешь Swift Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Swift Academy?

Предыдущий опыт не требуется. Swift Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «Семантическое версионирование и маркировка выпусков»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Swift Academy?

Да. Каждый урок Swift Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Пакеты библиотек и исполняемых файлов
  2. Семантическое версионирование и маркировка выпусков
  3. Основы CI с помощью swift test и артефактов
← Назад к Swift Academy