SlideShare a Scribd company logo
1 of 46
© 2021 NTT DATA Corporation
My Experiences as a Beginner of OpenJDK Contributor
2021/11/19 JCConf Taiwan 2021
Koichi Sakata
NTT DATA Corporation
About Me
• Java Champion
• OpenJDK Author
• NTT DATA Corporation
© 2021 NTT DATA Corporation 2
Koichi Sakata
阪田 浩一
jyukutyo
Our Contribution to JDK 17
© 2021 NTT DATA Corporation 3
The arrival of Java 17! https://blogs.oracle.com/java/post/announcing-java17
How to contribute to OpenJDK
1. Submit patches
2. Review code
3. Tell ideas
4. Participate in discussions
5. Make presentations
6. Write blog posts
etc.
© 2021 NTT DATA Corporation 4
How to contribute to OpenJDK
1. Submit patches
2. Review code
3. Tell ideas
4. Participate in discussions
5. Make presentations
6. Write blog posts
etc.
© 2021 NTT DATA Corporation 5
Today’s Focus
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
© 2021 NTT DATA Corporation 6
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. Find a bug
2. Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 7
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. ➡Find a bug
2. Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 8
Can we find a bug?
• OpenJDK works well in our applications
» We hardly come across any new JDK bugs
• Do we have no points to be fixed?
© 2021 NTT DATA Corporation 9
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
© 2021 NTT DATA Corporation 10
Build with New Versions of Tools
• OpenJDK has not only Java code but also C++ code
• We can build OpenJDK with various tools
on various platforms
» GCC, Clang, Visual Studio
» Linux, macOS, Windows (+WSL)
• Errors or warnings might occur
» Try to resolve when those occurred!
© 2021 NTT DATA Corporation 11
My Experience
• I used a new version of GCC (10.1) on Linux
» Three new warnings occurred
» I got an opportunity to contribute!
© 2021 NTT DATA Corporation 12
In file included from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/systemDictionary.hpp:31,
from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/javaClasses.hpp:28,
from /home/jyukutyo/code/jdk/src/hotspot/share/precompiled/precompiled.hpp:35:
In member function 'void Symbol::byte_at_put(int, u1)',
inlined from 'Symbol::Symbol(const u1*, int, int)' at
/home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.cpp:55:16:
/home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.hpp:130:18: error: writing 1 byte into a region of
size 0 [-Werror=stringop-overflow=]
130 | _body[index] = value;
| ~~~~~~~~~~~~~^~~~~~~
(omitted)
Changes in GCC 10
© 2021 NTT DATA Corporation
13
GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
2. Search issues in JDK Bug System (JBS)
© 2021 NTT DATA Corporation 14
JDK Bug System (JBS)
• Bug tracking system for OpenJDK
» https://bugs.openjdk.java.net/projects/JDK/issues/
© 2021 NTT DATA Corporation 15
Filter by Labels
• Bug tracking system for OpenJDK
» https://bugs.openjdk.java.net/projects/JDK/issues/
» Accessible for everyone with read-only
» Filter issues by starter label
• Those are for beginners
• Clean-up label is also ok
© 2021 NTT DATA Corporation 16
Ways I’ve tried
• How to find points to be fixed?
1. Build OpenJDK with new versions of tools
2. Search issues in JDK Bug System (JBS)
© 2021 NTT DATA Corporation 17
Contribution Process
• Case: Bug Fix
» Almost the same as popular OSS development
1. ✅Find a bug
2. ➡Fix a bug
3. Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 18
Testing is important
• Assume that we've finished fixing code
• Need to run related tests
© 2021 NTT DATA Corporation 19
Testing is important
• Assume that we've finished fixing code
• Need to run related tests
» For Java code: jtreg
• Regression test harness
• https://openjdk.java.net/jtreg/index.html
© 2021 NTT DATA Corporation 20
Run a jtreg Test
© 2021 NTT DATA Corporation 21
Testing is important
• Run related tests before submitting the patch
» For Java code: jtreg
» For C++ code: gtest (GoogleTest)
• Google C++ Testing Framework
© 2021 NTT DATA Corporation
Testing is important
• Run related tests before submitting the patch
» For Java code: jtreg
» For C++ code: gtest (GoogleTest)
• Google C++ Testing Framework
© 2021 NTT DATA Corporation
$ ./build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/gtest/gtestLauncher -jdk:./build/linux-
x86_64-server-fastdebug/jdk --gtest_filter=LogConfigurationTest.*
Note: Google Test filter = LogConfigurationTest.*
[==========] Running 15 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 15 tests from LogConfigurationTest
[ RUN ] LogConfigurationTest.describe_vm
[ OK ] LogConfigurationTest.describe_vm (1 ms)
(omitted)
[==========] 15 tests from 1 test case ran. (659 ms total)
[ PASSED ] 15 tests.
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ➡ Submit a patch
4. Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 24
First thing to do
• Send a mail to a suitable ML
» Describe the details of the issue
» Paste the patch when you have already written it
© 2021 NTT DATA Corporation 25
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
© 2021 NTT DATA Corporation 26
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
• Many MLs...
© 2021 NTT DATA Corporation 27
Mailing List
• Always start from here
» https://mail.openjdk.java.net/
• Many MLs...
» hotspot-dev - JVM
» compiler-dev - Java compiler
» core-libs-dev - Java class libraries
» jdk-dev - General JDK discussions
© 2021 NTT DATA Corporation 28
My First Mail
© 2021 NTT DATA Corporation 29
My Experience
• Do I send a patch to the public ML?
» Feel uneasy...
© 2021 NTT DATA Corporation 30
My Experience
• Do I send a patch to the public ML?
» Feel uneasy...
» Don’t be afraid!
• People are friendly and polite
» To those who use English as a second language
• like me
© 2021 NTT DATA Corporation 31
As a Result
• Have the issue filed in JBS
» We are ready to create a pull request for the issue
© 2021 NTT DATA Corporation 32
OpenJDK is now in GitHub
© 2021 NTT DATA Corporation 33
https://github.com/openjdk/jdk
Relationship between JBS and GitHub
• All issues need to be filed in JBS
» Write the issue number
in the title of the pull request
• Comments to the PR is sent to related mailing lists
» And vice versa
© 2021 NTT DATA Corporation 34
Submit the Patch!
• Sign OCA
» Oracle Contribution Agreement
» https://oca.opensource.oracle.com/
© 2021 NTT DATA Corporation 35
Submit the Patch!
© 2021 NTT DATA Corporation 36
• Create a pull request
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ➡Receive reviews
5. Address comments
6. Get merged
© 2021 NTT DATA Corporation 37
Receive Reviews
• Need reviews by Reviewers
» Reviewer is a role in OpenJDK Community
© 2021 NTT DATA Corporation 38
Receive Reviews
• Need reviews by Reviewers
» Reviewer is a role in OpenJDK Community
• Roles
» Reviewer - Committer role + review
» Committer - Author role + commit and sponsor PRs
» Author - edit JBS
© 2021 NTT DATA Corporation 39
300+
Reviewers and Committers
Receive Reviews
© 2021 NTT DATA Corporation 40
Contribution Process
• Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ✅Receive reviews
5. ✅Address comments
6. ➡Get merged
© 2021 NTT DATA Corporation 41
Find a Sponsor
• We can’t merge the PR by ourselves
» Need a "sponsor"
• Reviewer or Committer can sponsor PRs
• Sponsor will merge the PR
© 2021 NTT DATA Corporation 42
© 2021 NTT DATA Corporation 43
Finally...
Case: Bug Fix
1. ✅Find a bug
2. ✅Fix the bug
3. ✅Submit a patch
4. ✅Receive reviews
5. ✅Address comments
6. ✅Get merged
© 2021 NTT DATA Corporation 44
Summary
• Don’t be afraid of submitting patches!
» Contributing to OpenJDK is not difficult
• Let’s move OpenJDK forward together!
© 2021 NTT DATA Corporation 45
© 2021 NTT DATA Corporation
All other company or product names mentioned here in are trademarks or registered trademarks of their respective owners.

