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


19

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

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

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

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

  2. バグを報告し、

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

今それがGitHubなら、私は

  1. レポをフォークし、

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

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

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

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

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

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


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

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

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

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

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

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


この短いドキュメントは役立ちますか?その場合、必要に応じて既存の回答を自由に展開してくださいdoc.bazaar.canonical.com/bzr.dev/en/mini-tutorial
david.libremone

回答:


14

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と比較できる典型的な現代のワークフローです。ランチパッドはもう少し長いので、このワークフローは最初からシステムに組み込まれるのではなく、事後に進化しました。そのため、古いプロジェクトの中には、パッチを受け入れる他の方法に依存するものがあります。しかし、ほとんどすべての新しいプロジェクトはこのワークフローに依存しています。GitHubには「プルリクエスト」が常に存在し、GitHubで何か違うことをする手段がなかったため、人々はデフォルトでそれを使用するだけです。


7

ここでのdobeyの回答とプロジェクト固有の質問に対するJorge Castroの回答に基づく初期回答。編集/修正/提案を歓迎します。

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

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

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

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

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

  6. bzr whoami "Your Name <name@example.com>"andでbzr設定します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


質問:私の「プロジェクト名」であれば、ubuntu/saucy/msttcorefonts私がやっているbzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchnameだけかbzr push lp:~amandabee/msttcorefonts/actualbranchname
アマンダ

前者:bzr push lp:~amandabee/ubuntu/saucy/msttcorefonts/actualbranchname働いた
アマンダ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.