如何向启动板项目提交补丁?


19

拥有Git / GitHub背景并且对Bazaar VCS知之甚少,我偶尔会向启动板上托管的项目报告错误,甚至发送补丁。我想以一种“适当”的方式进行操作,以便在不妨碍的情况下可以进行合并或改进。

我似乎找不到适合我需要的像样的简单操作方法。

到目前为止,我做了什么:

  1. 我已经创建了启动板帐户,

  2. 报告了错误,

  3. 安装了Bazaar并设置SSH密钥等。

现在如果是GitHub,我会

  1. 分叉仓库

  2. 克隆分叉的仓库

  3. 创建一个合理命名的分支并执行工作,

  4. 提交+推送,

  5. 使用GitHub WUI创建拉取请求。

但这不是GitHub,Launchpad和Bazaar架构似乎与GitHub / Git架构有很大不同。

那么,一个善良的灵魂可以救我免于淹没大量文件并编写一条简单的步骤路径(主要是第二部分)吗?可能在需要时包括相关的CLI命令吗?


编辑:似乎我应该弄清楚是否要特别询问有关Ubuntu软件包(无论是什么意思)或Launchpad项目的问题。

我不太在乎Ubuntu软件包和非Ubuntu软件包之间的区别。现在,任何软件都可以在Ubuntu中使用,明天就可以使用,反之亦然。发展远比分配重要。

所以我以为

  • 并非Ubuntu中分发的每个软件包都托管在Launchpad上,

  • 存在Launchpad的“正式”或“默认”工作流程(好吧,如果所有开发人员都可以同意使用Bazaar,那么为什么大多数人都不同意修补工作流程?),

所以我问的是Launchpad方式,而不是Ubuntu方式。我选择了AU,因为交叉点很大,所以我想这里很有趣。


此简短文档有帮助吗?如果是这样,请根据需要随时
david.libremone 2013年

Answers:


14

它是启动板项目吗?

(如果您已经知道这是一个启动板项目,则可以跳过此步骤。)

并非在Launchpad上找到的所有项目实际上都是在此托管和开发的-有些是托管在其他地方(GitHub / Gitorious / etc)的代码的镜像,有些则来自Debian。这些原始源称为“上游”项目,通常最好在源上提交补丁,然后让更改在Ubuntu(通常在下一版本)中“下游”到达。

无论是在其他位置还是在启动板上托管,都应在项目页面上明确指出。如果不是,请询问项目维护者他们希望如何获得更改。一些上游项目更喜欢简单的补丁文件,另一些更喜欢通过各自的宿主提交/推送。

需要特别指出的是,官方的Ubuntu软件包(可以从软件中心安装在官方Ubuntu仓库中的软件存储)具有几种不同的提交补丁的方式,因为其中许多软件包直接来自Debian,因此最好在此处进行修复。而不是仅在Ubuntu中。(这是另一个完整的问题。)

如何提交补丁

提交补丁的一般方法是创建分支,在本地提交,然后将其推回启动板:

bzr push lp:~user/project/branch-name

然后,可以通过网站或使用bzr lp-propose命令建议分支合并到分支的父级。

如果您已提交错误,并且分支机构确实已解决该错误,请确保在提交时执行以下操作000000,假设错误是在Launchpad上报告的,而不是其他地方,则在您的错误号处替换为错误号。

bzr commit --fixes=lp:000000

关于“默认”工作流程的注释

这几乎是典型的现代工作流程,您可以将其与GitHub进行比较。但是Launchpad的时间要长一些,因此此工作流程是事后发展的,而不是从一开始就内置到系统中,因此某些较旧的项目可能依赖于其他接受补丁的方法。但是,大多数最新项目都依赖于此工作流,在GitHub上始终存在“拉取请求”,而人们只是默认使用它,因为从来没有办法在GitHub上做一些不同的事情。


7

最初的答案基于dobey在这里的答案以及Jorge Castro对项目特定问题的答案。欢迎进行修改/更正/建议。

  1. 创建一个启动板帐户。这将包括启动板用户名(LP-USER

  2. 将您的SSH密钥添加到启动板,网址为 https://launchpad.net/~LP-USER/+editsshkeys

  3. 在启动板上,记下项目名称(PROJECT-NAME)。

  4. 根据项目报告问题。将为该问题分配一个错误号(000000)。

  5. 确保已安装Bazaar dpkg-query -l bzr。您可能需要阅读Bazaar / Launchpad集成

  6. 使用bzr whoami "Your Name <name@example.com>"配置bzrbzr launchpad-login LP-USER

  7. 在您的计算机上,签出项目的本地分支

    bzr branch lp:PROJECT-NAME
    

    (这将创建一个名为的文件夹,PROJECT-NAME其中包含最新的项目代码。)

  8. 使项目运行。做出改变。测试您的更改。(这些步骤是特定于项目和问题的。)

  9. 提交您的更改,包括错误号(000000)。

    bzr commit --fixes=lp:000000
    
  10. 这将打开一个提交对话框,您可以在其中添加说明更改的更改日志条目。

  11. 将您的更改推送到启动板。(这将创建一个与您的帐户关联的新的远程分支。)

    bzr push lp:~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME
    

    NEW-BRANCH-NAME应该是已修复问题/已添加功能的简短描述性名称)

  12. 使用bzr lp-open或通过转到浏览器来打开分支https://code.launchpad.net/~LP-USER/PROJECT-NAME/NEW-BRANCH-NAME/

  13. 提出合并与bzr lp-propose或从URL中选择最后的一步“提出合并”,并补充说明,粘贴lp:PROJECT-NAME您要提出到并单击分支Submit


问题:如果我的“项目名称”是 ubuntu/saucy/msttcorefonts我在做什么,bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname还是刚刚在做bzr push lp:~amandabee/msttcorefonts/actualbranchname
Amanda

前者:bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname工作
阿曼达
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.