2008-09-27 3 views
1

Если у вас есть проект, который освобождает библиотеку и приложение, как вы обрабатываете номера версий между ними.library- vs. application-version

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

Новые выпуски библиотеки приводят к новым выпускам приложения (чтобы использовать все новые функции), но новые версии приложения могут не запускать новые выпуски библиотеки. Теперь как обрабатываются номера версий: Полностью независимы или должны быть зависимыми от библиотеки и приложения-версии?

ответ

1

Я бы сказал, что использую отдельные номера версий и, конечно же, документацию, какая минимальная версия библиотеки требуется для каждой версии приложения. Если они всегда имеют один и тот же номер версии, и вы только когда-либо проверяете приложение на версию с равными номерами, то они не являются действительно отдельными компонентами, поэтому не говорите, что они есть. Отпустите всю партию как один кусок.

Если вы сделаете их отдельными, вы можете предоставить им тот же номер версии, когда это подходит - например, после серьезного разрыва совместимости вы можете выпускать версию 2.0 одновременно.

Следующий пример иллюстрирует: xsltproc (приложение из командной строки) освобождается как часть libxslt (библиотека), поэтому не имеет собственного номера версии. Но libxslt зависит от двух других библиотек, а номера версий из них независимы.

$ xsltproc --version 
Using libxml 20628, libxslt 10120 and libexslt 813 
xsltproc was compiled against libxml 20628, libxslt 10120 and libexslt 813 
libxslt 10120 was compiled against libxml 20628 
libexslt 813 was compiled against libxml 20628 
2

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

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

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

0

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

Это хорошо работает, тем более что рамки и приложение стали достаточно большими, чтобы их могли разрабатывать различные команды.

Итак, мое мнение ... сохраните номера версий отдельно.