Skip to main content.
Google custom search

NetBSD リリースエンジニアリング: pull-up 要求


一般的な情報 (トップ)

リリース枝の pull-up 要求は、 リリース枝の分岐後に、開発者が (trunk での) 変更をリリース枝に反映して、 この変更をその後のパッチリリースに反映するための仕組みです。 リリース枝への変更を注意深く観察して、品質を保てるようにするため、 pull-up 要求は、 私たちリリースエンジニアリングチームに送ってください。

pull-up 要求は、 枝ごとに専用の電子メールアドレスに送ってください。

リリースエンジニアリングチームの方針に関する問題や、 一般的な質問は、 へ送ってくださって結構です。

個々のリリースに関する問題や懸念事項は、 各リリース用のメーリングリストへ送ってください。

このページでは、pull-up 要求の指針を掲載します。 ここの説明をご覧になると、pull-up 要求では、 やることがたくさんあるんだと思われることでしょう。 ある意味、そういうものです。 pull-up 要求の提出前には、検証とテストをして、 何が変わるのかをよく理解しておく必要があります。 ただし、それは、要求の提出を考えた時点で、もう済んでいるはずです。 このため、さらに必要な作業は、私たち (リリースエンジニアリングチーム) 向けに文書化することだけです。 pull-up 要求に関する全情報をあなたはすでに知っており、 その情報を私たちに伝えるのは簡単なのですから、 私たちにゼロから全情報を作らせる必要はまったくありません。

pull-up に必要なこと (トップ)

  • pull-up 要求は、かならず、 その変更が最新版リリースにとってふさわしいことを、 責任をもって確認できる開発者が送る必要があります。
  • pull-up 要求は、リリースエンジニアリングチームに提出する 前に、 リリース枝でテストをおこなうようにします。 pull-up 要求の正常性確認は、 (おこなうこともあるでしょうが) リリースエンジニアリングチームの仕事ではありません。
  • 複数のリリース枝への pull-up 要求は、 枝ごとに別の電子メールにして、 それぞれ適切なアドレス宛に送るようにします。
  • pullup 要求の提出に、再送信 (バウンスともいう) は使ってはいけません。 転送にするか、新規の電子メールを書くか、どちらかにします。
  • pull-up 要求での変更内容は、 受け入れられた問題解決策とします。 つまり、変更内容が current NetBSD のソースの変更そのままであり、 かつ議論が続いているものの場合は、決着がつくまでは pull-up 要求を提出してはいけません。
  • 複数のファイルの変更を単一の要求でおこなうことができます。 ただし、各要求は、単一の問題に対するものとします。 関連性のない要求は、別々のメールにして提出するようにします。 こうすることで、私たちの仕事の管理がかなり簡単になります。
  • pull-up 要求には、 以下の情報を含める必要があります。
    • その要求によって修正される問題についての説明 (commit メッセージ用として。 パッチリリースがおこなわれる場合にはパッチリリースの CHANGES ファイル用でもある)。 この要求によって処理される問題報告の一覧も含めます。
    • 修正対象の各ファイルに関して、以下の情報。
      • に送られた、 commit メッセージを含んだ電子メールの 全文のコピー。 メールがあなたの手元に残っていない場合は、 メールアーカイブからコピーしてください。このメッセージを、引用符で括ったり字下げしたりしてはいけません。

        複数のリビジョンを pull up するファイルについては、 に送られた、 commit メッセージを含んだ電子メールそれぞれについて、 全文のコピー。 指定された各リビジョンでの変更点が、 リリース枝に pull up されることになります。

        リビジョン N にすべてをあわせた更新 とか、 -current にあわせた更新 といった要求を提出しないでください。 こういった要求は、releng が (commit メッセージに書くために) pull-up がどのリビジョンからを対象としているのか、 調べなければならず、対処が困難になってしまいます。 たとえば他のリビジョンがすでに pull-up されていると、 さらにわかりにくくなってしまいます。 pull-up 要求をする人は、 何を pull-up したいかを知っているわけですから、 要求者本人がこれら必要な情報を用意したほうがいいでしょう。 さらに後者の例では、 要求が提出されてから処理されるまでの間に、 pull-up の対象のファイルに対して、 他の誰かが (trunk で) 変更を commit する可能性もあります。 その場合は、十分テストされていない変更まで pull-up されてしまうかもしれません。

        RCS ID 以外について、衝突が発生する場合は、 pull-up 要求は却下され、 提出しなおすよう求められます。

      • ソースツリーに適用するためのパッチファイル。 (そのパッチが、衝突が発生するリビジョン間の pull-up をしているだけである場合は、 前のケースと同様に、当該リビジョンの commit 電子メールを含めておきます。)

        パッチファイルは、patch コマンドを使って適用されます。 パッチの適用に関して特に説明が必要な場合は、 pull-up 要求にその説明を含めてください。

        何であれ、衝突が発生する場合は、 pull-up 要求は却下され、 提出しなおすよう求められます。

      一般的に、すべてのファイルとリビジョンの情報を、 pull-up 要求の冒頭のあたりに、まとめておくのが最善です。 何をすればいいかを調べるために、 巨大なパッチから発掘しなければならないようにしてはいけません。 さらに、パッチが 2 リビジョン間の差分そのままであって、 きれいに適用できる場合は、そのことを記しておきます (そのようなパッチは、省略します)。

