Movatterモバイル変換


[0]ホーム

URL:


PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)

PostgreSQL開発コミュニティに参加しよう!(オープンデベロッパーズカンファレンス(ODC)2024 発表資料)2024年9月7日(土)NTTデータグループInnovation技術部藤井 雅雄

Embed presentation

© 2024 NTT DATA Group Corporation© 2024 NTT DATA Group Corporationオープンデベロッパーズカンファレンス(ODC)2024PostgreSQL開発コミュニティに参加しよう!2024年9月7日NTTデータグループ 藤井雅雄
© 2024 NTT DATA Group Corporation 2自己紹介藤井 雅雄Database Technical Lead @ NTTデータグループデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮バックアップ進捗確認pg_bigm(全文検索モジュール) コミッタfujii_masaoMasaoFujii
© 2024 NTT DATA Group Corporation 3PostgreSQL開発コミュニティに参加しよう!
© 2024 NTT DATA Group Corporation 4PostgreSQLコミュニティ (グローバル)The PostgreSQL Global Development GroupPostgreSQL本体を開発しているコミュニティLocal User Groups世界各地 (33ヶ国62地域) にあるPostgreSQLユーザグループPUG = PostgreSQL User GroupEvents世界各地でPostgreSQLに関するカンファレンスなどのイベントが開催Slack, IRC, LinkedIn, etc様々なチャンネルでPostgreSQLユーザが集まってコミュニケーション
© 2024 NTT DATA Group Corporation 5PostgreSQLコミュニティ (日本)日本PostgreSQLユーザ会日本のPostgreSQLユーザグループJPUG = Japan PostgreSQL User Group支部北海道、東北、新潟、名古屋、関西、四国、中国、九州、沖縄文書・書籍関連分科会PostgreSQL関連の文書の翻訳PostgreSQLエンタープライズ・コンソーシアムPostgreSQLの普及推進を目的とする企業コンソーシアムPGECons = PostgreSQL Enterprise Consortium
© 2024 NTT DATA Group Corporation 6PostgreSQLコミュニティ (日本)Events日本の様々なコミュニティ・団体・企業・個人がカンファレンスなどのイベントを開催PostgreSQL Conference JapanPostgreSQLアンカンファレンス ...etcSlackPostgreSQLに関する日本語Slack
© 2024 NTT DATA Group Corporation 7PostgreSQLコミュニティ (グローバル)The PostgreSQL Global Development GroupPostgreSQL本体を開発しているコミュニティLocal User Groups世界各地 (35ヶ国67地域) にあるPostgreSQLユーザグループPUG = PostgreSQL User GroupEvents世界各地でPostgreSQLに関するカンファレンスなどのイベントが開催Slack, IRC, LinkedIn, etc様々なチャンネルでPostgreSQLユーザが集まってコミュニケーションPostgreSQL開発コミュニティに参加しよう!
© 2024 NTT DATA Group Corporation 8The PostgreSQL Global Development Groupメーリングリスト WikiGitレポジトリコアチーム コミッタ開発、レビュー、テスト、バグ報告コントリビュータユーザ
© 2024 NTT DATA Group Corporation 9The PostgreSQL Global Development Groupメーリングリスト WikiGitレポジトリコアチーム コミッタ開発、レビュー、テスト、バグ報告コントリビュータユーザ参加選出選出7名30名v16開発では361名
© 2024 NTT DATA Group Corporation 10The PostgreSQL Global Development Groupに参加の企業例企業別の所属コミッタ数(2024年3月時点)count | company-------+-------------------------7 | EnterpriseDB6 | Amazon Web Services5 | Microsoft1 | Crunchy Data1 | Fujitsu1 | Google Cloud Platform1 | Individuals1 | Instaclustr1 | NTT1 | NTT DATA1 | Neon, Inc1 | Redpill Linpro1 | SRA OSS1 | Supabase Inc.1 | University of Cambridge
© 2024 NTT DATA Group Corporation 11PostgreSQLコミュニティは何が特異的なのか特定の企業に偏らない開発が進む複数の企業からの参加全体のコンセンサスを取って開発• EDB, Microsoft, AWS, Crunchy Data, NTT, 富士通, SRA OSS, Google Cloud, その他多数• どの企業がメイン、ということもない• コアチームは、独裁的に開発の方向性は決めない• 技術的な方向性は全体で合意のうえ、開発が進められる
© 2024 NTT DATA Group Corporation 12PostgreSQL開発のフロー新機能の提案やバグの報告を行う新機能の必要性やユーザI/F、アーキテクチャ、実現方法、バグ原因、修正方法などを議論する議論結果を踏まえて、新機能やバグ修正をコーディングして、パッチを作成・投稿するパッチをレビューして、不備を改修するコミッタがパッチをPostgreSQL本体に取り込む提案・バグ報告議論パッチ作成レビューコミット繰り返し
© 2024 NTT DATA Group Corporation 13議論に参加しよう!
© 2024 NTT DATA Group Corporation 14メーリングリストの購読PostgreSQL開発コミュニティでのコミュニケーションはメーリングリストが基本PostgreSQL公式サイトでコミュニティアカウントを作成して、4つのMLを購読pgsql-hackers新機能の提案やバグ修正、開発課題などについて議論するpgsql-bugsユーザからのバグ報告先。報告されたバグやその修正などについて議論するpgsql-docsドキュメントやその問題、改修などについて議論するpgsql-committersコミットされた内容が通知される過去の議論内容は、各メーリングリストのアーカイブから確認可能https://www.postgresql.org/list/
© 2024 NTT DATA Group Corporation 15議論を読む藤井がv13向けにバックアップ取得の進捗確認機能を提案したときのメール
© 2024 NTT DATA Group Corporation 16議論を読むコツ興味あるテーマ・機能・バグの議論から読むOSS-DBの資格取得などを通じてPostgreSQLの体系的な事前知識を得ておく英語の長い議論を手軽に読みたいときは、翻訳サイトなども活用例えば、Shaperで英文を整形して、DeepLで日本語翻訳https://dream-exp.net/shaper/https://www.deepl.com/translator用語・省略語などを理解するhttps://www.crunchydata.com/blog/understanding-the-postgres-hackers-mailing-list
© 2024 NTT DATA Group Corporation 17議論で返信する宛先にMLを含める内容は公開されることに注意bottom-posting返信したい対象の文章を引用して、その下に返信を記載する行動規範に則った発言https://www.postgresql.org/about/policies/coc/ja/引用返信引用返信
© 2024 NTT DATA Group Corporation 18議論で返信するコツ翻訳サイトなどを活用して、英文を作成例えば、日本語で文章を作成して、DeepLで英語翻訳、Grammarlyで添削https://www.deepl.com/translatorhttps://www.grammarly.com/文を無理に長くしない、箇条書きにする、例を出して説明する他の人のメールやPostgreSQLドキュメント、ソースコメントの英文を参考にする
© 2024 NTT DATA Group Corporation 19レビューに参加しよう!
© 2024 NTT DATA Group Corporation 20PostgreSQL開発のサイクル2024年度 2025年度6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11CF CF CF CF CFv18開発v17開発v19開発CF CFBeta / RCBeta / RCFeatureFreeze リリースリリースコミュニティサポートCFCommitFestパッチレビューに集中する期間
© 2024 NTT DATA Group Corporation 21CommitFestCommitFest Appでレビュー対象のパッチを一覧管理https://commitfest.postgresql.org/
© 2024 NTT DATA Group Corporation 22CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
© 2024 NTT DATA Group Corporation 23レビューするパッチを決める興味ある機能や分野のパッチレビューしやすいパッチドキュメントやテストケースのパッチ独立した機能などで影響範囲の小さいパッチ(クライアントツール、contribモジュール、SQL関数など)サイズの小さいパッチ仕様やI/Fなどの内容がコミュニティで合意済のパッチメインのレビュアがいるパッチメインのレビュアによるレビュー内容を勉強しながら、サブのレビュアとして取り組む
© 2024 NTT DATA Group Corporation 24レビュアとして登録するCommitFest App「Become reviewer」を押して、レビュアとして登録CF App 内の各パッチのページ
© 2024 NTT DATA Group Corporation 25パッチを入手する~パッチをダウンロードCF App 内の各パッチのページ ML上でパッチについて議論しているメール
© 2024 NTT DATA Group Corporation 26パッチをレビューする提案レビューパッチは適用できるか?ドキュメントやテストを含んでいるか?仕様レビューパッチは本当に必要か?仕様はコミュニティで合意されているか?機能テスト仕様通りに動作するか?クラッシュや想定外のエラーはないか?性能試験パッチにより性能劣化しないか?コーディング・レビューWindowsでも動作するか?コーディング規約に従っているか?アーキテクチャ・レビュー他機能と一貫性のあるアーキテクチャか?https://wiki.postgresql.org/wiki/Reviewing_a_Patch/jaレビューコメントとしてMLで返信する
© 2024 NTT DATA Group Corporation 27パッチを適用、コンパイル、テストする① ソースの入手、コンパイルに必要なライブラリをインストールする$ sudo dnf install git gcc make bison flex readline readline-devel zlib-devel libicu-devel② TAPテスト(*)に必要なライブラリをインストールする$ sudo dnf install perl-CPAN$ sudo cpan -i IPC::Run Test::Simple Time::HiRes Test::Harness③ ドキュメントのコンパイルに必要なライブラリをインストールする$ sudo dnf install docbook-dtds docbook-style-xsl libxslt環境によって必要なライブラリやインストールのコマンドが異なることに注意!上記はRHEL8系環境での実行例(*) PostgreSQLのクライアントツールなどを対象とする追加テスト
© 2024 NTT DATA Group Corporation 28パッチを適用、コンパイル、テストする④ PostgreSQLのgitレポジトリをクローンする$ git clone git://git.postgresql.org/git/postgresql.git⑤ パッチ適用先ブランチをチェックアウトする$ cd postgresql$ git checkout master⑥ パッチ用の新規ブランチを作成する$ git checkout -b xxx$ git branchmaster* xxx基本的に「開発中の最新メジャーバージョン」のmasterブランチがパッチ適用先手元環境だとクローンにかかった時間は約15分レビュー完了後などにパッチ適用を手軽にクリアできるように、パッチ用のブランチを作成するのがおススメ!
© 2024 NTT DATA Group Corporation 29パッチを適用、コンパイル、テストする⑦ パッチを適用する$ patch -p1 -d. < $HOME/xxx.patch⑧ PostgreSQLをコンパイルする$ ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix=$HOME/pgsql/xxx CFLAGS=-O0$ make -j 4$ make installデバッグしやすいようにオプションを指定する--enable-debug--enable-cassert--enable-tap-testsCFLAGS=-O0インストール先のディレクトリを指定する--prefix時間短縮のため複数多重でコンパイルするように-jオプションを指定するのがおススメ!パッチ適用やコンパイルで発生したエラー・警告は、レビューコメントとしてMLで報告する
© 2024 NTT DATA Group Corporation 30パッチを適用、コンパイル、テストする⑨ contribモジュールをコンパイルする$ cd contrib$ make$ make install$ cd ..⑩ ドキュメントをコンパイルする$ make html⑪ リグレッションテストを実行する$ make -j 4 check-worldコンパイルやテストで発生したエラー・警告は、レビューコメントとしてMLで報告するCF登録のパッチは自動的にテストが走り、その結果をPatch Testerから確認できるhttp://cfbot.cputube.org/時間短縮のため複数多重でコンパイルするように-jオプションを指定するのがおススメ!
© 2024 NTT DATA Group Corporation 31パッチを適用、コンパイル、テストする⑫ PostgreSQLを起動する$ cd $HOME/pgsql/xxx$ bin/initdb -D data --locale=C --encoding=UTF8$ bin/pg_ctl -D data start⑬ パッチの新機能をテストする$ bin/psql...⑭ PostgreSQLを停止する$ bin/pg_ctl -D data stop思いつく限りの新機能の使い方を試してみる!例えば、入力のバリエーション (境界値、大規模データ、不正値など)大量実行、複数多重同時実行物理/論理レプリケーション環境での動作起動・停止やテストで発生したエラー・想定外動作は、レビューコメントとしてMLで報告する
© 2024 NTT DATA Group Corporation 32パッチをコーディング・レビューするコーディング規約やエラーメッセージのスタイルガイドに従っているか?https://www.postgresql.jp/document/current/html/source.htmlコメントやドキュメントに内容誤り(古い内容のまま)やTypoはないか?関数名、変数名、マクロ名、ファイル名などの命名が分かりやすく適切か?初期化忘れ、クローズ・解放忘れ、戻り値のチェック忘れなどのバグはないか?セグメンテーションフォルトやアサーションエラーを引き起こすコードパスはないか?無駄、非効率、(必要以上に)複雑すぎる、理解しにくいコードはないか?例えば、以下の観点でコード上気になる点をレビューコメントとしてMLで報告する
© 2024 NTT DATA Group Corporation 33レビューコメントを返信するレビューコメントの返信メールの例 (抜粋)変数の初期値の誤りや初期化忘れを指摘カラム名の命名が適切でないことの指摘
© 2024 NTT DATA Group Corporation 34パッチのステータスを変更する「Change Status」を押して、パッチのステータスを変更
© 2024 NTT DATA Group Corporation 35CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
© 2024 NTT DATA Group Corporation 36パッチのコミットを確認するコミットログの例レビューしたパッチがコミットされると、レビュアとして名前がコミットログに記録される!
© 2024 NTT DATA Group Corporation 37パッチを作成・投稿しよう!
© 2024 NTT DATA Group Corporation 38パッチネタを見つける取り組み成果やその関連技術をPostgreSQLに組み込む成果が大きすぎる場合は、細かい技術要素に分けて、少しずつパッチ化できないか考えるコミュニティでの議論やパッチレビューでパッチネタを見つける議論中に新機能のアイデアが出ることや、レビュー中にPostgreSQLの不具合が見つかることが多いPostgreSQLの最新バージョンリリース前後に、そのバージョンの新機能を試すリリース前後は、新機能に不具合が含まれていることが多い
© 2024 NTT DATA Group Corporation 39PostgreSQL開発のフロー新機能の提案やバグの報告を行う新機能の必要性やユーザI/F、アーキテクチャ、実現方法、バグ原因、修正方法などを議論する議論結果を踏まえて、新機能やバグ修正をコーディングして、パッチを作成・投稿するパッチをレビューして、不備を改修するコミッタがパッチをPostgreSQL本体に取り込む提案・バグ報告議論パッチ作成レビューコミット繰り返しパッチネタについてまずはコミュニティで議論して、その結果にもとづいてパッチを作成するのが基本パッチを作成してみないと提案・議論しにくい場合は、パッチを先に作成することも
© 2024 NTT DATA Group Corporation 40パッチを作成する① masterブランチでソースを最新化して、パッチ用のブランチを作成する。$ git checkout master$ git pull$ git checkout -b new-func② ソースを改修して、その改修内容をコミットする。$ emacs ...$ git commit -a -m "Add new func ..."③ masterブランチからパッチ用ブランチへのソース差分をパッチとして作成する。$ git format-patch master$ ls *.patch0001-Add-new-func.patch
© 2024 NTT DATA Group Corporation 41パッチレビューの観点をクリアできているか提案レビューパッチは適用できるか?ドキュメントやテストを含んでいるか?仕様レビューパッチは本当に必要か?仕様はコミュニティで合意されているか?機能テスト仕様通りに動作するか?クラッシュや想定外のエラーはないか?性能試験パッチにより性能劣化しないか?コーディング・レビューWindowsでも動作するか?コーディング規約に従っているか?アーキテクチャ・レビュー他機能と一貫性のあるアーキテクチャか?https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja
© 2024 NTT DATA Group Corporation 42パッチレビューの観点をクリアできているかコーディング規約やエラーメッセージのスタイルガイドに従っているか?https://www.postgresql.jp/document/current/html/source.htmlコメントやドキュメントに内容誤り(古い内容のまま)やTypoはないか?関数名、変数名、マクロ名、ファイル名などの命名が分かりやすく適切か?初期化忘れ、クローズ・解放忘れ、戻り値のチェック忘れなどのバグはないか?セグメンテーションフォルトやアサーションエラーを引き起こすコードパスはないか?無駄、非効率、(必要以上に)複雑すぎる、理解しにくいコードはないか?
© 2024 NTT DATA Group Corporation 43PostgreSQL開発のサイクル2024年度 2025年度6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11CF CF CF CF CFv18開発v17開発v19開発CF CFBeta / RCBeta / RCFeatureFreeze リリースリリースコミュニティサポートCFCommitFestパッチレビューに集中する期間
© 2024 NTT DATA Group Corporation 44CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
© 2024 NTT DATA Group Corporation 45パッチのコミットを確認するコミットログの例作成したパッチがコミットされると、作者として名前がコミットログに記録される!リリースノートの例ユーザが知るべき機能・改変の場合は、リリースノートにも記録される!
© 2024 NTT DATA Group Corporation 46さいごに
© 2024 NTT DATA Group Corporation 47参加すると楽しい!PostgreSQLをより深く理解できる・使いこなせるようになる自分の提案に世界中の技術者から反応がある・議論できる・一緒に開発できる・見識も人脈も広がる自分の成果として名前が残り、セルフブランディングになる自分のコードが世界中で使われる・感謝されるコーディングスキルが向上するコミュニティに参加するモチベーション
© 2024 NTT DATA Group Corporation 48困ったときは日本のコミュニティで相談も例えば、ほぼ月1ペースで開催のアンカンファレンスでバグのLTをするなど
記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。

Recommended

PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
バージョン17からのpg_stat_bgwriter (第48回 PostgreSQLアンカンファレンス 発表資料)
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
Always on 可用性グループ 構築時のポイント
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PPTX
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PDF
Dockerfileを改善するためのBest Practice 2019年版
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PDF
CentOS Linux 8 の EOL と対応策の検討
PDF
PostgreSQL 15 開発最新情報
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
初心者向けMongoDBのキホン!
PDF
Mavenの真実とウソ
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PPT
インフラエンジニアのためのcassandra入門
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
PDF
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...

More Related Content

PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
バージョン17からのpg_stat_bgwriter (第48回 PostgreSQLアンカンファレンス 発表資料)
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PPTX
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
バージョン17からのpg_stat_bgwriter (第48回 PostgreSQLアンカンファレンス 発表資料)
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~

What's hot

PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PDF
Always on 可用性グループ 構築時のポイント
PDF
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PPTX
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PDF
Dockerfileを改善するためのBest Practice 2019年版
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PDF
CentOS Linux 8 の EOL と対応策の検討
PDF
PostgreSQL 15 開発最新情報
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PPTX
初心者向けMongoDBのキホン!
PDF
Mavenの真実とウソ
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PPT
インフラエンジニアのためのcassandra入門
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
Always on 可用性グループ 構築時のポイント
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
Dockerfileを改善するためのBest Practice 2019年版
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
CentOS Linux 8 の EOL と対応策の検討
PostgreSQL 15 開発最新情報
アーキテクチャから理解するPostgreSQLのレプリケーション
初心者向けMongoDBのキホン!
Mavenの真実とウソ
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
インフラエンジニアのためのcassandra入門
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)

