ing156 / vacuum-im

Automatically exported from code.google.com/p/vacuum-im
GNU General Public License v3.0
0 stars 0 forks source link

Использовать отдельные файлы для хранения версий ABI и приложения и читать их из qmake и cmake #837

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Сейчас их надо изменять в двух отдельных 
местах, что не очень полезно для здоровья.

Original issue reported on code.google.com by gelraen.ua on 2 Jan 2015 at 11:33

GoogleCodeExporter commented 8 years ago
Мне не нравится как сейчас работает это ABI. 
Во-первых его надо изменять после каждого 
изменения в либе, что в принципе не удобно, 
и приводит к созданию ненужных версий. 
Во-вторых, выделение libvacuumutils в отдельный 
пакет, от которого зависят сам вакуум и 
дополнительные плагины, все-равно приводит 
к проблемам при обновлении т.к. если хотя бы 
один из плагинов не обновился, то он не 
удаляется, а для него остается старая 
версия либы. Я предлагаю отказаться от ABI в 
нынешнем виде, объединить пакеты вакуума и 
либы и сделать дополнительные плагины 
зависимыми только от версии самого 
вакуума. А чтобы исключить запуск 
дополнительных плагинов собранных со 
старой версией либы, сделать это ABI 
экспортируемой переменной, которую 
плагины смогут проверять при запуске.

Original comment by potapov.s.a on 3 Jan 2015 at 7:42

GoogleCodeExporter commented 8 years ago
Ммм... чтобы избегать подобных проблем 
указывают major и minor versions: minor version изменяется 
при любых совместимых изменениях, major - при 
несовместимых. Тем не менее, это задача 
пока что только про усовершенствование 
системы сборки, а не изменение 
версионирования vacuumutils.

Original comment by gelraen.ua on 3 Jan 2015 at 10:51

GoogleCodeExporter commented 8 years ago
> чтобы избегать подобных проблем 
указывают major и minor versions
эта схема не работает для ночных сборок, 
когда ABI меняется, а версия приложения нет, 
именно для этого и вводили версию ABI.

Мне больше нравится хранить подобную 
информацию в одном файле, сейчас есть 
definitions/version.h и туда можно положить и версию 
ABI. Когда много файлов, легко запутаться в 
них и забыть внести в изменения.

Original comment by potapov.s.a on 3 Jan 2015 at 10:59

GoogleCodeExporter commented 8 years ago
Я имею в виду ABI major и ABI minor. Версия 
приложения здесь ни при чём, плагинам, 
вобщем-то, о ней знать не нужно вообще.

Original comment by gelraen.ua on 3 Jan 2015 at 5:03

GoogleCodeExporter commented 8 years ago

Original comment by potapov.s.a on 5 Jan 2015 at 7:32

GoogleCodeExporter commented 8 years ago
А я предлагаю отказаться от использования 
ABI в скриптах сборки, и делать версию либы 
равной версии самого вакуума, а ABI 
проверять непосредственно в коде при 
загрузке сторонних плагинов.

Original comment by potapov.s.a on 5 Jan 2015 at 7:34

GoogleCodeExporter commented 8 years ago
Тогда с Nightly-сборками может быть проблема, 
когда ABI поменяется, а версия - нет.

Original comment by gelraen.ua on 5 Jan 2015 at 10:53

GoogleCodeExporter commented 8 years ago
Как раз для этого я и предлагаю проверять ABI 
внутри плагинов.

Original comment by potapov.s.a on 6 Jan 2015 at 6:52