meta-data

頭で考えてて、ちょっと頭の容量オーバーなのでうだうだ考えてないで作れって話があるけどdump。数ヶ月優先順位が上がらないけど頭に引っかかってて、あといい感じの実装も思いつかないので放置してる。

だいたいこんなことがやりたい。元になるデータセットがあって、そこから言語別クライアントライブラリを作る。

こういうイメージ。
https://github.com/zengin-code/zengin-rb
https://github.com/woothee/woothee-ruby

あとmongodb/mongoidが各言語用のテストデータセットをyamlで書いたっていうのをrubykaigi2015で聞いたんだけど、ざっとリポジトリ見る限り見当たらない。
https://github.com/estolfo
https://github.com/mongodb

言語別ライブラリを作った時に、実装を確認するデータセットがほしい。
データセット側を更新するのはプルリクエストで、そのテストでは、各クライアントライブラリ側で、新しいデータセットでテストが通ること、がデータセット側のテストに入っている。
データセット側リリースしたら、言語別ライブラリ側も新しいバージョンリリースされてほしい。

この仕組を使ってやりたいこと。
https://github.com/packsaddle/ruby-env_branch

こんな感じで、各CIサービス串刺しで、欲しいデータを取る、というのを作ってるんだけど、これの元になるデータセットを作りたい。

たとえばbranch nameだったらこんな感じかなあ。取りたいメソッドから考えるとこんな。

各CIでのbranch nameのkeyがほしい
たとえばcircle ciでのbranch nameがほしい
circle ciの環境変数一覧が欲しい

yamlで作って、jsonに展開
camelCase にする
https://google.github.io/styleguide/jsoncstyleguide.xml

複数CIサービスには詳しいけど複数コードホスティングサービスに詳しくないからなあ。pull requestとmerge requestは同じように扱えるようにした方がいいんだろうか?みたいなの。

あと取りうる値もかけないものか。
falsyなときに空文字列なのか、文字列でfalseがはいってくるとかそういうのを記述するのがダルい。各CIサービスで、このキーをとる、というのは流石に書いてあることが多いけど、こういう値を取りうるみたいなのが無いケースがよく有る。
環境変数だから文字列しかとりえないんだけど。あと、条件によってその環境変数自体がない場合もある。
json schemaなんかなーこういうの。json-schema触ったことないのと、オーバースペックに感じなくもないけど。

Edited 2016-02-03 12:59
あと、メソッドの返り値がこうなる、ではなくて、このci サービスはこういう値を返しうる、みたいな表現できるのかな。

欲を言って、こういう仕組みを生成する仕組みを作りたい。

ぼんやり迷ってる。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中