Модули - несовместимость

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

korshunov
korshunov
Репутация: 102
Сообщения: 1540
Зарегистрирован: 03.12.2015
С нами: 5 лет 10 месяцев
Skype

Сообщение #1 korshunov » 30.07.2021, 13:07

Наткнулся на такую ситуацию. Модуль, который создавался и прекрасно работал на 4.0.5, не работает на 4.1.1. На некоторых страницах белый экран с ошибкой 500.

Включение debug_mode дает
Fatal error: Declaration of Okay\Modules\Tobas\Serv3ices\Helpers\MetadataHelpers\Serv3iceMetadataHelper::getH1Template() must be compatible with Okay\Helpers\MetadataHelpers\CommonMetadataHelper::getH1Template():

Оказывается, в версии 4.0.5 и 4.1.1 функции объявлены по-разному
public function getH1Template()
public function getH1Template(): string

При начальном появлении модульности в Okay
viewtopic.php?f=5&t=1442&p=6705
было заявлено:
OkayCMS писал(а):Когда доработки затрагивали ядро системы, сделать обновление доработанной системы было проблематично. В некоторых случаях более разумно было отказаться от обновлений сильно доработанной системы. Теперь, когда работы будут выполняться отдельно от ядра - обновления системы должны проходить быстрее и безболезненнее.

А теперь, выходит, при установке модуля на старшую версию имеем риск потери работоспособности (хорошо, если частично). А устанавливать обновление Okay на систему с работающими модулями - риск еще больше.

Одно из главных преимуществ модульности в реальности не работает...

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 208
Сообщения: 1540
Зарегистрирован: 12.11.2015
С нами: 5 лет 11 месяцев
Сайт Skype

Сообщение #2 OkayCMS » 30.07.2021, 18:40

Эмм. Да, верно. Для этого и ведется версионность. Первая цифра обозначает что модули и шаблоны с прошлой версии точно не будут работать на текущей. Вторая цифра - показывает что изменен функционал ядра, который может затронуть работу некоторых модулей, но не потребует глобальных переделывании. Третья цифра - это фиксы, которые не повлияют на работу модулей.

Если вы используете модуль от старой версии на более новой, то вероятно что часть кода ядра модуля может изменяться.

korshunov
korshunov
Репутация: 102
Сообщения: 1540
Зарегистрирован: 03.12.2015
С нами: 5 лет 10 месяцев
Skype

Сообщение #3 korshunov » 31.07.2021, 07:17

OkayCMS писал(а):Первая цифра обозначает что модули и шаблоны с прошлой версии точно не будут работать на текущей.

Первая цифра означает совсем не это, а номер основной версии и больше ничего.

OkayCMS писал(а):Если вы используете модуль от старой версии на более новой, то вероятно что часть кода ядра модуля может изменяться.

Вспоминается известный анекдот:
- Скажите, если я пойду по этой улице, там будет вокзал?
- Он там будет, даже если вы туда не пойдете!

Перефразируя фразу из известного фильма, "выглядит так, как будто в OkayCMS орудует компания двоечников"...

Aleks
Aleks
Репутация: 7
Сообщения: 68
Зарегистрирован: 24.05.2021
С нами: 5 месяцев 1 день

Сообщение #4 Aleks » 01.08.2021, 09:05

Это что же получается? Чтобы без проблем работать на 4.1.1 надо не апгрейд делать, а полностью заменить CMS.
Т.е. сохранить базу данных, удалить 4.0.5, установить 4.1.1. И будет нам счастье?

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 208
Сообщения: 1540
Зарегистрирован: 12.11.2015
С нами: 5 лет 11 месяцев
Сайт Skype

Сообщение #5 OkayCMS » 01.08.2021, 09:57

korshunov писал(а):
OkayCMS писал(а):Первая цифра обозначает что модули и шаблоны с прошлой версии точно не будут работать на текущей.

Первая цифра означает совсем не это, а номер основной версии и больше ничего.


Почитайте вот это https://semver.org/lang/ru/

Добавлено спустя 3 минуты 51 секунду:
Aleks писал(а):Это что же получается? Чтобы без проблем работать на 4.1.1 надо не апгрейд делать, а полностью заменить CMS.
Т.е. сохранить базу данных, удалить 4.0.5, установить 4.1.1. И будет нам счастье?

Нет, если вы делаете апгреид, то система точно также будет работать. При этом, если у вас был модуль на старую версию, он точно также может не заработать на новой версии.

Постараюсь на аналогии. Не очень корректной, но всё же.

