Libtool/versioning
Материал из ALT Linux Wiki
(Различия между версиями)
PhpCoder (обсуждение | вклад) (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
Обновление версий библиотеки
Хихин Руслан (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 | ? | Внутренние изменения, не нарушающие ничего |