Slide 1

Slide 1 text

1 PHPの開発に貢献する4つの方法 2024年1月13日 PHPカンファレンス北海道2024 サイボウズ株式会社 開発本部 Garoon開発チーム 松尾 篤

Slide 2

Slide 2 text

2 Copyright © Cybozu • 松尾 篤(まつお あつし) • PHP使用歴:約19年 • PHPを使った開発歴は約16年 • 2023年4月にGaroon開発チームに加入 • Garoonのセキュリティを維持するYukimiチームの紹介 https://blog.cybozu.io/entry/2023/10/04/101916 • PHP関連カンファレンスでのLT登壇は初めて 自己紹介

Slide 3

Slide 3 text

3 Garoonとは 3 中堅・大規模組織向けのグループウェア • 社内の様々な情報を整理・統合表示するためのポータル機能 • きめ細やかなアクセス権限設定や管理機能 • 多言語対応やAPIによる他システムと連携する拡張性など スケジュール 掲示板 メッセージ スペース ファイル管理 ワークフロー ポータル 組織ロール 多言語 タイムゾーン 他システム 連携 情報共有・コミュニケーションに 必要なアプリケーション 中堅・大規模組織の運営に 必要な管理機能

Slide 4

Slide 4 text

4 Copyright © Cybozu • 製品を安定して提供するにはPHP自体の発展や継続が必要不可欠 • サイボウズの存在意義(Purpose)は「チームワークあふれる社会 を創る」 • PHPとPHPコミュニティへの支援もできる限り行っていきたい • サイボウズは事業成長のフィードバックとしてOSSへ寄付をしています • サイボウズ GaroonからThe PHP Foundationに毎年寄付をしています • サイボウズのOSSポリシー : https://cybozu-oss-policy.readthedocs.io/ja/ • オープンソースコミュニティにおける良き一員であるために必要なことを規定 • 社員がOSS関連活動を過大な負担なく行えるよう支援 サイボウズ GaroonはPHPベースの製品

Slide 5

Slide 5 text

5 Copyright © Cybozu • ソースコードが公開され、誰でもその改変および再配布を自由 に行うことができる • 誰でも開発に参加できる • 何らかの形で貢献(コントリビュート)できる PHPはOSS(オープンソースソフトウェア)

Slide 6

Slide 6 text

6 Copyright © Cybozu 1.Running test suites in RC and release distributions of PHP 2.Help finding and diagnosing failed tests, see the phpt documentation 3.Filing and resolving bug reports on GitHub Issues. 4.Help maintain and or translate documentation files at the doc-* repositories on github. Check out our guide for contributors. https://php.net/get-involved より引用 Four Best Ways to Contribute

Slide 7

Slide 7 text

7 Copyright © Cybozu 1.PHPのRC版やリリース版でテストを実行する 2.失敗するテストが見つかった場合にはその内容を診断する(詳細 はphptのドキュメントを参照) 3.GitHub Issuesで不具合の登録や修正を行う 4.GitHubにあるdoc-*リポジトリでドキュメントの保守や翻訳を 手伝う(詳細はPHP Manual Contribution Guideを参照) https://php.net/get-involved より PHPの開発に貢献する方法

Slide 8

Slide 8 text

8 Copyright © Cybozu • 実行手順例 • https://github.com/php/php-src に記載されている手順を実行 $ tar xzvf php-8.3.1.tar.gz $ cd php-8.3.1 $ ./configure --enable-debug $ make -j4 $ make TEST_PHP_ARGS=-j4 test • Ubuntu 22.04 LTSでテストを実行する際にはメモリーは2GB以上必要 テストを実行する

Slide 9

Slide 9 text

9 Copyright © Cybozu • 実行結果の例 =================================================== ================== FAILED TEST SUMMARY --------------------------------------------------------------------- Bug #81740 (PDO::quote() may return unquoted string) [ext/pdo_sqlite/tests/bug81740.phpt] =================================================== ================== You may have found a problem in PHP. This report can be saved and used to open an issue on the bug tracker at https://github.com/php/php-src/issues This gives us a better understanding of PHP's behavior. Do you want to save this report in a file? [Yn]: n 失敗したテストの内容を診断する

Slide 10

Slide 10 text

10 Copyright © Cybozu • 不具合の登録はGitHub Issuesで • https://github.com/php/php-src/issues • GitHubのアカウントが必要 • テストの追加や不具合の修正にはプルリクエストを送る • 不具合の修正にはPHP RFC(Request for Comments)の提出は不要 • 実際に貢献する際に事前に参照しておきたいドキュメント • https://github.com/php/php-src/blob/master/README.md • https://github.com/php/php-src/blob/master/CONTRIBUTING.md • https://wiki.php.net/vcs/gitworkflow 不具合の登録や修正を行う

Slide 11

Slide 11 text

11 Copyright © Cybozu • GitHub上にあるPHP( https://github.com/php )のdoc-* リポジトリで作業 • 例: https://github.com/php/doc-ja • 詳細はPHP Manual Contribution Guide ( http://doc.php.net/tutorial/ )を参照 • PHP マニュアル 日本語版について • https://github.com/php/doc- ja/blob/master/README_About_ThisManual.md ドキュメントの保守や翻訳を手伝う

Slide 12

Slide 12 text

12 Copyright © Cybozu 1.PHPのRC版やリリース版でテストを実行する 2.失敗するテストが見つかった場合にはその内容を診断する(詳細 はphptのドキュメントを参照) 3.GitHub Issuesで不具合の登録や修正を行う 4.GitHubにあるdoc-*リポジトリでドキュメントの保守や翻訳を 手伝う(詳細はPHP Manual Contribution Guideを参照) https://php.net/get-involved より PHPの開発に貢献する方法

Slide 13

Slide 13 text

13 Copyright © Cybozu • 視野が広がる • 社外の人と交流できる機会を持つきっかけにつながる • いろいろと疑問点が出てきて実際に試してみるきっかけにつながる • 知見を広げられる • OSSだと無料でサービスを利用できる場合があり本格導入のきっかけになる • CI系のサービスを使うことで各種OSSの変更点を知るきっかけにつながる • 発表すると楽しい • 名前を覚えてもらいやすくなりコミュニティに参加しやすくなる • 一緒に活動する人がいると様々なことを知ることができてより楽しくなる OSS活動のメリット

Slide 14

Slide 14 text

14 14 Copyright © Cybozu Garoonを一緒に開発する仲間を募集中! https://cybozu.co.jp/recruit/ Webエンジニア QAエンジニア エスカレーションエンジニア