Libtool/versioning: различия между версиями
PhpCoder (обсуждение | вклад) (Import from freesource.info) |
Нет описания правки |
||
(не показаны 3 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
== Обновление версий библиотеки == | |||
Хихин Руслан (aka ruslanh@) [http://lists.altlinux.org/pipermail/sisyphus/2007-March/094557.html перевёл] раздел Updating version info из <tt>info libtool</tt>: | |||
Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки: | |||
# Стартовая версия для любой libtool библиотеки - `0:0:0' (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A. | |||
# Изменяйте информацию о версии библиотеки только перед публичным релизом вашего программного обеспечения. Более частое изменение версии является ненужным, и только увеличит скорость изменения номера интерфейса. | |||
# Если исходный код библиотеки был изменён после последнего обновления, тогда увеличиваем REVISION (`C:R:A' становится `C:r+1:A'). | |||
# Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после последнего обновления, то увеличивается CURRENT, а REVISION устанавливается в 0 (`C:R:' становится `C+1:0:') | |||
# Если какой-нибудь программный интерфейс был добавлен после последнего обновления, то увеличивается AGE. | |||
# Если какой-нибудь программный интерфейс был удалён после последнего обновления, то АGE устанавливается в 0. | |||
'''Никогда''' не устанавливайте версию библиотеки так, чтобы она соответствовала версии вашего пакета. Это злоупотребление только поощряет недоразумения, связанные с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации | |||
версий). Вместо этого, используйте ключ `-relеase' (смотрите про нумерацию релизов), но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим релизом. | |||
То же самое, сказанное несколько другими словами (попроще), взято из комментария в | |||
файле configure.ac пакета libsexymm: | |||
{| class="standard" | |||
! CURRENT | |||
! REVISION | |||
! AGE | |||
! Изменение | |||
|- | |||
| +1 | |||
| 0 | |||
| +1 | |||
| Добавлен новый интерфейс, не нарушающий совместимости. | |||
|- | |||
| +1 | |||
| 0 | |||
| 0 | |||
| Удалён интерфейс. Совместимость со старыми версиями нарушена. | |||
|- | |||
|? | |||
| +1 | |||
|? | |||
| Внутренние изменения, не нарушающие ничего | |||
|} | |||
=== Ссылки === | |||
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html | |||
[[Категория:Devel]] | |||
Текущая версия от 00:30, 26 января 2011
Обновление версий библиотеки
Хихин Руслан (aka ruslanh@) перевёл раздел Updating version info из info libtool:
Здесь установлены правила, которые помогут вам правильно задать информацию о версиях библиотеки:
- Стартовая версия для любой libtool библиотеки - `0:0:0' (CURRENT=0, REVISION=0, AGE=0). Формат версии C:R:A.
- Изменяйте информацию о версии библиотеки только перед публичным релизом вашего программного обеспечения. Более частое изменение версии является ненужным, и только увеличит скорость изменения номера интерфейса.
- Если исходный код библиотеки был изменён после последнего обновления, тогда увеличиваем REVISION (`C:R:A' становится `C:r+1:A').
- Если какой-нибудь программный интерфейс был добавлен, удалён или изменён после последнего обновления, то увеличивается CURRENT, а REVISION устанавливается в 0 (`C:R:' становится `C+1:0:')
- Если какой-нибудь программный интерфейс был добавлен после последнего обновления, то увеличивается AGE.
- Если какой-нибудь программный интерфейс был удалён после последнего обновления, то АGE устанавливается в 0.
Никогда не устанавливайте версию библиотеки так, чтобы она соответствовала версии вашего пакета. Это злоупотребление только поощряет недоразумения, связанные с нумерацией версий библиотек и версий пакетов (у них разная политика нумерации версий). Вместо этого, используйте ключ `-relеase' (смотрите про нумерацию релизов), но не ждите, что каждый релиз вашего пакета будет бинарно совместим с любым другим релизом.
То же самое, сказанное несколько другими словами (попроще), взято из комментария в
файле configure.ac пакета libsexymm:
CURRENT | REVISION | AGE | Изменение |
---|---|---|---|
+1 | 0 | +1 | Добавлен новый интерфейс, не нарушающий совместимости. |
+1 | 0 | 0 | Удалён интерфейс. Совместимость со старыми версиями нарушена. |
? | +1 | ? | Внутренние изменения, не нарушающие ничего |
Ссылки
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html