More Related Content

What's hot

Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugYuji Kubota
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?Takahiro YAMADA
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築Daein Park
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)NTT DATA Technology & Innovation
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門Kota Mizushima
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM JavaについてTakakiyo Tanaka
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話dcubeio
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Yuta Matsumura
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...NTT DATA Technology & Innovation
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajoYuji Kubota
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
鯨物語~Dockerコンテナとオーケストレーションの理解
鯨物語~Dockerコンテナとオーケストレーションの理解鯨物語~Dockerコンテナとオーケストレーションの理解
鯨物語~Dockerコンテナとオーケストレーションの理解Masahito Zembutsu
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Kazumi IWANAGA
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)Rakuten Group, Inc.
 

What's hot (20)

Migration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjugMigration Guide from Java 8 to Java 11 #jjug
Migration Guide from Java 8 to Java 11 #jjug
 
これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?これからのJDK/JVM 何を選ぶ?どう選ぶ?
これからのJDK/JVM 何を選ぶ?どう選ぶ?
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
 
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
バイトコードって言葉をよく目にするけど一体何なんだろう?(JJUG CCC 2022 Spring 発表資料)
 
Javaバイトコード入門
Javaバイトコード入門Javaバイトコード入門
Javaバイトコード入門
 
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについてオープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
オープンソースで提供される第二のJVM:OpenJ9 VMとIBM Javaについて
 
Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話Go初心者がGoでコマンドラインツールの作成に挑戦した話
Go初心者がGoでコマンドラインツールの作成に挑戦した話
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
鯨物語~Dockerコンテナとオーケストレーションの理解
鯨物語~Dockerコンテナとオーケストレーションの理解鯨物語~Dockerコンテナとオーケストレーションの理解
鯨物語~Dockerコンテナとオーケストレーションの理解
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)楽天トラベルとSpring(Spring Day 2016)
楽天トラベルとSpring(Spring Day 2016)
 