У вас есть телефон Samsung с разъемом для зарядки miniUSB. После того как вы купите следующую версию этого телефона, там может быть тоже зарядка miniUSB, а может уже быть TYPE C. И тогда ваша старая зарядка не подойдёт. Примерно также и с модулями. Если обновление меняет вторую цифру, то модули могут подойти, а могут и не заработать. Но исправление их - не глобальное.

korshunov
korshunov
Репутация: 102
Сообщения: 1540
Зарегистрирован: 03.12.2015
С нами: 5 лет 10 месяцев
Skype

Сообщение #6 korshunov » 01.08.2021, 12:56

OkayCMS писал(а):
korshunov писал(а):
Первая цифра означает совсем не это, а номер основной версии и больше ничего.


Почитайте вот это https://semver.org/lang/ru/

По ссылке написан ряд правил для нумерации версий. Видимо, этой ссылкой Вы хотите сказать, что Okay CMS придерживается описанных там правил нумерации версий.

В действительности это совсем не так. Например, по ссылке сказано:
Мажорная версия X (X.y.z | X > 0) ДОЛЖНА быть увеличена, если в публичном API представлены какие-либо обратно несовместимые изменения. А в начале темы как раз приведен пример, что между версиями 4.0.5 и 4.1.1 наблюдаются эти самые несовместимые изменения. То есть если придерживаться правил, то текущую версию 4.1.1 надо называть 5.0.0.

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

Последняя фраза весьма точно описывает то, что мы сейчас в OkayCMS и наблюдаем...

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 208
Сообщения: 1540
Зарегистрирован: 12.11.2015
С нами: 5 лет 11 месяцев
Сайт Skype

Сообщение #7 OkayCMS » 01.08.2021, 13:06

korshunov писал(а):
OkayCMS писал(а):
Почитайте вот это https://semver.org/lang/ru/

По ссылке написан ряд правил для нумерации версий. Видимо, этой ссылкой Вы хотите сказать, что Okay CMS придерживается описанных там правил нумерации версий.

В действительности это совсем не так. Например, по ссылке сказано:
Мажорная версия X (X.y.z | X > 0) ДОЛЖНА быть увеличена, если в публичном API представлены какие-либо обратно несовместимые изменения. А в начале темы как раз приведен пример, что между версиями 4.0.5 и 4.1.1 наблюдаются эти самые несовместимые изменения. То есть если придерживаться правил, то текущую версию 4.1.1 надо называть 5.0.0.

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

Последняя фраза весьма точно описывает то, что мы сейчас в OkayCMS и наблюдаем...

Я не хочу с вами спорить. Я описал вам какого принципа придерживаемся мы в нумерации версии. А вы уже вольны сами решать, прислушиваться к моим словам или нет.

korshunov
korshunov
Репутация: 102
Сообщения: 1540
Зарегистрирован: 03.12.2015
С нами: 5 лет 10 месяцев
Skype

Сообщение #8 korshunov » 01.08.2021, 17:29

OkayCMS писал(а):Я описал вам какого принципа придерживаемся мы в нумерации версии.

Описали Вы крайне небрежно и малопонятно...

OkayCMS писал(а):Первая цифра обозначает что модули и шаблоны с прошлой версии точно не будут работать на текущей.

Задумайтесь хоть чуть над тем что пишете. По Вашим словам выходит, например:
1. если первая цифра 1, то это означает, что "модули и шаблоны с прошлой версии точно не будут работать на текущей".
2. если первая цифра 2, то это означает ровно то же самое.
3. если первая цифра 3, 4 или иная, то это опять означает ровно то же самое.
4. Любая первая цифра означает одно и тоже...

Столь же невразумительно пишете по прочим цифрам. Прочтите, что написано по ссылке, там столь очевидных бессмысленностей нет...

OkayCMS M
Администратор
Аватара
OkayCMS M
Администратор
Репутация: 208
Сообщения: 1540
Зарегистрирован: 12.11.2015
С нами: 5 лет 11 месяцев
Сайт Skype

Сообщение #9 OkayCMS » 01.08.2021, 18:47

Океи, уточняю. Если ИЗМЕНЕНА первая цифра в нумерации версии, то модули и шаблоны с прошлой версии точно не будут работать на текущей.

korshunov
korshunov
Репутация: 102
Сообщения: 1540
Зарегистрирован: 03.12.2015
С нами: 5 лет 10 месяцев
Skype

Сообщение #10 korshunov » 02.08.2021, 06:41

OkayCMS писал(а):Океи, уточняю. Если ИЗМЕНЕНА первая цифра в нумерации версии, то модули и шаблоны с прошлой версии точно не будут работать на текущей.

После уточнения Ваше утверждение стало осмысленным, это намного лучше. Но оно, к сожалению, неверно, неужели не видите очевидное?


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя