Libtool/versioning: различия между версиями

Материал из ALT Linux Wiki
(Import from freesource.info)
 
Строка 34: Строка 34:
но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим
но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим
релизом.</pre>
релизом.</pre>
То же самое, сказанное несколько другими словами (попроще). Взято из комментария в
файле configure.ac пакета libsexymm. Мне показалось, что это описание хотя и
несколько упрощённое, но весьма доходчиво.
{| class="standard"
! CURRENT
! REVISION
! AGE
! Изменение
|-
| +1
| 0
| +1
| Добавлен новый интерфейс, не нарушающий совместимости.
|-
| +1
| 0
| 0
| Удалён интерфейс. Совместимость со старыми версиями нарушена.
|-
|?
| +1
|?
| Внутренние изменения, не нарушающие ничего
|}

Версия от 12:38, 8 декабря 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Обновление версий библиотеки

Хихин Руслан (aka ruslanh@) перевёл раздел Updating version info из info libtool:

Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки:

 1. Стартовая версия для любой libtool библиотеки - `0:0:0'
    (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A.

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

 3. Если исходный код библиотеки , был изменён после последнего обновления, тогда
    увеличиваем REVISION (`C:R:A' становится `C:r+1:A').

 4. Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после
    последнего обновления, то увеличивается CURRENT, а REVISION устанавливается
    в 0 (`C:R:' становится `C+1:0:')

 5. Если какой-нибудь программный интерфейс был добавлен после последнего обновления,
    то увеличивается AGE.

 6. Если какой-нибудь программный интерфейс был удалён после последнего обновления,
   то АGE устанавливается в 0.

**Никогда** не устанавливайте версию библиотеки так, чтобы она соответствовала
версии вашего пакета. Это злоупотребление только поощряет недоразумения связанные
с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации
версий). Вместо этого, используйте ключ `-relеase'  (смотрите про нумерацию релизов),
но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим
релизом.

То же самое, сказанное несколько другими словами (попроще). Взято из комментария в файле configure.ac пакета libsexymm. Мне показалось, что это описание хотя и несколько упрощённое, но весьма доходчиво.

CURRENT REVISION AGE Изменение
+1 0 +1 Добавлен новый интерфейс, не нарушающий совместимости.
+1 0 0 Удалён интерфейс. Совместимость со старыми версиями нарушена.
? +1 ? Внутренние изменения, не нарушающие ничего