如何向 Launchpad 项目提交补丁?

如何向 Launchpad 项目提交补丁?

我有 Git/GitHub 背景,但对 Bazaar VCS 知之甚少,因此我偶尔会向 Launchpad 上托管的项目报告错误,甚至发送补丁。我希望以“适当”的方式进行,以便可以进行合并或改进,而不会造成任何阻碍。

我似乎找不到适合我需要的简单实用的方法。

我目前所做的:

  1. 我已经创建了一个 Launchpad 账户,

  2. 报告了错误,

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

如果是 GitHub,我会

  1. 分叉 repo,

  2. 克隆分叉的仓库,

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

  4. 提交 + 推送,

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

但它不是 GitHub,而且 Launchpad 和 Bazaar 架构看起来与 GitHub/Git 的架构有很大不同。

那么,有没有人能帮我免于淹没在大量文档中,并编写一个简单的步骤路径,主要是第二部分?在需要时可能包括相关的 CLI 命令?


编辑:似乎我应该澄清我是否具体询问有关 Ubuntu 软件包(不管它是什么意思)或 Launchpad 项目。

我其实不太在意 Ubuntu 软件包和非 Ubuntu 软件包之间的区别。任何软件都可能今天在 Ubuntu 中,明天就不在了,反之亦然。开发比分发更重要。

所以我假设

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

  • 存在 Launchpad 的“官方”或“默认”工作流程(如果所有开发人员都同意使用 Bazaar,为什么他们中的大多数不能同意修补工作流程?),

所以我问的是 Launchpad 方式,而不是 Ubuntu 方式。我选择 AU 是因为两者的交集很广,我想它在这里很符合主题。

答案1

它是一个 Launchpad 项目吗?

(如果您已经知道这是一个 Launchpad 项目,则可以跳过这一步。)

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

项目页面上应该明确标明它是托管在其他地方还是在 Launchpad 上。如果没有,只需询问项目维护者他们希望如何接收更改。一些上游项目更喜欢简单的补丁文件,其他项目更喜欢通过各自的主机提交/推送。

特别需要注意的是,官方 Ubuntu 软件包(存储在官方 Ubuntu 存储库中、可从软件中心安装的软件)有几种不同的提交补丁的方法,因为其中许多软件包直接来自 Debian,理想情况下应该在那里进行修复,而不是仅在 Ubuntu 中进行修复。(这是另一个问题。)

如何提交补丁

提交补丁的一般方式是创建分支、在本地提交并将其推送回 Launchpad:

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

然后,您可以通过网站或使用命令提议将您的分支合并到您分支的父分支中bzr lp-propose

如果您已提交错误,并且您的分支确实修复了它,请确保在提交时执行以下操作,其中000000替换为您的错误编号,假设它是在 Launchpad 上报告的错误,而不是在其他地方报告的错误。

bzr commit --fixes=lp:000000

关于“默认”工作流程的说明

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

答案2

初步答案基于dobey 的回答这里和豪尔赫·卡斯特罗的回答针对项目特定问题。欢迎编辑/更正/建议。

  1. 创建 Launchpad 帐户。这将包括 Launchpad 用户名 ( LP-USER)

  2. 将 SSH 密钥添加到启动板https://launchpad.net/~LP-USER/+editsshkeys

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

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

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

  6. 配置 bzr与和bzr whoami "Your Name <[email protected]>"bzr launchpad-login LP-USER

  7. 在你的机器上,查看项目的本地分支

    bzr branch lp:PROJECT-NAME
    

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

  8. 启动项目。进行更改。测试更改。(这些步骤针对具体项目和问题。)

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

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

  11. 将您的更改推送至 Launchpad。(这将创建与您的帐户关联的新远程分支。)

    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

相关内容