Similar to My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021)

Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life DevOps.com
 
ch7-Create an IoT Solution
ch7-Create an IoT Solutionch7-Create an IoT Solution
ch7-Create an IoT Solutionssuser06ea42
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesAnne Gentle
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACMediaTek Labs
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Jody Garnett
 
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...{code} by Dell EMC
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution ProjectYoshitake Kobayashi
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny daybcoder
 
Friday final test
Friday final testFriday final test
Friday final testbcoder
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentMartijn de Jong
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Daniel Bryant
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationNils Hofmeister
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesFab L
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portlanddmethvin
 

Similar to My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021) (20)

Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life Achieving Full Stack DevOps at Colonial Life
Achieving Full Stack DevOps at Colonial Life
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
tut0000021-hevery
tut0000021-heverytut0000021-hevery
tut0000021-hevery
 
Developing NuGet
Developing NuGetDeveloping NuGet
Developing NuGet
 
ch7-Create an IoT Solution
ch7-Create an IoT Solutionch7-Create an IoT Solution
ch7-Create an IoT Solution
 
Raising the Bar
Raising the BarRaising the Bar
Raising the Bar
 
Docs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API ExperiencesDocs as Code: Publishing Processes for API Experiences
Docs as Code: Publishing Processes for API Experiences
 
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SACDeveloping IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
Developing IoT devices. Creating wearables with the new LinkIt™ 2523 HDK by SAC
 
Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...Everyone wants (someone else) to do it: writing documentation for open source...
Everyone wants (someone else) to do it: writing documentation for open source...
 
Node-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using ElectronNode-RED Installer, Standalone Installer using Electron
Node-RED Installer, Standalone Installer using Electron
 
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
Containers and their Ecosystem: An Introduction to Containers - Kendrick Cole...
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
It is a sunny day
It is a sunny dayIt is a sunny day
It is a sunny day
 
Friday final test
Friday final testFriday final test
Friday final test
 
Lessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions DeploymentLessons Learned from a major IBM Collaboration Solutions Deployment
Lessons Learned from a major IBM Collaboration Solutions Deployment
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
PHP Unconference Continuous Integration
PHP Unconference Continuous IntegrationPHP Unconference Continuous Integration
PHP Unconference Continuous Integration
 
DevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation SlidesDevSecCon SG 2018 Fabian Presentation Slides
DevSecCon SG 2018 Fabian Presentation Slides
 
State of jQuery June 2013 - Portland
State of jQuery June 2013 - PortlandState of jQuery June 2013 - Portland
State of jQuery June 2013 - Portland
 

