Семантическое версионирование и маркировка выпусков
Применяйте семантическое версионирование (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 — локальная установка не требуется.
Все уроки этого курса
- Пакеты библиотек и исполняемых файлов
- Семантическое версионирование и маркировка выпусков
- Основы CI с помощью swift test и артефактов