Slide 1

Slide 1 text

初心者向け!OSSコントリビュート概要 ~ Keycloakにプルリクエストしてみた話 2024.08.28 クラメソさっぽろIT勉強会 (仮) #4 三浦 恒樹 (MIURA KOUKI) 診療情報管理士 上級医療情報技師 医用画像情報専門技師 ドゥウェル株式会社

Slide 2

Slide 2 text

長男が飼っている ハリネズミがアイコン INTRODUCE ・ドゥウェル株式会社 (医療系IT開発・導入会社)に所属 ・マネージャー(プレイングマネージャー) ・仕事では Java,C#,Node.js + JavaScript,TypeScript ・趣味では PHP,Node.js + JavaScript ・3児の父 ・札幌PHP勉強会、JBUG札幌、JavaDO、ゆるWeb勉強会 等に参加

Slide 3

Slide 3 text

INDEX 初心者向け!OSSコントリビュート概要 ~ Keycloakにプルリクエストしてみた話 ・OSSにコントリビュート? ・OSS Gate ・Keycloak ・コントリビュートの流れ ・良かったこと、失敗したこと

Slide 4

Slide 4 text

OSSにコントリビュート? ・関わる人の役割 OSS 決定する コミットする (マージする) PRする メンテナー Issueを登録 する 使用する コミッター コントリ ビューター ユーザー

Slide 5

Slide 5 text

OSSにコントリビュート? ・コントリビュートとは OSS PRする Issueを登録 する コントリ ビューター 「こういう機能作ってみました。 マージしてください」 「ここのバグ直しました。マージし てください」 「インストール手順修正しました。 マージしてください」 「マニュアルの画像更新しました。 マージしてください」 「こういう機能がほしい」 「ここ少し変でしたよ」 「手順どおりインストールできませ ん」 「マニュアルの画像古いです」

Slide 6

Slide 6 text

OSS Gate https://oss-gate.github.io/about/ 2024.01.14 PHP Lovers Meetup vol.3 + OSS Gate in 北の大地 (Sapporo Engineer Base共催) ・ワークショップ形式 ・ビギナーとして参加 ・サポーターがビギナーにマンツーマンで手順を教えてくれる  ・コントリビュートガイドを読む  ・(必要であれば)開発環境を作る  ・Issueを登録する  ・PRする →PHPの国産CMS baserCMSを選択!  →開発環境を作り、テストを実行するとWarningが発生   →Issueを登録することにした ※時間内に終わらず、その日の夜登録

Slide 7

Slide 7 text

OSS Gate https://github.com/baserproject/basercms/issues/3026 数時間後...対応速い! こちらこそありがとうございまし た。

Slide 8

Slide 8 text

Keycloak https://www.keycloak.org/ ・OSSのIAM(Identity and Access Management) ・Java - Quarkus - React.js ・シングルサインオン ・多要素認証 ・パスキー対応 ・OIDC, OAuth2.0, SAML2.0対応 ・LDAP, AD連携 ・外部IdP連携 ・ソーシャルログイン

Slide 9

Slide 9 text

Keycloak https://www.hitachi.co.jp/products/it/oss/efforts/keycloak/index.html その重要性から、日立製作所 やNRI等のOSS活動が盛ん な大手企業が介入するOSS

Slide 10

Slide 10 text

コントリビュートの流れ V23~ V22.02 v23~AdminConsoleのメニューの日 本語が壊れていました。 過去バージョンを遡ってみると、v22系 は”Groups”と表示されています。 また、v23でメニューに表示されている のはCreate user画面のGroupsのヘ ルプ文言でした。

Slide 11

Slide 11 text

コントリビュートの流れ https://github.com/keycloak/keycloak/issues/27962 1. Contributing Guidelinesを読む 2. ソースコードをCloneしてリソース名等を下調べ 3. Issueを登録する  ・テンプレートを埋めていくだけ   ・Before reporting an issue   ・Area   ・Describe the bug   ・Version   ・Regression   ・Expected behavior   ・Actual behavior   ・How to Reproduce?

Slide 12

Slide 12 text

コントリビュートの流れ https://github.com/keycloak/keycloak/issues/27965 4. 調べているうちに、英語リソースの指定部分   (画面ソースコード)もおかしいと分かった 5. 2件目のIssueを登録する

Slide 13

Slide 13 text

コントリビュートの流れ https://github.com/keycloak/keycloak/issues/27965 6. 「YouはPRしてこの問題をfixする気ある?」   Would you possibly be interested in opening a PR to fix the problem as well? 7. 「はい。光栄です。なる早でfixしてやりますよ。」   Yes. I would be happy to open a pull request to address the issue. I will work on a solution as soon as possible.

Slide 14

Slide 14 text

コントリビュートの流れ https://github.com/keycloak/keycloak/pull/27964/commits/de87c0f74b5081e3668eaf073136e0ce714118f1

Slide 15

Slide 15 text

コントリビュートの流れ https://github.com/keycloak/keycloak/pull/27964 8. 「他の日本語分かる人にレビューしてもらって」

Slide 16

Slide 16 text

コントリビュートの流れ https://github.com/keycloak/keycloak/pull/27964 9. 「日本語の部分、LGTM!」   ※LGTM=Looks Good To Me ありがとうございました!

Slide 17

Slide 17 text

良かったこと、失敗したこと ■良かったこと(Keep) ・出会い  ・OSSで活躍している人たちは親切  ・活動を通して開発者やユーザーに貢献するという気持ちが感じ取れる ・活動履歴  ・有名OSSにマージされたという達成感 ■失敗したこと(Problem) ・GitHubの使い方  ・1コミット1PRのルールを守れなかった  ・使い方を間違えないようにトレーニングが必要 ■挑戦したいこと(Try) ・メンテナーになる  ・有名OSSのメンテナーになって、多くのユーザーや社会に貢献したい

Slide 18

Slide 18 text

SUMMARY ・OSSに関わる人たちの役割の整理 ・「コントリビュート」はOSSを良くする活動であれば何でも良い ・OSS Gateでコントリビュートをトレーニングできる ・有名OSS(Keycloak)にコントリビュートすることで自信が付いた ・すべては難しいが、自社製品で使用するOSSのいくつかはコントリビュートしながら  継続利用していきたい ご清聴ありがとうございました。