More from NTT DATA Technology & Innovation

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)NTT DATA Technology & Innovation
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方NTT DATA Technology & Innovation
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...NTT DATA Technology & Innovation
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)NTT DATA Technology & Innovation
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)NTT DATA Technology & Innovation
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...NTT DATA Technology & Innovation
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)NTT DATA Technology & Innovation
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...NTT DATA Technology & Innovation
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)NTT DATA Technology & Innovation
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)NTT DATA Technology & Innovation
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

More from NTT DATA Technology & Innovation (20)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
 
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
COPY FROMで異常データをスキップできるようになった話(第45回 PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
Cloud Skills Challenge 2023 winter 〜Azureを頑張る理由と頑張り方
 
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
Unlocking Transformation: Implementing GitOps Practices in Conservative Organ...
 
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
Databricksチューニングあれこれ(JEDAI 2023 X‘mas/忘年会 Meetup! LT登壇資料)
 
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
詳説探究!Cloud Native Databaseの現在地点(CloudNative Days Tokyo 2023 発表資料)
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
 
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
マネージドPostgreSQLの実現に向けたPostgreSQL機能向上(PostgreSQL Conference Japan 2023 発表資料)
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
 
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
骨抜きアジャイルの骨を生み出す 〜私(スクラムマスター)のXP学習記録〜(XP祭り2023 発表資料)
 
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
機械学習モデルを REST API としてサービングするシステム開発における上流プロセスの絞り込みと効果検証(PM学会2023年度秋季研究発表大会 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
PostgreSQL on Kubernetes: Realizing High Availability with PGO (Postgres Ibiz...
 
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
オンプレミス回帰の動きに備えよ ~クラウドの手法をオンプレミスでも実現するには~(CloudNative Days Fukuoka 2023 発表資料)
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
ChatGPTのデータソースにPostgreSQLを使う(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
PGCon 2023 参加報告(第42回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

Recently uploaded

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

My Experiences as a Beginner of OpenJDK Contributor (JCConf Taiwan 2021)

  • 1. © 2021 NTT DATA Corporation My Experiences as a Beginner of OpenJDK Contributor 2021/11/19 JCConf Taiwan 2021 Koichi Sakata NTT DATA Corporation
  • 2. About Me • Java Champion • OpenJDK Author • NTT DATA Corporation © 2021 NTT DATA Corporation 2 Koichi Sakata 阪田 浩一 jyukutyo
  • 3. Our Contribution to JDK 17 © 2021 NTT DATA Corporation 3 The arrival of Java 17! https://blogs.oracle.com/java/post/announcing-java17
  • 4. How to contribute to OpenJDK 1. Submit patches 2. Review code 3. Tell ideas 4. Participate in discussions 5. Make presentations 6. Write blog posts etc. © 2021 NTT DATA Corporation 4
  • 5. How to contribute to OpenJDK 1. Submit patches 2. Review code 3. Tell ideas 4. Participate in discussions 5. Make presentations 6. Write blog posts etc. © 2021 NTT DATA Corporation 5 Today’s Focus
  • 6. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development © 2021 NTT DATA Corporation 6
  • 7. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. Find a bug 2. Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 7
  • 8. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. ➡Find a bug 2. Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 8
  • 9. Can we find a bug? • OpenJDK works well in our applications » We hardly come across any new JDK bugs • Do we have no points to be fixed? © 2021 NTT DATA Corporation 9
  • 10. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools © 2021 NTT DATA Corporation 10
  • 11. Build with New Versions of Tools • OpenJDK has not only Java code but also C++ code • We can build OpenJDK with various tools on various platforms » GCC, Clang, Visual Studio » Linux, macOS, Windows (+WSL) • Errors or warnings might occur » Try to resolve when those occurred! © 2021 NTT DATA Corporation 11
  • 12. My Experience • I used a new version of GCC (10.1) on Linux » Three new warnings occurred » I got an opportunity to contribute! © 2021 NTT DATA Corporation 12 In file included from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/systemDictionary.hpp:31, from /home/jyukutyo/code/jdk/src/hotspot/share/classfile/javaClasses.hpp:28, from /home/jyukutyo/code/jdk/src/hotspot/share/precompiled/precompiled.hpp:35: In member function 'void Symbol::byte_at_put(int, u1)', inlined from 'Symbol::Symbol(const u1*, int, int)' at /home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.cpp:55:16: /home/jyukutyo/code/jdk/src/hotspot/share/oops/symbol.hpp:130:18: error: writing 1 byte into a region of size 0 [-Werror=stringop-overflow=] 130 | _body[index] = value; | ~~~~~~~~~~~~~^~~~~~~ (omitted)
  • 13. Changes in GCC 10 © 2021 NTT DATA Corporation 13 GCC 10 Release Series — Changes, New Features, and Fixes https://gcc.gnu.org/gcc-10/changes.html
  • 14. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools 2. Search issues in JDK Bug System (JBS) © 2021 NTT DATA Corporation 14
  • 15. JDK Bug System (JBS) • Bug tracking system for OpenJDK » https://bugs.openjdk.java.net/projects/JDK/issues/ © 2021 NTT DATA Corporation 15
  • 16. Filter by Labels • Bug tracking system for OpenJDK » https://bugs.openjdk.java.net/projects/JDK/issues/ » Accessible for everyone with read-only » Filter issues by starter label • Those are for beginners • Clean-up label is also ok © 2021 NTT DATA Corporation 16
  • 17. Ways I’ve tried • How to find points to be fixed? 1. Build OpenJDK with new versions of tools 2. Search issues in JDK Bug System (JBS) © 2021 NTT DATA Corporation 17
  • 18. Contribution Process • Case: Bug Fix » Almost the same as popular OSS development 1. ✅Find a bug 2. ➡Fix a bug 3. Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 18
  • 19. Testing is important • Assume that we've finished fixing code • Need to run related tests © 2021 NTT DATA Corporation 19
  • 20. Testing is important • Assume that we've finished fixing code • Need to run related tests » For Java code: jtreg • Regression test harness • https://openjdk.java.net/jtreg/index.html © 2021 NTT DATA Corporation 20
  • 21. Run a jtreg Test © 2021 NTT DATA Corporation 21
  • 22. Testing is important • Run related tests before submitting the patch » For Java code: jtreg » For C++ code: gtest (GoogleTest) • Google C++ Testing Framework © 2021 NTT DATA Corporation
  • 23. Testing is important • Run related tests before submitting the patch » For Java code: jtreg » For C++ code: gtest (GoogleTest) • Google C++ Testing Framework © 2021 NTT DATA Corporation $ ./build/linux-x86_64-server-fastdebug/hotspot/variant-server/libjvm/gtest/gtestLauncher -jdk:./build/linux- x86_64-server-fastdebug/jdk --gtest_filter=LogConfigurationTest.* Note: Google Test filter = LogConfigurationTest.* [==========] Running 15 tests from 1 test case. [----------] Global test environment set-up. [----------] 15 tests from LogConfigurationTest [ RUN ] LogConfigurationTest.describe_vm [ OK ] LogConfigurationTest.describe_vm (1 ms) (omitted) [==========] 15 tests from 1 test case ran. (659 ms total) [ PASSED ] 15 tests.
  • 24. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ➡ Submit a patch 4. Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 24
  • 25. First thing to do • Send a mail to a suitable ML » Describe the details of the issue » Paste the patch when you have already written it © 2021 NTT DATA Corporation 25
  • 26. Mailing List • Always start from here » https://mail.openjdk.java.net/ © 2021 NTT DATA Corporation 26
  • 27. Mailing List • Always start from here » https://mail.openjdk.java.net/ • Many MLs... © 2021 NTT DATA Corporation 27
  • 28. Mailing List • Always start from here » https://mail.openjdk.java.net/ • Many MLs... » hotspot-dev - JVM » compiler-dev - Java compiler » core-libs-dev - Java class libraries » jdk-dev - General JDK discussions © 2021 NTT DATA Corporation 28
  • 29. My First Mail © 2021 NTT DATA Corporation 29
  • 30. My Experience • Do I send a patch to the public ML? » Feel uneasy... © 2021 NTT DATA Corporation 30
  • 31. My Experience • Do I send a patch to the public ML? » Feel uneasy... » Don’t be afraid! • People are friendly and polite » To those who use English as a second language • like me © 2021 NTT DATA Corporation 31
  • 32. As a Result • Have the issue filed in JBS » We are ready to create a pull request for the issue © 2021 NTT DATA Corporation 32
  • 33. OpenJDK is now in GitHub © 2021 NTT DATA Corporation 33 https://github.com/openjdk/jdk
  • 34. Relationship between JBS and GitHub • All issues need to be filed in JBS » Write the issue number in the title of the pull request • Comments to the PR is sent to related mailing lists » And vice versa © 2021 NTT DATA Corporation 34
  • 35. Submit the Patch! • Sign OCA » Oracle Contribution Agreement » https://oca.opensource.oracle.com/ © 2021 NTT DATA Corporation 35
  • 36. Submit the Patch! © 2021 NTT DATA Corporation 36 • Create a pull request
  • 37. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ➡Receive reviews 5. Address comments 6. Get merged © 2021 NTT DATA Corporation 37
  • 38. Receive Reviews • Need reviews by Reviewers » Reviewer is a role in OpenJDK Community © 2021 NTT DATA Corporation 38
  • 39. Receive Reviews • Need reviews by Reviewers » Reviewer is a role in OpenJDK Community • Roles » Reviewer - Committer role + review » Committer - Author role + commit and sponsor PRs » Author - edit JBS © 2021 NTT DATA Corporation 39 300+ Reviewers and Committers
  • 40. Receive Reviews © 2021 NTT DATA Corporation 40
  • 41. Contribution Process • Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ✅Receive reviews 5. ✅Address comments 6. ➡Get merged © 2021 NTT DATA Corporation 41
  • 42. Find a Sponsor • We can’t merge the PR by ourselves » Need a "sponsor" • Reviewer or Committer can sponsor PRs • Sponsor will merge the PR © 2021 NTT DATA Corporation 42
  • 43. © 2021 NTT DATA Corporation 43
  • 44. Finally... Case: Bug Fix 1. ✅Find a bug 2. ✅Fix the bug 3. ✅Submit a patch 4. ✅Receive reviews 5. ✅Address comments 6. ✅Get merged © 2021 NTT DATA Corporation 44
  • 45. Summary • Don’t be afraid of submitting patches! » Contributing to OpenJDK is not difficult • Let’s move OpenJDK forward together! © 2021 NTT DATA Corporation 45
  • 46. © 2021 NTT DATA Corporation All other company or product names mentioned here in are trademarks or registered trademarks of their respective owners.

Editor's Notes

  1. Thank you for your kind introduction ダゲーホー Hello everyone Thank you for joining me This is the title of my presentation
  2. Let me introduce myself I'm Koichi, Koichi Sakata I'm talking to you from Japan I show my handle name at the bottom left of this slide Follow me if you are interested I'm a Java Champion Last year I submitted some patches to OpenJDK, so I'm an OpenJDK Author now I work at NTT Data
  3. This chart shows issues fixed in JDK 17 per organization Our company, including me, has contributed to OpenJDK since before
  4. Today I will be taking about contributing to OpenJDK How many of you want to contribute to OpenJDK? Yes, I can see All people in this room want to do so As you can see, there are many ways of contributing When you hear of the contribution to open source software, the first thing that you think of is writing code But there are other ways to contribute It's good to combine some ways
  5. In this presentation, I will focus on the way of submitting patches Because this is the thing that most people are interested in, I think After this presentation, you will be able to submit patches to OpenJDK Duke needs you for JDK development
  6. Let's try to think about fixing bugs The contribution process is almost the same as developments of popular open source software, such as spring framework, Jakarta EE, etc.
  7. There are some steps to fix a bug First, find.., then fix..., submit..., finally the patch is merged I'll explain each step from now
  8. The first step is to find a bug
  9. As you know, OpenJDK works well in our applications almost always Have you ever come across a new JDK bug? We try to find bugs but failing to do so What should we do? Where are points to be fixed?
  10. I tried some different ways. As a result, I've found points to be fixed before. I'll introduce them to you. It's effective to build OpenJDK with new versions of tools
  11. As you may know, OpenJDK has not only Java but also C++, especially JVM is written in C++ So we need tools for C++ to build it For example we use GCC on Linux, Clang on macOS, Visual Studio on Windows You can build it on WSL, Windows Subsystem for Linux Errors or warnings might occur during the build. If those occurs, it means you have found the point to be fixed. Then you can try to resolve it
  12. I've actually tried it before I saw some warnings with GCC 10 immediately after it released Those warnings didn't happened with GCC 9 What you can see at the bottom is one of the warnings The details of the warning is out of this presentation When you build with the new versions of tools, you might be able to see some errors or warnings as well
  13. On the GCC website, I found those sentences in this slide The warning was enhanced in GCC 10 I examined the warning further and tried to change the code to fix the warning This is how I write a patch for warnings
  14. I'll introduce another way to find points to be fixed OpenJDK has the bug tracking system We simply call it JBS
  15. It's the bug tracking system JBS is based on Atlassian JIRA So you can operate JBS in the same way as JIRA. Look at this screenshot Each issue has detailed information
  16. JBS is accessible for everyone with read-only You can search issues on JBS In this screenshot I used the query language to search issues that have starter label Those are for beginners so good to address I’ve fixed some issues that had the label before Issues that have clean-up label are also good for beginners
  17. OK, we can find the points now Let's move on to the next step
  18. Second step is fixing a bug
  19. Assume that we've finished fixing code Of course, we should run tests before sending a patch
  20. Jtreg is the regression test harness I'll show you a demo
  21. This is the movie of running a jtreg test I increased the playback speed This code is a test class for the clhsdb tool in the jhsdb I executed the make run-test command It's running the test Just a moment What you can see here is the result of running a jtreg test
  22. There is also gtest test code for the C++ part Gtest is a Google C++ testing framework
  23. Here is the result of running a gtest test.
  24. So far, we become able to run tests Go on to the next step How do we submit our patch? Is it OK to create pull requests to the OpenJDK repository in GitHub?
  25. Instead of creating pull requests, it's better to send a mail to the suitable mailing lists. In the mail, you write the details of the issue you found and paste the patch if you have written it already When the issue is recognized, it is filed in JBS After that, you can create the pull request to the repository
  26. Mailing lists are important for the OpenJDK development. I'm going to talk for a minute about them
  27. Don't be surprised, OpenJDK has many mailing lists. I took a count of them There are 200 mailing lists
  28. I'll introduce a few of them hotspot-dev, compiler-dev... Each mailing list covers of the topic as described in this slide It's good to subscribe those mailing lists to gather information All mails are archived We can read past communications on the web site
  29. This is my first mail to the mailing list As you can see, it's about GCC warnings I explained before
  30. Yes, I understand how you feel now Do we need to code to the public mailing list? Everyone will feel uneasy to do I used to be the same
  31. But don't be afraid People in the OpenJDK community are friendly and polite Even if English is your second language, like me So you can send the mail, too
  32. When the issue is recognized, OpenJDK developers filed it in JBS After that, you can create a pull request in GitHub.
  33. OpenJDK has a repository in GitHub. It used to use Mercurial
  34. There is a relationship between JBS and GitHub All issues need to be files in JBS We have to write the issue number in the title of the pull request Additionally, comments to the pull request are send to related mailing lists of OpenJDK and vice versa
  35. Before creating a pull request, we have to sign OCA, that is Oracle Contribution Agreement For more information see this link
  36. Next, we create a pull request as usual This screenshot is my pull request
  37. We've submitting the patch Next step is receiving reviews
  38. Of course the pull request need to be reviewed The only people who has a reviewer role can review and approve the code Reviewer is one of the roles in OpenJDK Community
  39. I'll give a short explanation of roles in OpenJDK Everyone is a contributor at first They don't have any privileges After some contributions, you will be an Author I have this role I'll touch on what sponsoring means later At present, there are over three hundred committers and reviewers When you make many significant changes, you will become a committer or reviewer
  40. Let's get back to the pull request In this example, my pull request were reviewed by four reviewers
  41. This is the last step
  42. We can't merge our pull request by ourselves After the review, Reviewer or committer can sponsor the pull request The sponsor will merge it If you don’t have any role, your name will be recorded as a contributor
  43. In this screenshot, the sponsor run sponsor pull request command to merge this pull request
  44. We did it! I've explained all steps to fix a bug.
  45. Let me summarize Today I talked about contributing to OpenJDK There are many steps But don't be afraid You can do it Let's move OpenJDK forward together!
  46. I guess that's all I wanted to say today Thank you for your attention Enjoy this conference!