BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース JDK 10のOpenJDK Mercurialリポジトリの統合が提案された

JDK 10のOpenJDK Mercurialリポジトリの統合が提案された

原文(投稿日:2016/10/21)へのリンク

OpenJDKメーリングリストに投稿されたEメールにおいて、Joe Darcy氏、オラクルのJDKエンジニアであるが、氏はソース操作リポジトリMercurial(以降“Hg”と呼ぶ)をJDK 10のOpenJDKのために単一のリポジトリとする検討を提案した。

JDK 9 OpenJDKは現在Hg “forest”へ整理されている。複数の関連するHgリポジトリの集合だ。8つのリポジトリがJDK 9 forestを構成している。

この統合提案の背後にある動機は、JEP 296に述べられているように、複数のリポジトリを維持することの不利益を取り除くことである。たとえば、複数のリポジトリにまたがる1つのバグフィックスを現行のforest配置で伝搬させることは不可能だ。単一のリポジトリのアドバンテージの1つは、個別のファイルではなくファイルの集合への変更のトラッキングを利点として提供することだ。

JEPで提案された代替としては、(a)現行のHg forestを使い続けること、 (b)リポジトリの1つのコアサブセットだけ統合することだが、後者は不採用となった。またHg forestにJavaFXを含まないことが決定された。

提案にある予期されたQ&Aの投稿にもかかわらず、スケーラビリティやパフォーマンス、他の困難についての議論がさまざまなコントリビュータから出てきた。とくに懸念の長談義が含まれているこの返答だ。“全体像”に焦点を合わせる明白な試みにおいて、オラクルの言語アーキテクトのBrian Goetz氏は以下のように説明した。

OpenJDK開発者はここにいるステークホルダーだけではありません。世界の開発の残りの方法をよりそろえることによって、緩和されトランザクション的に更新された1つのレポジトリにすべてのコードがあるようになれば、それは実現可能性を増加させ、障害がどこで入りこんだのかを明らかにするための、'bisect'のようなツールのコストを減少させます。 これはSQEコストを減少させ、プロダクトの品質を増加させます。私たち全員が関心を寄せているものです。David Lloyd氏はgitミラーの維持を簡単にすることのような他のツール関連の利点を指摘しました。

 

今までのところ生じている反対のほとんどは"(私が思うに彼らは)私の人生をより厳しいものに"してきました。もっともです。人々は彼ら自身の擁護者であるべきです。しかし、結果として*すべての人*から生じる重要な利点を忘れないようにしましょう。長所と短所を判断するときに、これらを覚えておきましょう。

これはOpenJDK HG forestを手入れするための、オラクルの最初の試みではありません。2013年11月にDarcy氏は"JDK 9でforestの集合をまたがる修正の伝搬時間を劇的に減らすであろう代替のforest配置を使う"ために提案しました。

リソース

プロトタイプはHg forestの統合をテストするために作成されている。Pythonスクリプトのサポート(詳細は下記)がダウンロードして利用できる。

  • convert.py: forestにある各リポジトリを適切なフォーマットへ変換することにより統合への準備をする。
  • unify.py: 変換されたリポジトリをすべてforestから1つのリポジトリに統合する。
  • verify.py: forestと統一したリポジトリのファイル内容がヒストリーにあるすべてのタグで一致しているか検証する。これはdiff(1)プログラムの助けで実行される。

プロトタイプはPythonスクリプトを使って単一のリポジトリへ結合されるであろう8つのリポジトリを含んでいる。ヒストリーとチェンジセットのコメント、元の作成日時は保存される。単一のリポジトリは単一のトップレベルのsrcディレクトリを含むだろう。たとえば以下のようになる。

$ROOT/jdk/src/java.base
$ROOT/langtools/src/java.compiler

これが次のようになる。

$ROOT/src/java.base
$ROOT/src/java.compiler

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT