...приводящие к неожиданным проблемам при последующем обновлении (e.g. 1.0 < 1.0pre лексикографически).
Subject: [sisyphus] Как правильно давать версию пакету? Date: Fri, 25 Nov 2005 16:50:32 +0200 From: Slava Dubrovskiy To: Sisyphus lists.altlinux.org Здравствуйте. Запаковал пакет с той версией какая указана в апстриме – 7.1PRE1. Теперь вышла 7.1.1 и апт считает, что 7.1PRE1 больше чем 7.1.1. Отсюда вопрос: что делать в данной ситуации и как правильно разрулить?
Поведение apt вполне объяснимо, ведь
т.е. 7.1PRE1 действительно больше чем 7.1.1.
Выход в данной ситуации один. Давать номера пакетов вида:
version-altx.prefix
Например, в данной ситуации, было бы лучше версию PRE1 запаковать как 7.1-alt0.PRE1, а официальный релиз тогда имел бы версию 7.1-alt1 и т.д. Тоже самое предлагается делать и для cvs (например 7.1-alt0.cvs20051128) и всяких там alpha/beta/rc/pre. Сборка alt0 как раз визуально выделят версии cvs/pre из списка релизов.
То же самое относится и к пакетам имеющим iplXXmdk вместо altXX в номере сборки. Без смены версии пакета, менять iplXXmdk на alt (пусть даже и XX+1) не стоит!!! Не верите на слово:
Если пакет с release вида alt0.cvsyyyymmdd собирается для backports, сообразно backports policy следует выставить его в alt0.0.cvsyyyymmdd; при этом “0” лексикографически меньше “c” и последуюшее обновление пройдёт успешно по крайней мере по этой части.
Надеюсь, что данная рекомендация попадет в полиси.
TODO: добавить в policy и/или ссылку на него, если имеется
Дату cvs snapshot тоже можно запихивать в release, например:
softinka-0.9.0-alt5cvs20050803 — CVS «недалеко от 0.9.0, взятый после сборки alt5 на базе 0.9.0»
softinka-0.9.1-alt0cvs20051024 — CVS «ближе к 0.9.1»
Насколько помню, были некоторые нарекания на впихивание подобных тегов в %version (в основном из-за больших шансов сломать «простую» обновляемость) и на присваивание cvs %release вида alt1* (скорее уже эстетические).
При появлении в Сизифе пакетов с alt0.* в backports приходится помещать нечто вида alt0.0.*, что не слишком удачно.
Предлагаю, в Сизифе нумировать релизы начиная от alt1, зарезирвировав alt0 для backports.
Хотел бы осветить момент, который мне был не сразу ясен – release (alt0, alt1, ..., altx) — это, скажем, версия спека для заданной версии тарбола, которая позволяет, например, менять спек не меняя версии тарбола, например софт для сборки пакета в версии не менялся, а в спеке была исправлена ошибка – для этой цели можно увеличить altx.