$ gear-update-tag -a -c gear-update-tag: .gear/rules line 2: Invalid tag name "2.0~rc1": invalid characters found Было бы неплохо придумать схему по трансформации версии в строку, которая поддерживается git'ом. например, в данном случае достаточно просто убрать символ ~ и тогда версия в spec может начать соответствовать стандарту semver: https://semver.org/
https://dep-team.pages.debian.net/deps/dep14/ When a Git tag needs to refer to a specific version of a Debian package, the Debian version needs to be mangled to cope with Git's restrictions. This mangling is deterministic and reversible: * Each colon (:) is replaced with a percent (%) * Each tilde (~) is replaced with an underscore (_) * A hash (#) is inserted between each pair of adjacent dots (..) * A hash (#) is appended if the last character is a dot (.) * If the version ends in precisely .lock (dot l o c k, lowercase, at the end of the version), a hash (#) is inserted after the dot, giving .#lock. This can be expressed concisely in the following Perl5 statements: y/:~/%_/; s/\.(?=\.|$|lock$)/.#/g; The reverse transformation is: * Each percent (%) is replaced with a colon (:) * Each underscore (_) is replaced with a tilde (~) * Each hash (#) is deleted Довольно удачный, IMHO, набор правил, мы можем `y/:~/%_/;` спокойно забирать.
Если мы исправим эту багу, то из известных мне блокеров размещать в Sisyphus и p11 пакеты с версиями в духе 2.6.1~rc1 останется только sisyphus-check, выступающий последним gate для момента, когда всё остальное будет готово.
Created attachment 22116 [details] demo for https://git.altlinux.org/tasks/431714
наверняка есть ещё где-то инструменты, которые сравнивают версии пакетов без учёта ~ и надо конечно выявить такие. лучше заранее.
(In reply to Arseny Maslennikov from comment #3) > Created attachment 22116 [details] > demo for https://git.altlinux.org/tasks/431714 Мне кажется, стоит написать в rpm %changelog (может и в коммите тоже) подробнее, что значит это изменение на практике, и какие символы на что заменяются. Потому что сейчас это можно понять только из исходного кода.