Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

597 views

Published on

OpenJDK プロジェクトはかなり注目されていますが、どうやって参加出来るかを悩んでいる方はいっぱいいらっしゃいます。このセッションで、OpenJDK のイロハをカバーします。ソースコードの入手から、バグの修正などの貢献まで簡単にプロセスをまとめます。OpenJDK のプロジェクトをより理解したい方、あるいは、自分で貢献したいと思う方は是非ご覧ください.。

Published in: Software
  • Be the first to comment

OpenJDK 参加入門 [JJUG CCC 2017 Fall E2]

  1. 1. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK: How to Join In on All the Fun CCC E2 David Buck Principal Member of Technical Staff Java Platform Group November 18th, 2017 Confidential – Oracle Internal/Restricted/Highly Restricted 3
  2. 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 4
  3. 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • JVM Sustaining Engineer • OpenJDK 8 Update Project Maintainer • JavaOne Rock Star • Co-author of Oracle WebLogic Server 11g 構築・運用ガイド • @DavidBuckJP • https://blogs.oracle.com/buck/ Who am I?
  4. 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Who are you? • OpenJDK に貢献したい人 • OpenJDK の玄人 – fastdebug ビルド – カスタム ビルド Confidential – Oracle Internal/Restricted/Highly Restricted 6
  5. 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | セッションの目的 • JDK コードを弄て、ビルドする • OpenJDK へコードを貢献する • OpenJDK の進捗を追跡する Confidential – Oracle Internal/Restricted/Highly Restricted 7
  6. 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Agenda • OpenJDK プロジェクト – 歴史、目的、単語 • ツールや技術 – ソースの入手、ビルド、テスト、レビューの準備など • プロセス – コード レビュー、プロジェクト、ロールなど Confidential – Oracle Internal/Restricted/Highly Restricted 8
  7. 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK プロジェクト Confidential – Oracle Internal/Restricted/Highly Restricted 9
  8. 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK とは? • Java SE のオープンソースの実装Open source (GPL2 / L.E.) implementation of Java SE • JDK 7 以降の Reference implementation • 多数の単体プロジェクトで構造 Confidential – Oracle Internal/Restricted/Highly Restricted 10
  9. 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | なぜ? • Java の普及の推進 • ハードの売り上げの推進 Confidential – Oracle Internal/Restricted/Highly Restricted 11
  10. 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK プロジェクト 歴史 Confidential – Oracle Internal/Restricted/Highly Restricted 12
  11. 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK の前 • Sun Community Source License (SCSL) • Java Research License (JRL) Confidential – Oracle Internal/Restricted/Highly Restricted 13
  12. 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The Java Trap (Java の罠) Confidential – Oracle Internal/Restricted/Highly Restricted 14
  13. 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | タイムライン • JavaOne 2006 で発表された • 2006年11月 javac と HotSpot のコードのリリース • 2007年の5月で殆どの残りがリリースされた Confidential – Oracle Internal/Restricted/Highly Restricted 15
  14. 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 殆ど? • フォントレンダリング -> freetype • カラー管理システム-> lcms • 音 -> Gervill • アンチエリアジング -> (Ductus -> Marlin) Confidential – Oracle Internal/Restricted/Highly Restricted 16
  15. 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 殆ど? • OpenJDK 6 b10 から本当の OSS でビルドすることが出来た Confidential – Oracle Internal/Restricted/Highly Restricted 17
  16. 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 二バージョン物語 • 初めての OpenJDK のリリース: JDK 7 • OpenJDK 6 は? • 2006年の12月に Sun JDK 6 がリリースされた Confidential – Oracle Internal/Restricted/Highly Restricted 18
  17. 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 19
  18. 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK とは? Confidential – Oracle Internal/Restricted/Highly Restricted 20
  19. 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK ではない物 Confidential – Oracle Internal/Restricted/Highly Restricted 21
  20. 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != IcedTea • まだリリースされていない部分を OSS でカバー – Java SE – デプロイ機能 • Java Web Start • Browser plugins • 鶏が先か卵が先か – OpenJDK をビルドするには SunJDK が必要 Confidential – Oracle Internal/Restricted/Highly Restricted 22
  21. 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != Java Community Process • JCPは 1998 年からあった • 仕様を確定するプロセス (JSRs) Confidential – Oracle Internal/Restricted/Highly Restricted 23
  22. 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK != OracleJDK • OracleJDK – OpenJDK + クローズドソース ★ – オラクルからサポートを購入出来る ★ クローズドソースとは – デプロイの技術(Plug-in, Java Web Start) – 有料機能 (Flight Recorder, usage tracker, MSI installer) Confidential – Oracle Internal/Restricted/Highly Restricted 24
  23. 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Projects • ポート • 新たな機能 • 将来のJDKのメージャーバージョン • リリース済みのアップデート • その他 Confidential – Oracle Internal/Restricted/Highly Restricted 25
  24. 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Projects Confidential – Oracle Internal/Restricted/Highly Restricted 26
  25. 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ツール / 技術 Confidential – Oracle Internal/Restricted/Highly Restricted 27
  26. 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Mercurial のイロハ Confidential – Oracle Internal/Restricted/Highly Restricted 28 By Cali Mastny and Matt Mackall (http://www.selenic.com/hg-logo/) [GPLv2 (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)], via Wikimedia Commons
  27. 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Mercurial とは? Confidential – Oracle Internal/Restricted/Highly Restricted 29
  28. 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | “Mercurial is a free, distributed source control management tool.“ (Mercurial は無料の分散型のソース 管理システムである。) – https://www.mercurial-scm.org/ Confidential – Oracle Internal/Restricted/Highly Restricted 30
  29. 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 名前の意味は? Confidential – Oracle Internal/Restricted/Highly Restricted 31
  30. 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 早い、液体、柔軟性 Confidential – Oracle Internal/Restricted/Highly Restricted 32 By Bionerd (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC BY 3.0 (http://creativecommons.org/licenses/by/3.0)], via Wikimedia Commons
  31. 31. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悪い知らせ GIT ではない 良い知らせ GITとあまり変わらない Confidential – Oracle Internal/Restricted/Highly Restricted 33 良い知らせと悪い知らせ
  32. 32. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | hg ≈ git Confidential – Oracle Internal/Restricted/Highly Restricted 34
  33. 33. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 分散バージョン管理 Confidential – Oracle Internal/Restricted/Highly Restricted 35 By Axaluss - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=20053251
  34. 34. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • clone • commit • log • push • pull • defpath • status • diff • out • add Confidential – Oracle Internal/Restricted/Highly Restricted 36 上位の10つのコマンド
  35. 35. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Revision IDs 13365:862767b4c105 Confidential – Oracle Internal/Restricted/Highly Restricted 37
  36. 36. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Revision IDs 13365:862767b4c105 ローカル グローバル Confidential – Oracle Internal/Restricted/Highly Restricted 38
  37. 37. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 自分の貢献を上へ push Confidential – Oracle Internal/Restricted/Highly Restricted 39 By Pearson Scott Foresman - Archives of Pearson Scott Foresman, donated to the Wikimedia Foundation This file has been extracted from another file: PSF P-730002.png, Public Domain, https://commons.wikimedia.org/w/index.php?curid=3947194
  38. 38. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 他の人の変更を pull Confidential – Oracle Internal/Restricted/Highly Restricted 40 Viking-nl at Dutch Wikipedia [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)],via Wikimedia Commons
  39. 39. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 41
  40. 40. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 42
  41. 41. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースツリー Confidential – Oracle Internal/Restricted/Highly Restricted 43
  42. 42. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests (森) Confidential – Oracle Internal/Restricted/Highly Restricted 44
  43. 43. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests Confidential – Oracle Internal/Restricted/Highly Restricted 45
  44. 44. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forests Confidential – Oracle Internal/Restricted/Highly Restricted 46
  45. 45. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Forest • JDK をビルド出来る • Forest の入手 – Forest のロートを clone – get_source.sh スクリプトを実行 Confidential – Oracle Internal/Restricted/Highly Restricted 47
  46. 46. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 48
  47. 47. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK 8 以降 素晴らしい! JDK 6 と JDK 7 素晴らしくない。。。 Confidential – Oracle Internal/Restricted/Highly Restricted 49 ビルド方法
  48. 48. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ビルド(JDK8 以降) sh configure make Confidential – Oracle Internal/Restricted/Highly Restricted 50
  49. 49. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Configure を実行 • 足りないパッケージを検出して、入手方法を教えてくれる • すべてのプラットフォーム (はい、Windows でも) • 重要なオプション – Debug ビルド (--enable-debug) – ccache 無効化(--disable-ccache) – Bookstrap JDK のパース (--with-boot-jdk) – configure スクリプトの debug 出力 (--debug-configure) Confidential – Oracle Internal/Restricted/Highly Restricted 51
  50. 50. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何かたりない? Confidential – Oracle Internal/Restricted/Highly Restricted 52
  51. 51. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ build/linux-x86_64-normal- server-release/jdk/bin/java - version openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) $ build/linux-x86_64-normal- server-release/jdk/bin/java - version Hello JavaOne 2017! openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) Confidential – Oracle Internal/Restricted/Highly Restricted 53 何か変更しよう!
  52. 52. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | $ build/linux-x86_64-normal- server-release/jdk/bin/java - version openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) $ build/linux-x86_64-normal- server-release/jdk/bin/java - version Hello JavaOne 2017! openjdk version "1.8.0-internal" OpenJDK Runtime Environment (build 1.8.0-internal- dbuck_2017_10_02_10_55-b00) OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode) Confidential – Oracle Internal/Restricted/Highly Restricted 54 何か変更しよう!
  53. 53. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | テストケース • 殆どの変更はテストケースが必要となる – 新しい機能をテストする – バグの修正をテストする • Jtreg というテストフレームワークが一番利用されている • 既存のテストを変更するだけで十分である場合が多い Confidential – Oracle Internal/Restricted/Highly Restricted 55
  54. 54. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | プロセス / ルール Confidential – Oracle Internal/Restricted/Highly Restricted 56
  55. 55. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何をしたい? • バグを直す? • 新しい機能を追加する? Confidential – Oracle Internal/Restricted/Highly Restricted 57
  56. 56. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 何をしたい? • バグを直す? • 新しい機能を追加する? Confidential – Oracle Internal/Restricted/Highly Restricted 58
  57. 57. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 2バグシステムの物語 • bugs.java.com • JDK Bug System Confidential – Oracle Internal/Restricted/Highly Restricted 59
  58. 58. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 2バグシステムのインタフェースの物語 • bugs.java.com • JDK Bug System Confidential – Oracle Internal/Restricted/Highly Restricted 60
  59. 59. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | bugs.java.com Confidential – Oracle Internal/Restricted/Highly Restricted 61
  60. 60. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | bugs.java.com • ユーザ向け(貢献する人ではなく) • 単純 – 検索機能が乏しい – 情報の一部しか表示されない • バグの登録は誰でも出来る Confidential – Oracle Internal/Restricted/Highly Restricted 62
  61. 61. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 63
  62. 62. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) 二つのユーザの種類に利用されている • OpenJDK のコミュニティ • Oracle Corporation Confidential – Oracle Internal/Restricted/Highly Restricted 64
  63. 63. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 65 Oracle OpenJDK
  64. 64. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jira ベース • カスタマイズを避けた • 重要な違い – Backports / Fixed Version – Bug 検索機能の拡張 Confidential – Oracle Internal/Restricted/Highly Restricted 66 JDK Bug System (JBS)
  65. 65. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 67 Backports / Fixed Version
  66. 66. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) Confidential – Oracle Internal/Restricted/Highly Restricted 68 Backports / Fixed Version
  67. 67. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK Bug System (JBS) • regexVersion – fixVersion in regexVersion("8.*") – fixVersion in regexVersion("[5-8].*|tbd.*") • regexLabel – regexlabel("7u60-critical.*") – regexLabel("release-note.*") Confidential – Oracle Internal/Restricted/Highly Restricted 69 Bug Search Extensions
  68. 68. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jiraは誰アクセス出来る? Confidential – Oracle Internal/Restricted/Highly Restricted 70
  69. 69. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jiraは誰アクセス出来る? 誰でも! Confidential – Oracle Internal/Restricted/Highly Restricted 71
  70. 70. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • OpenJDK の ID がない場合Read- only • Oracle の社内のバグ – セキュリティの脆弱性 – 有料機能 – お客様情報を含むレポート Confidential – Oracle Internal/Restricted/Highly Restricted 72 でも、やっぱり人によって…
  71. 71. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 新規のレポートを作るには? OpenJDK ID がない場合 • OpenJDK のメールエイリアスで要求する • bugs.java.com でレポートを登録する Confidential – Oracle Internal/Restricted/Highly Restricted 73
  72. 72. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Incidents • “web bugs” • チェックされていない • 公開されていない JDK • 公開されている • チェック済み Confidential – Oracle Internal/Restricted/Highly Restricted 74 Java Incidents プロジェクト
  73. 73. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Java Incidents • “web bugs” • チェックされていない • 公開されていない JDK • 公開されている • チェック済み Confidential – Oracle Internal/Restricted/Highly Restricted 75 Java Incidents プロジェクト
  74. 74. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 76
  75. 75. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 77
  76. 76. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK メースエイリアス • オープン参加 • アーカイブされている • Digest (まとめ)の機能 • メールを送る前に登録することが推奨 Confidential – Oracle Internal/Restricted/Highly Restricted 78
  77. 77. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 79
  78. 78. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 悩んでいれば 適切なメールエイリアスで質問すること! Confidential – Oracle Internal/Restricted/Highly Restricted 80
  79. 79. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 適切なメールエイリアス Confidential – Oracle Internal/Restricted/Highly Restricted 81
  80. 80. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 適切なメールエイリアス 遠慮せずにエイリアスで聞いて下さい。 必要に応じて妥当なエイリアスを教えます。 Confidential – Oracle Internal/Restricted/Highly Restricted 82
  81. 81. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 8u-dev の返事を待っている人 Confidential – Oracle Internal/Restricted/Highly Restricted 83 By Sklmsta - Own work, CC0, https://commons.wikimedia.org/w/index.php?curid=9896470
  82. 82. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ソースを pull して、バグを直す! Confidential – Oracle Internal/Restricted/Highly Restricted 84 By Everaldo Coelho and YellowIcon; - All Crystal Clear icons were posted by the author as LGPL on kde-look;, LGPL, https://commons.wikimedia.org/w/index.php?curid=664637
  83. 83. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK へ修正を貢献する • パブリックのコードレビュー • 修正を Push (或いは 誰かに Push して貰う) Confidential – Oracle Internal/Restricted/Highly Restricted 85
  84. 84. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 86
  85. 85. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 87
  86. 86. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | コードレビュー • Webrev を作成する • cr.openjdk.java.net で webrev を公開する • 適切なエイリアスへコードレビューの要求を送る • 質問を回答し、コメントにお応じて修正を変更する • Reviewer から承認を貰ったら、push Confidential – Oracle Internal/Restricted/Highly Restricted 88
  87. 87. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Reviewers • “reviewer” != “Reviewer” • プロジェクトやチームによって、必要な Reviewer の数が異なる ヒント:コードレビューを要求するとき、必要な Reviewer の人数を確認出来る Confidential – Oracle Internal/Restricted/Highly Restricted 89
  88. 88. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 変更(修正)を push する • 直接に push するには committer 権限が必要 • Committer 権限を取得しても、オラクルの社員しか push 出来ないプロジェ クトがある (JPRT) • 必要に応じて sponsor (プッシュしてくれる人)を頼める Confidential – Oracle Internal/Restricted/Highly Restricted 90
  89. 89. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer? Reviewer? Confidential – Oracle Internal/Restricted/Highly Restricted 91
  90. 90. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK のロール • Contributor • Author • Committer • Reviewer • Project lead Confidential – Oracle Internal/Restricted/Highly Restricted 92
  91. 91. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Contributor • Oracle Contributor Agreement に同意した • プッシュされた貢献が “Contributed-by” Confidential – Oracle Internal/Restricted/Highly Restricted 93
  92. 92. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Contributor Agreement • http://www.oracle.com/technetwork/community/oca-486395.html からダ ウンロード • 印刷 • 記入 • サイン • スキャン • oracle-ca_us@oracle.com へ送る Confidential – Oracle Internal/Restricted/Highly Restricted 94
  93. 93. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Author • 1つのプロジェクトに3以上の新しい貢献を出した • プロジェクトのリーダに要求する • 投票はない • OpenJDK ID が発行される – JBS 書き込みアクセス – cr.openjdk.java.net の home ディレクトリ Confidential – Oracle Internal/Restricted/Highly Restricted 95
  94. 94. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer • 殆どの HG repository へ push することが出来る • 既存の committer にノミネートされる • 投票が必要 • 目安: 12 新しい / 大きいな貢献 Confidential – Oracle Internal/Restricted/Highly Restricted 96
  95. 95. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Reviewer • コードレビューで変更を承認することが出来る • 既存の Reviewer にノミネートされる – 目安: 40 新しい / 大きな貢献 – 結構難しい Confidential – Oracle Internal/Restricted/Highly Restricted 97
  96. 96. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | OpenJDK Members • OpenJDK のグループ • 新規プロジェクトの作成や委員会などの件について投票出来る • OpenJDK ID の有無と違う話 Confidential – Oracle Internal/Restricted/Highly Restricted 98
  97. 97. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Committer であっても Oracle の社員ではなければプッシュ出来ない HG repository がある Confidential – Oracle Internal/Restricted/Highly Restricted 99
  98. 98. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JPRT • “JDK Product Reliability Testing” • ビルドと検証のインフラ • JPRT でしか push 出来ない HG repository がある • オラクルの社外からアクセスが不可能 • 必ずビルドが出来ることを保証する • 公開されていないテストも多い • いろいろなプラットフォームがある • すべてのプラットフォームがあるわけではない Confidential – Oracle Internal/Restricted/Highly Restricted 100
  99. 99. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JPRT • “JDK Product Reliability Testing” • ビルドと検証のインフラ • JPRT でしか push 出来ない HG repository がある • オラクルの社外からアクセスが不可能 • 必ずビルドが出来ることを保証する • 公開されていないテストも多い • いろいろなプラットフォームがある • すべてのプラットフォームがあるわけではない Confidential – Oracle Internal/Restricted/Highly Restricted 101
  100. 100. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Backports • メインラインの開発プロジェクトに先に入れる必要がある – (最新版で問題が再現する場合) • Backports は committer / reviewer の資格としてカウントしない • Update プロジェクトによって、管理する人(会社)がことなる – JDK 6 -> Andrew Brygin <abrygin@azul.com> – JDK 7 -> Andrew Haley <aph@redhat.com> – JDK 8 -> and Sean Coffey and Robert Mckenna Confidential – Oracle Internal/Restricted/Highly Restricted 102
  101. 101. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | JDK 8 への Backport すべての変更は承認が必要となる • 要求テンプレートがある • RFA != RFR Confidential – Oracle Internal/Restricted/Highly Restricted 103
  102. 102. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Jigsaw パースの変更 • ファイルのパースだけが変更された • JDK 9 のパッチが自動的に JDK 8 用に変換するスクリプト (unshuffled) Confidential – Oracle Internal/Restricted/Highly Restricted 104
  103. 103. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | まとめ • 遠慮なく質問してください • お時間を頂く場合もございますが、ご了承ください – 巨大のプロジェクト – 変動が激しい – 常にプロセスの最適化に最大限努力している • 修正やコードを貢献しなくてもいい Confidential – Oracle Internal/Restricted/Highly Restricted 105
  104. 104. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | ありがとうございます! Confidential – Oracle Internal/Restricted/Highly Restricted 106
  105. 105. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • OpenJDK Home Page http://openjdk.java.net/ • FAQ http://openjdk.java.net/faq/ • Developer's Guide http://openjdk.java.net/guide/ • Mailing Lists http://mail.openjdk.java.net/mailman/listinfo • Bylaws http://openjdk.java.net/bylaws • Census http://openjdk.java.net/census • Mercurial: The Definitive Guide http://hgbook.red-bean.com/read/ Confidential – Oracle Internal/Restricted/Highly Restricted 107 参考資料
  106. 106. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Confidential – Oracle Internal/Restricted/Highly Restricted 108

×