Политика выпусков
Чего ожидать при обновлении Elgg.
Мы придерживаемся семантического версионирования.
Следите за блогом, чтобы быть в курсе последних выпусков.
Содержание
Патчи/Исправления ошибок (2.1.x)
Каждые две недели.
Выпуски с исправлениями ошибок выпускаются регулярно, чтобы обеспечить стабильность, безопасность и отсутствие ошибок в Elgg. Чем выше третья цифра, тем более протестирован и стабилен выпуск.
Поскольку выпуски с исправлениями ошибок сосредоточены на исправлении ошибок, а не на внесении существенных изменений, темы и плагины должны работать от выпуска к выпуску с исправлениями.
Минорные выпуски/Выпуски с новыми функциями (2.x.0)
Каждые три месяца.
Когда мы внедряем новые функции, мы увеличиваем средний номер версии. Эти выпуски не так зрелы, как выпуски с исправлениями ошибок, но считаются стабильными и пригодными к использованию.
Мы делаем всё возможное для обеспечения обратной совместимости в этих выпусках, поэтому плагины должны работать от минорного выпуска к минорному.
Однако плагины могут потребовать обновления для использования новых функций.
Мажорные/Критические выпуски (x.0.0)
Каждый год.
Неизбежно, улучшение Elgg требует критических изменений, и выпускается новый мажорный релиз. Эти выпуски дают возможность основной команде внести стратегические, критические изменения в базовую платформу. Темы и плагины из старых версий, как правило, не будут работать без модификаций в разных мажорных выпусках.
Мы можем удалить устаревшие API, но не будем удалять API без предварительного объявления их устаревшими.
Зависимости Elgg могут быть обновлены до их мажорной версии или полностью удалены. Мы не будем удалять какие-либо зависимости до мажорного выпуска, но мы не «объявляем устаревшими» зависимости и не выдаём предупреждений перед их удалением.
Ваш пакет, плагин или приложение должны объявлять свои собственные зависимости напрямую, чтобы это не вызывало проблем.
Альфа-, бета-версии и кандидаты в релизы
Перед мажорными выпусками (а иногда и перед выпусками с новыми функциями) основная команда предлагает предрелизную версию Elgg для получения реального тестирования и обратной связи по выпуску. Они предназначены только для тестирования и не должны использоваться на рабочем сайте.
SemVer 2.0 не определяет конкретного значения для предрелизных версий, но мы подходим к альфа-, бета- и rc-выпускам со следующими общими рекомендациями:
Предрелизная версия -alpha.X означает, что всё ещё планируются критические изменения, но набор функций выпуска зафиксирован. Для этого выпуска нельзя предлагать новые функции или критические изменения.
Предрелизная версия -beta.X означает, что не осталось известных критических изменений для включения, но есть известные регрессии или критические ошибки, которые необходимо исправить.
Предрелизная версия -rc.X означает, что не осталось известных регрессий или критических ошибок для исправления. Эта версия может стать финальной стабильной версией Elgg, если не будет сообщено о новых блокирующих проблемах.
Обратная совместимость
Некоторые части системы требуют дополнительного пояснения, если мы говорим об обратной совместимости. Всё, что считается публичным API, должно соответствовать правилам обратной совместимости, которые являются частью семантического версионирования.
Классы и функции
Классы и функции, помеченные как @internal, не считаются частью публичного API и могут быть изменены/удалены в любое время. Если класс помечен как @internal, все свойства и методы в этом классе считаются приватным API и поэтому могут быть изменены/удалены в любое время.
Обратные вызовы событий
Все обратные вызовы событий никогда не должны вызываться напрямую, а только при запуске события.
Имя функции обратного вызова считается API, поскольку разработчикам плагинов необходимо иметь возможность полагаться на то, что они могут (от)регистрировать обратный вызов. Это применимо только если обратный вызов всё ещё служит той же цели. Если обратный вызов становится устаревшим, его можно удалить из системы.
Предупреждение
Исключениями из этих правил являются функции обратного вызова, связанные со следующими событиями system, эти обратные вызовы могут быть переименованы/удалены в любое время.
plugins_loadplugins_bootinitreadyshutdownupgrade
Набор тестов
Файлы набора тестов Elgg PHPUnit не считаются частью публичного API и могут быть изменены/удалены в любое время.
Представления
Имена представлений являются API.
Аргументы представлений (массив $vars) являются API.
Удаление или переименование представлений следует политикам объявления устаревшими для API.
Добавление новых представлений требует изменения минорной версии.
Вывод представлений не является API и может быть изменён между патч-релизами.