---
title: "Семантическое версионирование (semver) в Joomla и её расширениях - WebTolk"
description: "Зачастую мы не задумываемся о том, что значат цифры в версиях Joomla или сторонних расширений, с помощью которых мы превращаем нашу Joomla в полноценный звездолёт. Почему их 3, по какому принципу они изменяются, что означают и как это использовать в своей работе."
url: "https://web-tolk.ru/blog/semanticheskoe-versionirovanie-semver-v-joomla-i-ejo-rasshireniyakh"
date: "2024-06-11T15:01:42+00:00"
language: "ru-RU"
---

# Семантическое версионирование (semver) в Joomla и её расширениях

 Автор: Сергей Толкачев Создано: 11 июня 2024 Обновлено: 10 января 2026 Просмотров: 1970    ![](https://web-tolk.ru/blog/images/blog/semanticheskoe-versionirovanie-semver-v-joomla-i-ejo-rasshireniyakh/header-1080.webp)

Зачастую мы не задумываемся о том, что значат цифры в версиях Joomla или сторонних расширений, с помощью которых мы превращаем нашу Joomla в полноценный звездолёт. Почему их 3, по какому принципу они изменяются, что означают и как это использовать в своей работе.

Начнём с того, что само по себе версионирование нужно для программных продуктов, которые развиваются и поддерживаются в течение долгого времени. Рано или поздно команда разработки принимает план развития продукта (это касается не только Joomla). В нём отмечаются основные вехи развития, распределяется по времени и версиям новый функционал, указываются даты выпуска релизов, назначаются ответственные за тот или иной релиз. И у Joomla такой план развития есть ([по-русски](https://joomlaportal.ru/roadmap) и [по-английски](https://developer.joomla.org/roadmap)). И он даже выполняется.

Для того, чтобы избежать хаоса и энтропии в жизни Joomla в 2014 году был сделан переход на семантическое версионирование - он же семвер, он же semver. А с выходом Joomla 4 на основе активной обратной связи от Joomla сообщества был [скорректирован и план выпуска релизов Joomla 4 и Joomla 5](https://habr.com/ru/news/686224/).

## Что же такое semver?

Принцип [семантического версионирования](https://semver.org/lang/ru/) позволяет разработчику осмысленно указывать номер версий так, чтобы его понимали другие разработчики и веб-мастера, работающие с сайтами. А также с помощью семвер можно спланировать и распределить по версиям различные типы изменений в коде, среди которых одно из важнейших место занимает нарушение обратной совместимости - когда новая версия расширения изменилась настолько, что невозможно просто обновить предыдущую версию программы до следующей, но только с помощью миграции и дополнительных действий со стороны пользователя.

Первая версия расширения обычно имеет версию **1.0.0**., где 1 - это мажорная версия, а следующие два нуля - минорная и патч-версии.

Процитируем документацию:

> Учитывая номер версии МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ, следует увеличивать:
> МАЖОРНУЮ версию, когда сделаны обратно несовместимые изменения API.
> МИНОРНУЮ версию, когда вы добавляете новую функциональность, не нарушая обратной совместимости.
> ПАТЧ-версию, когда вы делаете обратно совместимые исправления.
> Дополнительные обозначения для предрелизны
>  и билд-метаданны
>  возможны как дополнения к МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ формату.

Четвёртый разряд версии в семвер допускается, но не обязателен. Его часто называют **hotfix** (горячее исправление, быстрая заплатка). Разработчики могут выпускать hotfix версии, когда в выпущенном релизе была допущена какая-то ошибка, требующая немедленного исправления, но часть пользователей уже скачала расширение и начала им пользоваться. В таких случаях выпуск версии с заплаткой (например 1.43.8.1) позволяет обновить программу (Joomla расширение) и при этом не нарушить план релизов (план развития, план выпуска релизов) и не изменять нумерацию версий внутри этого плана.

Также могут быть **предрелизные версии**. Они имеют более низкий приоритет, чем соответствующая релизная версия. **Предрелизная версия указывает на то, что эта версия не стабильна и может не удовлетворять требованиям совместимости и безопасности, обозначенными соответствующей нормальной версией.** Примеры: 1.0.0-alpha, 1.0.0-beta.3. **Обратите внимание, что версия 1.0.0 БОЛЬШЕ, чем 1.0.0-beta.**

Нестабильные версии Joomla и расширений Joomla ни в коем случае не должны использоваться на "боевых" сайтах ("на проде"). Это потенциально несет огромные риски в плане стабильности работы и наличия уязвимостей. Однако, согласно исследованию "[Какую долю занимает Joomla среди ru-сайтов в 2024 году](https://habr.com/ru/articles/802387/)" оказалось, что существуют сайты, использующие beta-версию (от 3.7.0 до 5.1.0), а на 86 сайтах установлены RC-релизы (Release candidate). Это чревато последствиями для сайта.

### Мажорная версия Joomla и расширений

Используется для первой версии и тогда, когда происходят неизбежный слом обратной совместимости. Например, новая версия переписана на новую архитектуру файлов и классов и ранее доступный для Joomla 3 модуль / плагин теперь не может с ней работать, а только с Joomla 4+. Если видим, что изменилась мажорная версия (первый разряд в версии) - сначала читаем информацию на сайте разработчика, обкладываемся бэкапами и только потом пробуем обновлять Joomla или расширения.

### Минорная версия

Используется при появлении нового функционала или большого накопленного количества изменений, заметных для конечных пользователей. Например, изменение интерфейса расширения, появление новых разделов в компоненте, новых настроек и т.д. Эти обновления не должны ломать обратную совместимость. Но лучше перед обновлением ознакомиться со списком изменений. Мало ли что там...

### Патч версия

Используется чаще всего. Любые небольшие изменения, исправления мелких ошибок, рефакторинг кода, поправили комментарий в PHP Doc block, изменили code style и т.д. - это патч версии. Для конечного пользователя изменения скорее всего незаметны невооружённым глазом. Обновление на эту версию не принесет проблем в виду их малого размера. Но ответственный разработчик всё равно сначала изучает **changelog** и обкладывается бэкапами.

## Changelog

В Joomla 4 и Joomla 5, кстати, появилась кнопка "изменения". Её видно в списке доступных обновлений расширений, но только если разработчик внедрил у себя [changelog url](https://docs.joomla.org/Adding_changelog_to_your_manifest_file). Тогда вебмастер может непосредственно перед обновлением ознакомиться со списком изменений прямо в админке Joomla. Также changelog расширения можно увидеть в списке всех установленных расширений Joomla: **Система - Управление - Расширения**. У некоторых расширений число версии является кнопкой. Нажмите её и увидите всплывающее окно, где динамически с сайта разработчика загрузится список изменений для данной версии. Вы узнаете ЧТО было добавлено, ЧТО удалено, КАКИЕ исправления ошибок и уязвимостей были сделаны и т.д.

- [Первоначальный пост в Telegram-канале Joomla сообщества](https://t.me/joomlaru/590927)
- [Публикация на сайте Joomla сообщества - Joomlaportal.ru](https://joomlaportal.ru/blogs/joomla/semanticheskoe-versionirovanie-semver-v-joomla-i-ejo-rasshireniyakh)

## Об авторе

![Толкачев Сергей Юрьевич](https://web-tolk.ru/images/uslugi/sergey-tolkachyov-apr-2023.webp)

### Толкачев Сергей Юрьевич

Joomla-разработчик. [Контрибьютер ядра Joomla](https://github.com/joomla/joomla-cms/pulls?q=is%3Apr+author%3Asergeytolkachyov+). Один из ведущих Telegram-канала русскоязычного Joomla-сообщества [JoomlaFeed](https://t.me/joomlafeed), один из модераторов [чата русскоязычного Joomla-сообщества](https://t.me/joomlaru). Мои расширения в официальном маркетплейсе расширений Joomla - [Joomla Extensions Directory](https://extensions.joomla.org/profile/profile/details/528051/). Имею публикации в [официальном журнале международного Joomla-сообщества - Joomla Community Magazine](https://magazine.joomla.org/authors/sergeytolkachyov) и на [официальном сайте русскоязычного Joomla-сообщества](https://joomlaportal.ru/users/sergey-tolkachyov).

Муж. Отец 3 детей.

Россия, Саратов.

## JSON-LD Schema

```json
{
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "item": {
                "@id": "https://web-tolk.ru/",
                "name": "Главная"
            }
        },
        {
            "@type": "ListItem",
            "position": 2,
            "item": {
                "@id": "https://web-tolk.ru/blog",
                "name": "Блог"
            }
        },
        {
            "@type": "ListItem",
            "position": 3,
            "item": {
                "name": "Семантическое версионирование (semver) в Joomla и её расширениях"
            }
        }
    ]
}
```

```json
{
    "@context": "https://schema.org",
    "@graph": [
        {
            "@type": "Organization",
            "@id": "https://web-tolk.ru/#/schema/Organization/base",
            "name": "WebTolk",
            "url": "https://web-tolk.ru/",
            "logo": {
                "@type": "ImageObject",
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo",
                "url": "images/webtolk-1080p.jpg",
                "contentUrl": "images/webtolk-1080p.jpg",
                "width": 1920,
                "height": 1080
            },
            "image": {
                "@id": "https://web-tolk.ru/#/schema/ImageObject/logo"
            },
            "sameAs": [
                "https://github.com/WebTolk",
                "https://github.com/sergeytolkachyov",
                "https://vk.com/web_tolk",
                "https://vk.com/webtolkru",
                "https://tenchat.ru/sergeytolkachyov",
                "https://t.me/sergeytolkachyov",
                "https://t.me/webtolkru"
            ]
        },
        {
            "@type": "WebSite",
            "@id": "https://web-tolk.ru/#/schema/WebSite/base",
            "url": "https://web-tolk.ru/",
            "name": "WebTolk",
            "publisher": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            }
        },
        {
            "@type": "WebPage",
            "@id": "https://web-tolk.ru/#/schema/WebPage/base",
            "url": "https://web-tolk.ru/blog/semanticheskoe-versionirovanie-semver-v-joomla-i-ejo-rasshireniyakh",
            "name": "Семантическое версионирование (semver) в Joomla и её расширениях - WebTolk",
            "description": "Зачастую мы не задумываемся о том, что значат цифры в версиях Joomla или сторонних расширений, с помощью которых мы превращаем нашу Joomla в полноценный звездолёт. Почему их 3, по какому принципу они изменяются, что означают и как это использовать в своей работе.",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebSite/base"
            },
            "about": {
                "@id": "https://web-tolk.ru/#/schema/Organization/base"
            },
            "inLanguage": "ru-RU",
            "breadcrumb": {
                "@id": "https://web-tolk.ru/#/schema/BreadcrumbList/17"
            }
        },
        {
            "@type": "Article",
            "@id": "https://web-tolk.ru/#/schema/com_content/article/93",
            "isPartOf": {
                "@id": "https://web-tolk.ru/#/schema/WebPage/base"
            }
        }
    ]
}
```