Similar to PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)

PDF
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
PPTX
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PDF
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PDF
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PDF
PostgreSQLコミュニティに飛び込もう
PDF
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
PDF
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PDF
20190119 aws-study-pg-extension
PDF
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
10大ニュースで振り返るpg con2013
PDF
JTF2021w F3 postgresql frontline
PDF
20181110 fok2018-pg-extension
PDF
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
PDF
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
OSSデータベースの開発コミュニティに参加しよう! (DEIM2024 発表資料)
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLコミュニティにおける開発プロセスとプロジェクトマネジメント (PM学会 2024年度秋季研究発表大会 発表資料)
PostgreSQLコミュニティに飛び込もう
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
PostgreSQLのgitレポジトリから見える2022年の開発状況(第38回PostgreSQLアンカンファレンス@オンライン 発表資料)
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(Open Source Conference 202...
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
20190119 aws-study-pg-extension
MesonでPostgreSQLをビルドしてみよう!(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
10大ニュースで振り返るpg con2013
JTF2021w F3 postgresql frontline
20181110 fok2018-pg-extension
1日5分でPostgreSQLに詳しくなるアプリの開発 ~PostgRESTを使ってみた~(第38回PostgreSQLアンカンファレンス@オンライン 発...
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)

More from NTT DATA Technology & Innovation

PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
PDF
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
2025年現在のNewSQL (最強DB講義 #36 発表資料)
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...

PostgreSQL開発コミュニティに参加しよう! (オープンデベロッパーズカンファレンス(ODC)2024 発表資料)

  • 1.
    © 2024 NTTDATA Group Corporation© 2024 NTT DATA Group Corporationオープンデベロッパーズカンファレンス(ODC)2024PostgreSQL開発コミュニティに参加しよう!2024年9月7日NTTデータグループ 藤井雅雄
  • 2.
    © 2024 NTTDATA Group Corporation 2自己紹介藤井 雅雄Database Technical Lead @ NTTデータグループデータベース研究開発PostgreSQL 技術支援PostgreSQLコミッタレプリケーションWAL圧縮バックアップ進捗確認pg_bigm(全文検索モジュール) コミッタfujii_masaoMasaoFujii
  • 3.
    © 2024 NTTDATA Group Corporation 3PostgreSQL開発コミュニティに参加しよう!
  • 4.
    © 2024 NTTDATA Group Corporation 4PostgreSQLコミュニティ (グローバル)The PostgreSQL Global Development GroupPostgreSQL本体を開発しているコミュニティLocal User Groups世界各地 (33ヶ国62地域) にあるPostgreSQLユーザグループPUG = PostgreSQL User GroupEvents世界各地でPostgreSQLに関するカンファレンスなどのイベントが開催Slack, IRC, LinkedIn, etc様々なチャンネルでPostgreSQLユーザが集まってコミュニケーション
  • 5.
    © 2024 NTTDATA Group Corporation 5PostgreSQLコミュニティ (日本)日本PostgreSQLユーザ会日本のPostgreSQLユーザグループJPUG = Japan PostgreSQL User Group支部北海道、東北、新潟、名古屋、関西、四国、中国、九州、沖縄文書・書籍関連分科会PostgreSQL関連の文書の翻訳PostgreSQLエンタープライズ・コンソーシアムPostgreSQLの普及推進を目的とする企業コンソーシアムPGECons = PostgreSQL Enterprise Consortium
  • 6.
    © 2024 NTTDATA Group Corporation 6PostgreSQLコミュニティ (日本)Events日本の様々なコミュニティ・団体・企業・個人がカンファレンスなどのイベントを開催PostgreSQL Conference JapanPostgreSQLアンカンファレンス ...etcSlackPostgreSQLに関する日本語Slack
  • 7.
    © 2024 NTTDATA Group Corporation 7PostgreSQLコミュニティ (グローバル)The PostgreSQL Global Development GroupPostgreSQL本体を開発しているコミュニティLocal User Groups世界各地 (35ヶ国67地域) にあるPostgreSQLユーザグループPUG = PostgreSQL User GroupEvents世界各地でPostgreSQLに関するカンファレンスなどのイベントが開催Slack, IRC, LinkedIn, etc様々なチャンネルでPostgreSQLユーザが集まってコミュニケーションPostgreSQL開発コミュニティに参加しよう!
  • 8.
    © 2024 NTTDATA Group Corporation 8The PostgreSQL Global Development Groupメーリングリスト WikiGitレポジトリコアチーム コミッタ開発、レビュー、テスト、バグ報告コントリビュータユーザ
  • 9.
    © 2024 NTTDATA Group Corporation 9The PostgreSQL Global Development Groupメーリングリスト WikiGitレポジトリコアチーム コミッタ開発、レビュー、テスト、バグ報告コントリビュータユーザ参加選出選出7名30名v16開発では361名
  • 10.
    © 2024 NTTDATA Group Corporation 10The PostgreSQL Global Development Groupに参加の企業例企業別の所属コミッタ数(2024年3月時点)count | company-------+-------------------------7 | EnterpriseDB6 | Amazon Web Services5 | Microsoft1 | Crunchy Data1 | Fujitsu1 | Google Cloud Platform1 | Individuals1 | Instaclustr1 | NTT1 | NTT DATA1 | Neon, Inc1 | Redpill Linpro1 | SRA OSS1 | Supabase Inc.1 | University of Cambridge
  • 11.
    © 2024 NTTDATA Group Corporation 11PostgreSQLコミュニティは何が特異的なのか特定の企業に偏らない開発が進む複数の企業からの参加全体のコンセンサスを取って開発• EDB, Microsoft, AWS, Crunchy Data, NTT, 富士通, SRA OSS, Google Cloud, その他多数• どの企業がメイン、ということもない• コアチームは、独裁的に開発の方向性は決めない• 技術的な方向性は全体で合意のうえ、開発が進められる
  • 12.
    © 2024 NTTDATA Group Corporation 12PostgreSQL開発のフロー新機能の提案やバグの報告を行う新機能の必要性やユーザI/F、アーキテクチャ、実現方法、バグ原因、修正方法などを議論する議論結果を踏まえて、新機能やバグ修正をコーディングして、パッチを作成・投稿するパッチをレビューして、不備を改修するコミッタがパッチをPostgreSQL本体に取り込む提案・バグ報告議論パッチ作成レビューコミット繰り返し
  • 13.
    © 2024 NTTDATA Group Corporation 13議論に参加しよう!
  • 14.
    © 2024 NTTDATA Group Corporation 14メーリングリストの購読PostgreSQL開発コミュニティでのコミュニケーションはメーリングリストが基本PostgreSQL公式サイトでコミュニティアカウントを作成して、4つのMLを購読pgsql-hackers新機能の提案やバグ修正、開発課題などについて議論するpgsql-bugsユーザからのバグ報告先。報告されたバグやその修正などについて議論するpgsql-docsドキュメントやその問題、改修などについて議論するpgsql-committersコミットされた内容が通知される過去の議論内容は、各メーリングリストのアーカイブから確認可能https://www.postgresql.org/list/
  • 15.
    © 2024 NTTDATA Group Corporation 15議論を読む藤井がv13向けにバックアップ取得の進捗確認機能を提案したときのメール
  • 16.
    © 2024 NTTDATA Group Corporation 16議論を読むコツ興味あるテーマ・機能・バグの議論から読むOSS-DBの資格取得などを通じてPostgreSQLの体系的な事前知識を得ておく英語の長い議論を手軽に読みたいときは、翻訳サイトなども活用例えば、Shaperで英文を整形して、DeepLで日本語翻訳https://dream-exp.net/shaper/https://www.deepl.com/translator用語・省略語などを理解するhttps://www.crunchydata.com/blog/understanding-the-postgres-hackers-mailing-list
  • 17.
    © 2024 NTTDATA Group Corporation 17議論で返信する宛先にMLを含める内容は公開されることに注意bottom-posting返信したい対象の文章を引用して、その下に返信を記載する行動規範に則った発言https://www.postgresql.org/about/policies/coc/ja/引用返信引用返信
  • 18.
    © 2024 NTTDATA Group Corporation 18議論で返信するコツ翻訳サイトなどを活用して、英文を作成例えば、日本語で文章を作成して、DeepLで英語翻訳、Grammarlyで添削https://www.deepl.com/translatorhttps://www.grammarly.com/文を無理に長くしない、箇条書きにする、例を出して説明する他の人のメールやPostgreSQLドキュメント、ソースコメントの英文を参考にする
  • 19.
    © 2024 NTTDATA Group Corporation 19レビューに参加しよう!
  • 20.
    © 2024 NTTDATA Group Corporation 20PostgreSQL開発のサイクル2024年度 2025年度6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11CF CF CF CF CFv18開発v17開発v19開発CF CFBeta / RCBeta / RCFeatureFreeze リリースリリースコミュニティサポートCFCommitFestパッチレビューに集中する期間
  • 21.
    © 2024 NTTDATA Group Corporation 21CommitFestCommitFest Appでレビュー対象のパッチを一覧管理https://commitfest.postgresql.org/
  • 22.
    © 2024 NTTDATA Group Corporation 22CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
  • 23.
    © 2024 NTTDATA Group Corporation 23レビューするパッチを決める興味ある機能や分野のパッチレビューしやすいパッチドキュメントやテストケースのパッチ独立した機能などで影響範囲の小さいパッチ(クライアントツール、contribモジュール、SQL関数など)サイズの小さいパッチ仕様やI/Fなどの内容がコミュニティで合意済のパッチメインのレビュアがいるパッチメインのレビュアによるレビュー内容を勉強しながら、サブのレビュアとして取り組む
  • 24.
    © 2024 NTTDATA Group Corporation 24レビュアとして登録するCommitFest App「Become reviewer」を押して、レビュアとして登録CF App 内の各パッチのページ
  • 25.
    © 2024 NTTDATA Group Corporation 25パッチを入手する~パッチをダウンロードCF App 内の各パッチのページ ML上でパッチについて議論しているメール
  • 26.
    © 2024 NTTDATA Group Corporation 26パッチをレビューする提案レビューパッチは適用できるか?ドキュメントやテストを含んでいるか?仕様レビューパッチは本当に必要か?仕様はコミュニティで合意されているか?機能テスト仕様通りに動作するか?クラッシュや想定外のエラーはないか?性能試験パッチにより性能劣化しないか?コーディング・レビューWindowsでも動作するか?コーディング規約に従っているか?アーキテクチャ・レビュー他機能と一貫性のあるアーキテクチャか?https://wiki.postgresql.org/wiki/Reviewing_a_Patch/jaレビューコメントとしてMLで返信する
  • 27.
    © 2024 NTTDATA Group Corporation 27パッチを適用、コンパイル、テストする① ソースの入手、コンパイルに必要なライブラリをインストールする$ sudo dnf install git gcc make bison flex readline readline-devel zlib-devel libicu-devel② TAPテスト(*)に必要なライブラリをインストールする$ sudo dnf install perl-CPAN$ sudo cpan -i IPC::Run Test::Simple Time::HiRes Test::Harness③ ドキュメントのコンパイルに必要なライブラリをインストールする$ sudo dnf install docbook-dtds docbook-style-xsl libxslt環境によって必要なライブラリやインストールのコマンドが異なることに注意!上記はRHEL8系環境での実行例(*) PostgreSQLのクライアントツールなどを対象とする追加テスト
  • 28.
    © 2024 NTTDATA Group Corporation 28パッチを適用、コンパイル、テストする④ PostgreSQLのgitレポジトリをクローンする$ git clone git://git.postgresql.org/git/postgresql.git⑤ パッチ適用先ブランチをチェックアウトする$ cd postgresql$ git checkout master⑥ パッチ用の新規ブランチを作成する$ git checkout -b xxx$ git branchmaster* xxx基本的に「開発中の最新メジャーバージョン」のmasterブランチがパッチ適用先手元環境だとクローンにかかった時間は約15分レビュー完了後などにパッチ適用を手軽にクリアできるように、パッチ用のブランチを作成するのがおススメ!
  • 29.
    © 2024 NTTDATA Group Corporation 29パッチを適用、コンパイル、テストする⑦ パッチを適用する$ patch -p1 -d. < $HOME/xxx.patch⑧ PostgreSQLをコンパイルする$ ./configure --enable-debug --enable-cassert --enable-tap-tests --prefix=$HOME/pgsql/xxx CFLAGS=-O0$ make -j 4$ make installデバッグしやすいようにオプションを指定する--enable-debug--enable-cassert--enable-tap-testsCFLAGS=-O0インストール先のディレクトリを指定する--prefix時間短縮のため複数多重でコンパイルするように-jオプションを指定するのがおススメ!パッチ適用やコンパイルで発生したエラー・警告は、レビューコメントとしてMLで報告する
  • 30.
    © 2024 NTTDATA Group Corporation 30パッチを適用、コンパイル、テストする⑨ contribモジュールをコンパイルする$ cd contrib$ make$ make install$ cd ..⑩ ドキュメントをコンパイルする$ make html⑪ リグレッションテストを実行する$ make -j 4 check-worldコンパイルやテストで発生したエラー・警告は、レビューコメントとしてMLで報告するCF登録のパッチは自動的にテストが走り、その結果をPatch Testerから確認できるhttp://cfbot.cputube.org/時間短縮のため複数多重でコンパイルするように-jオプションを指定するのがおススメ!
  • 31.
    © 2024 NTTDATA Group Corporation 31パッチを適用、コンパイル、テストする⑫ PostgreSQLを起動する$ cd $HOME/pgsql/xxx$ bin/initdb -D data --locale=C --encoding=UTF8$ bin/pg_ctl -D data start⑬ パッチの新機能をテストする$ bin/psql...⑭ PostgreSQLを停止する$ bin/pg_ctl -D data stop思いつく限りの新機能の使い方を試してみる!例えば、入力のバリエーション (境界値、大規模データ、不正値など)大量実行、複数多重同時実行物理/論理レプリケーション環境での動作起動・停止やテストで発生したエラー・想定外動作は、レビューコメントとしてMLで報告する
  • 32.
    © 2024 NTTDATA Group Corporation 32パッチをコーディング・レビューするコーディング規約やエラーメッセージのスタイルガイドに従っているか?https://www.postgresql.jp/document/current/html/source.htmlコメントやドキュメントに内容誤り(古い内容のまま)やTypoはないか?関数名、変数名、マクロ名、ファイル名などの命名が分かりやすく適切か?初期化忘れ、クローズ・解放忘れ、戻り値のチェック忘れなどのバグはないか?セグメンテーションフォルトやアサーションエラーを引き起こすコードパスはないか?無駄、非効率、(必要以上に)複雑すぎる、理解しにくいコードはないか?例えば、以下の観点でコード上気になる点をレビューコメントとしてMLで報告する
  • 33.
    © 2024 NTTDATA Group Corporation 33レビューコメントを返信するレビューコメントの返信メールの例 (抜粋)変数の初期値の誤りや初期化忘れを指摘カラム名の命名が適切でないことの指摘
  • 34.
    © 2024 NTTDATA Group Corporation 34パッチのステータスを変更する「Change Status」を押して、パッチのステータスを変更
  • 35.
    © 2024 NTTDATA Group Corporation 35CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
  • 36.
    © 2024 NTTDATA Group Corporation 36パッチのコミットを確認するコミットログの例レビューしたパッチがコミットされると、レビュアとして名前がコミットログに記録される!
  • 37.
    © 2024 NTTDATA Group Corporation 37パッチを作成・投稿しよう!
  • 38.
    © 2024 NTTDATA Group Corporation 38パッチネタを見つける取り組み成果やその関連技術をPostgreSQLに組み込む成果が大きすぎる場合は、細かい技術要素に分けて、少しずつパッチ化できないか考えるコミュニティでの議論やパッチレビューでパッチネタを見つける議論中に新機能のアイデアが出ることや、レビュー中にPostgreSQLの不具合が見つかることが多いPostgreSQLの最新バージョンリリース前後に、そのバージョンの新機能を試すリリース前後は、新機能に不具合が含まれていることが多い
  • 39.
    © 2024 NTTDATA Group Corporation 39PostgreSQL開発のフロー新機能の提案やバグの報告を行う新機能の必要性やユーザI/F、アーキテクチャ、実現方法、バグ原因、修正方法などを議論する議論結果を踏まえて、新機能やバグ修正をコーディングして、パッチを作成・投稿するパッチをレビューして、不備を改修するコミッタがパッチをPostgreSQL本体に取り込む提案・バグ報告議論パッチ作成レビューコミット繰り返しパッチネタについてまずはコミュニティで議論して、その結果にもとづいてパッチを作成するのが基本パッチを作成してみないと提案・議論しにくい場合は、パッチを先に作成することも
  • 40.
    © 2024 NTTDATA Group Corporation 40パッチを作成する① masterブランチでソースを最新化して、パッチ用のブランチを作成する。$ git checkout master$ git pull$ git checkout -b new-func② ソースを改修して、その改修内容をコミットする。$ emacs ...$ git commit -a -m "Add new func ..."③ masterブランチからパッチ用ブランチへのソース差分をパッチとして作成する。$ git format-patch master$ ls *.patch0001-Add-new-func.patch
  • 41.
    © 2024 NTTDATA Group Corporation 41パッチレビューの観点をクリアできているか提案レビューパッチは適用できるか?ドキュメントやテストを含んでいるか?仕様レビューパッチは本当に必要か?仕様はコミュニティで合意されているか?機能テスト仕様通りに動作するか?クラッシュや想定外のエラーはないか?性能試験パッチにより性能劣化しないか?コーディング・レビューWindowsでも動作するか?コーディング規約に従っているか?アーキテクチャ・レビュー他機能と一貫性のあるアーキテクチャか?https://wiki.postgresql.org/wiki/Reviewing_a_Patch/ja
  • 42.
    © 2024 NTTDATA Group Corporation 42パッチレビューの観点をクリアできているかコーディング規約やエラーメッセージのスタイルガイドに従っているか?https://www.postgresql.jp/document/current/html/source.htmlコメントやドキュメントに内容誤り(古い内容のまま)やTypoはないか?関数名、変数名、マクロ名、ファイル名などの命名が分かりやすく適切か?初期化忘れ、クローズ・解放忘れ、戻り値のチェック忘れなどのバグはないか?セグメンテーションフォルトやアサーションエラーを引き起こすコードパスはないか?無駄、非効率、(必要以上に)複雑すぎる、理解しにくいコードはないか?
  • 43.
    © 2024 NTTDATA Group Corporation 43PostgreSQL開発のサイクル2024年度 2025年度6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11CF CF CF CF CFv18開発v17開発v19開発CF CFBeta / RCBeta / RCFeatureFreeze リリースリリースコミュニティサポートCFCommitFestパッチレビューに集中する期間
  • 44.
    © 2024 NTTDATA Group Corporation 44CommitFestのワークフローNeeds reviewレビュー待ちWaiting on Author開発者の対応待ちReady forCommitterコミッタの判断待ちCommittedコミット成功!Moved to next CF次回CFでレビュー継続Returned withFeedback今回CFで十分にレビュー済Rejected提案却下Withdrawn提案撤回パッチ修正 レビューパッチ提案レビュー完了差し戻しコミットパッチレビュー中 パッチクローズ提案撤回提案却下レビュー十分CF終了パッチ作者 レビュア コミッタ
  • 45.
    © 2024 NTTDATA Group Corporation 45パッチのコミットを確認するコミットログの例作成したパッチがコミットされると、作者として名前がコミットログに記録される!リリースノートの例ユーザが知るべき機能・改変の場合は、リリースノートにも記録される!
  • 46.
    © 2024 NTTDATA Group Corporation 46さいごに
  • 47.
    © 2024 NTTDATA Group Corporation 47参加すると楽しい!PostgreSQLをより深く理解できる・使いこなせるようになる自分の提案に世界中の技術者から反応がある・議論できる・一緒に開発できる・見識も人脈も広がる自分の成果として名前が残り、セルフブランディングになる自分のコードが世界中で使われる・感謝されるコーディングスキルが向上するコミュニティに参加するモチベーション
  • 48.
    © 2024 NTTDATA Group Corporation 48困ったときは日本のコミュニティで相談も例えば、ほぼ月1ペースで開催のアンカンファレンスでバグのLTをするなど
  • 49.

[8]ページ先頭

©2009-2025 Movatter.jp