如何从 Launchpad 配方中的 {latest-tag} 中删除前缀?

如何从 Launchpad 配方中的 {latest-tag} 中删除前缀?

我有一个启动板食谱看起来像这样:

# git-build-recipe format 0.4 deb-version {latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}
lp:kvantum master
nest packaging lp:~krisives/kvantum/+git/kvantum-packaging debian master

但是,那上游在版本号前加上前缀,V这会导致打包过程抱怨版本必须以数字开头。作者希望保留其V前缀标签名称。

除了手动修改changelog我的包装存储库之外,有没有办法让配方自动使用{latest-tag}而不破坏构建过程?

答案1

一个解决方法是简单地确保上游版本是软件包版本的组成部分以数字开头,插入一个数字。例如,您可以使用:

# git-build-recipe format 0.4 deb-version 0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}

请注意,这将比您当前扩展中已经发布的任何内容的排序要低,因为例如0V1排序在之后V1。如果必须,您可以使用一个纪元(例如,1:0{latest-tag}-0~{time}~rev{revno}~pkg{revno:packaging}以确保它排序高于之前发布的任何内容,但这种颠簸是不可逆的,因此应尽可能避免。

了解更多信息:

除了将“最新上游标签”嵌入到最终版本字符串中之外,我在文档中没有看到任何选项可以对它执行任何操作,如果标签是上游声明它的唯一位置,也没有任何其他方法可以获取上游版本。因此,我认为我的解决方法或类似的方法目前是您唯一的选择,但我们可以看看是否有其他人有其他答案。

如果您不能接受此解决方法,欢迎报告针对 git-build-recipe 的错误包括功能请求以涵盖诸如此类的新用例。不过,我无法说出对于一般情况下哪些增强功能是合适的答案。例如,在扩展中提供基于正则表达式的替换的增强功能可能是可行的,但可能需要以确保在面对不受信任的配方输入时无法在运行 git-build-recipe 的主机上执行恶意代码的方式实现。在尝试实现这样的功能增强之前,最好先在错误中找到一致意见。

相关内容