Open3

MySQLへのコントリビューションの仕方メモ

まだマージもレビューもされてないですが、情報簡潔にまとまったサイトがなく、少し時間かかったので後世の誰かのためにメモ

MacOSでのみしか検証してません。

まずは開発環境つくる

1: まずclone

git clone https://github.com/mysql/mysql-server

2: 必要なライブラリをインストールする

  • Cmake
  • make
  • Cコンパイラ。C++もしくはC99。
  • Perl5.XXX

以上。内部ではboostライブラリを使用されてるが、boostはcmake時に自動インストールできるので割愛。

3: build用のディレクトリを切る

gitignoreされないので、親階層とかがいいと思う。

pwd # => hoge/mysql-server

cd ../
mkdir build
cd build

4: OS別開発環境構築

cmake ../mysql-server  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./

WITH_BOOSTでboostがインストールされてるdirを指定する。
なければ自動インストールしてくれる親切設計。
特にほかで使う予定がなければbuildディレクトリの中でいい。使う予定があるなら/usr/local/boost***みたいに本来のパス使う。

IDE用に出力したいなどではここで開発環境を指定する(-G Visual Studioなど)。自分はcliでよいので特に指定なし。

マシンによるが自分は10分くらいかかった。

5: buildする

make

これで終わり。
自分は2019年のIntel Macの高いスペックのものを使ってたが、1時間くらいかかった。

mysqlやmysqldなど、必要なbinが./bin/mysqlなどに入っているはずである。

掃除はmake clean、testはmake test

なんやかんやあって実装が終わりました。

1: Oracle Contributor Agreement を署名する

https://oca.opensource.oracle.com/

2: Github側でPR出す

前はcontributionだろうがbugfixだろうが https://bugs.mysql.com/ に投稿しないといけなかった。
今はgithubに投稿するといい感じにbugs.mysql.comに流れてくれる(っぽい。確定な条件は知らない)。github側のbotがAgreementのチェックも行ってくれるので、Githubに慣れてるならこっちでいい。

3: 待つ

マージされるといいですね

自分はpostgreではできる「現在トランザクションの中にいるかどうかをプロンプトに表示する機能」を追加しました。あるようでなかったんですね。

https://github.com/mysql/mysql-server/pull/353
ログインするとコメントできます