web-dev-qa-db-ja.com

Launchpadプロジェクトにパッチを提出するにはどうすればよいですか?

Git/GitHubのバックグラウンドがあり、Bazaar VCSについてほとんど知識がないので、Launchpadでホストされているプロジェクトにバグを報告したり、パッチを送信したりすることもあります。 「適切な」方法でそれを行いたいので、邪魔にならずにマージまたは改善の準備ができています。

私は自分のニーズに合ったまともな簡単なハウツーを見つけることができないようです。

私がこれまでにしたこと:

  1. Launchpadアカウントを作成しました。

  2. バグを報告し、

  3. bazaarをインストールし、SSHキーなどを設定します.

今それがGitHubなら、私は

  1. レポをフォークし、

  2. 分岐レポのクローンを作成し、

  3. 適切な名前のブランチを作成して作業を行い、

  4. コミット+プッシュ、

  5. gitHub WUIを使用してプルリクエストを作成します。

しかし、それはGitHubではなく、LaunchpadとBazaarの両方のアーキテクチャは、GitHub/Gitの対応するアーキテクチャとはまったく異なるようです。

それで、親切な魂が私を大量の文書にownれさせ、主に第二部の簡単なステップの道をコンパイルするのを救うことができるでしょうか?おそらく必要なときに関連するCLIコマンドを含めますか?


編集:Ubuntuパッケージ(それが何を意味するにせよ)またはLaunchpadプロジェクトについて具体的に尋ねているかどうかを明確にする必要があるようです。

UbuntuパッケージとUbuntu以外のパッケージの区別についてはあまり気にしません。どんなソフトウェアも今日Ubuntuにあり、明日には出てこない、またはその逆かもしれません。開発は配布よりも重要なことです。

だから私はそれを仮定していた

  • ubuntuで配布されるすべてのパッケージがLaunchpadでホストされるわけではありません。

  • launchpadの「公式」または「デフォルト」ワークフローが存在します(すべての開発者がBazaarの使用に同意できる場合、なぜ彼らのほとんどがパッチ適用ワークフローに同意できないのでしょうか?)、

だから、Ubuntuの方法ではなく、Launchpadの方法について尋ねています。交差点は広大なので、ここでかなり話題になっていると思うので、AUを選択しました。

18
Alois Mahdal

Launchpadプロジェクトですか?

(Launchpadプロジェクトであることを既に知っている場合は、これをスキップできます。)

Launchpadで見つかったすべてのプロジェクトが実際にそこでホストおよび開発されているわけではありません。他の場所(GitHub/Gitorious/etc)でホストされているコードのミラーもあります。これらの元のソースは「アップストリーム」プロジェクトと呼ばれ、通常はソースでパッチを送信し、Ubuntu(通常は次のリリース)で変更を「ダウンストリーム」で受信するのが最善です。

他の場所でホストされているか、Launchpadでホストされているかは、プロジェクトページで明確に示される必要があります。そうでない場合は、プロジェクトメンテナーに変更の受け取り方法を尋ねてください。上流プロジェクトの中には、単純なパッチファイルを好むものもあれば、それぞれのホストを介した送信/プッシュを好むものもあります。

特記事項として、公式のUbuntuパッケージ(ソフトウェアセンターからインストールできる公式のUbuntuリポジトリに保存されているソフトウェア)にはパッチを送信する方法がいくつかあります。これらのパッケージの多くはDebianから直接提供され、理想的にはそこで修正する必要があるためですUbuntuだけではありません。 (これはまったく別の質問です。)

パッチの提出方法

パッチを送信する一般的な方法は、ブランチを作成し、ローカルにコミットしてからLaunchpadにプッシュバックすることです。

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

その後、Webサイトを介して、またはbzr lp-proposeコマンドを使用して、分岐元の親にマージするブランチを提案できます。

バグを提出し、ブランチで修正した場合は、コミット時に以下を実行してください。000000は、代わりにどこかではなく、Launchpadで報告されたバグであると仮定して、バグ番号に置き換えます。 。

bzr commit --fixes=lp:000000

「デフォルト」ワークフローに関する注意

これはほとんど典型的なモダンワークフローであり、GitHubと比較することができます。ただし、Launchpadはもう少し長いため、このワークフローは最初からシステムに組み込まれるのではなく、事後に進化したため、一部の古いプロジェクトはパッチを受け入れる他の方法に依存する場合があります。しかし、ほとんどすべての新しいプロジェクトはこのワークフローに依存しています。GitHubには常に「プルリクエスト」があり、GitHubで何か別の方法を実行する手段がなかったため、人々はデフォルトでそれを使用します。

14
dobey

dobey's answer hereおよび Jorge Castro's answer に基づく最初の回答は、プロジェクト固有の質問に対してです。編集/修正/提案を歓迎します。

  1. Launchpadアカウントを作成します。これには、Launchpadユーザー名(LP-USER)が含まれます

  2. https://launchpad.net/~LP-USER/+editsshkeysでランチパッドにSSHキーを追加します

  3. ランチパッドで、プロジェクト名(PROJECT-NAME)をメモします。

  4. プロジェクトに対して問題を報告します。問題にはバグ番号(000000)が割り当てられます。

  5. Bazaarがインストールされていることを確認してくださいdpkg-query -l bzrBazaar/Launchpad integration を読んでください。

  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

7
david.libremone