以上のように述べましたが、 リリースエンジニアリングチームは、 若干異なるものも受け入れるよう、最大限の便宜をはかるようにするというのも、 また事実です。しかし、リリースサイクルの期間中、 リリースエンジニアリングチームは並外れて多忙となりますので、 上述した要件から大きく逸脱するようなことはしないでください。

よい pull-up 要求の例 (トップ)

よい pull-up 要求の例を、以下に示します。

From: Matthias Scheler <tron@NetBSD.org>
To: "NetBSD 1.6 Pullup Requests" <pullup-1-6@NetBSD.org>
Cc: Jun-ichiro itojun Hagino <itojun@NetBSD.org>
Subject: Urgent sendmail security fix

	Hello,

"sendmail" needs a security fix. Please pullup the following two
changes (more instructions below):

--------------------------------------------------------------------------

Module Name:	src
Committed By:	itojun
Date:		Wed Sep 17 14:16:23 UTC 2003

Modified Files:
	src/gnu/dist/sendmail/sendmail: parseaddr.c

Log Message:
fix prescan() bug (potentially remotely exploitable), CAN-2003-0694


To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 src/gnu/dist/sendmail/sendmail/parseaddr.c

--------------------------------------------------------------------------

Module Name:	src
Committed By:	tron
Date:		Wed Sep 17 20:23:02 UTC 2003

Modified Files:
	src/gnu/dist/sendmail/sendmail: version.c

Log Message:
Bump version number after parse8.359.2.8 patch has been applied.


To generate a diff of this commit:
cvs rdiff -r1.13 -r1.14 src/gnu/dist/sendmail/sendmail/version.c

--------------------------------------------------------------------------

The change to "version.c" will cause a conflict. I've therefore attached
a patch for this file.

	Thanks in advance

以下、説明です。

  • subject は、 その効果や緊急度についての手短な説明となっています。
  • 各変更について、 commit メッセージを含めています。
  • 変更を直接適用できないリビジョンについては、 パッチをつけています。
  • 元の (trunk の) 変更を commit した人が、 pull-up 要求のコピーを受け取っています。

セキュリティーの修正に関する pull-up 要求 (トップ)

セキュリティーの修正に関する pull-up 要求では、 リリースエンジニアリングチームが簡単に識別できるように、 security というキーワードを subject 行に含めてください。 緊急度によっては、一人または複数のリリースエンジニアに、 チケット番号を直接連絡してもよいでしょう。

pkgsrc releng 特有の事項 (トップ)

通常の pullup の手順は、以下のとおりです。

  • セキュリティーの修正だけが pull-up されます
  • プラットフォーム固有の修正も可ですが、 セキュリティーの修正よりは格が下となります (つまり、 セキュリティーの修正のほうが高い優先度で pull up されるということです)
  • 個人的な要望を pull up することはできません
  • 疑問がある場合は、 に質問してください


Back to  NetBSD 開発者ドキュメンテーション