前回、ChatGPTに質問してコードを生成してもらいました!
さらに修正依頼をかけたあとの対応が神対応でもう虜になった、元うなぎ屋です!
後編はChatGPTで生成したコードでredashにプルリクを出して、マージしてもらったよ!
の本題を記載していきます
長くなっちゃうかもしれないので、そのときはChatGPTに要約してもらってください!(2回目)
先にこんな事書いてます!的なものを置いておきます。
- 私はほとんどコードを書けない(短いコードなら読んで意味を理解できる)
- プルリクをした一番のモチベーションは、アップデート時にコンフリクトしたくない!運用者目線だった
- OSSにプルリクエストを出してからマージされるまでの過程がとっても勉強になった
もくじ
本家にプルリクエスト出してみた
カスタムなコード入れているので、コンフリクトするのは目に見えていた
前編で、生成されたコードで動いたはいいものの・・・
このままだとredashをアップデートする際にデグレしてしまって、困りますね・・・
DockerなのでDockerfile内でCopyすればいいけど・・・
Dockerで運用しているので、
Dockerfileでこのファイルを上書きするコマンドで、もちろん対応はできますが。
それをやっていると、アップデートによる新機能などに追随は難しそうですね(再度修正の必要が出てくる)
ここ2年以上RedashのDockerイメージは更新されていなかった気もしますがね~
自分で作成した、別のquery_runnerとして追加すればいいのですが、
さらにコーディングのハードルが上がりますね・・・
これってOSSだし、プルリクエスト出してみるか!?(英語めんどいけど)
いっそプルリクをダメ元で出してみる!?(英語めんどいけど)
って思ってプルリクエストを出すことにした。
本家RedashのGitHubリポジトリにプルリクエスト出してみた
Do not makedsn for query_runner/oracle.py by snickerjp · Pull Request #6332 · getredash/redash
プルリクエストを作成して出してみました!
テンプレートの英語めんどい(頑張る)
- プルリクエストテンプレートがあったのはいいけど、どう編集したものか?
- まず、変更したいことの理由はわかりやすく!短く!
- きっとコードで意味がわからない可能性があるので、スクリーンショットを載せよう!
最初にプルリクエストで出したスクリーンショット
ツッコミ来た!(わかる!俺もこれがベストではないと思うけど。。。)
結構すぐに返事があって、なんか難色を示している?
機械翻訳してみたスクリーンショット↓
うんそれはわかるよ。
私もやり方はベスト!とは思ってはいないけど。
cx_Oracleって、makedsnするか直接接続文字列書くのどちらかしかない!
そして、makedsnで作れる接続文字列は一般的なものだけ~
後継のpython-oracledbに変えたいなー!って欲もあったのですが、
Python3からの対応なので、心配だしこれまたコーディングのハードルも上がりそう・・・(普通はOKだと思うのですが)
そして別の人の助け舟もあったけど、最後の「そして一人も使いませんでした」は不気味じゃない?
おそらく単語の順番が違うんだよね。きっと。。。
使わないと意味ないよね!?ってことだよね?笑
そのあたりは「ラベルで説明をつけて、案内していくよ~」とかそんなニュアンスで返しました!
自然な英語の言い回しは、ネイティブにお任せ
今度はラベルに書いた言い回しが、不自然な文になっているみたい!
ここは、詳しい人の言うこと聞いておこう!(だってこっちは機械翻訳で書いたんだもん)
ラベルの見た目に指摘
ラベルの見た目にも指摘されたけど、修正案提案されたから受け入れ
CIに引っかかる。めんどいけど解決のヒントを教えてもらえる
「CIでエラーになるから、ここ参考に直してみてね!」って優しさかっ!って思った
ちと時間かかりそうだけど、DockerでPython環境を作ってあとはWikiに書かれている通りにやって・・・
ん?なんかblackってコマンドがよくわからんから、ネット検索してとりあえず解決!
マージされてた!歓喜
なんとかCIによるチェック通ったけど、さっきOKだったCIがNGになる(おそらくCIインフラ側の問題らしい)
また後でやってみるよーって書いてあったから放置して翌朝見たら、マージされてた!歓喜✨
いろいろ顛末がありましたが、無事にマージされました!
これで、Autonomous Databaseの接続文字列を記載して使えるよー!
まとめ
- コードが書けなくてもChatGPTを使って生成したコードで、やりたいことを実現できた!
- プルリクエスト出して、いろんなやり取りが英語だったけど新鮮で楽しかった!(受け入れてくれる文化だった)
- CIは初めて知ったものが多くて、業務でも使えそうかも!って思ったのも収穫でした
- 自分が出したプルリクエストがマージされて、Redashって結構著名なOSSに貢献できたのは嬉しい
インサイトに自分のアイコンがあるとか、嬉しいじゃないですか!?
今後またChatGPTと相談しながら * python-oracledbに対応 * 別アプローチ とかを考えていきたいと思います!