section 01 a website

Antikythera Frameworkそのものの開発環境作成

00:00, April 26 2022

これは何

先日(だいぶ前)Antikythera Frameworkcontributeをした。ACCESSを離れてから正式なルートでcontributeしたのが初めてだったが、(関係者に頼らない限りにおいて)開発環境構築の手順がそんなに自明でないのでメモとして記述する。需要が極めて限定的なのは知ってる(ほとんど私が必要になったときに思い出す用)。

ある程度まではドキュメント通り

Contributing to the antikythera code 以下 Developing に従えばとりあえずテストを動作させるまでの手順は書いてある。

Antikythera instanceの用意

ここが一番自明でない。これをしないとサーバーを立ち上げてブラウザからアクセスするという手順ができず、ローカルでWebフレームワークとして動作させるというWebフレームワークとして一番大事なことができない。

Pull Requestコメントにもこの手順を記述した。

おまけその1: 何を直したか

SameSite cookiesが明示的に指定されない場合 SameSite=Lax をデフォルトとする挙動がChrome 80、Edge 88以降導入されている(Firefoxはこの設定を手動で有効にする必要がある)。当時開発中の案件(→なので当時私は社外の人間だったが厳密には非関係者ではない)において SameSite=none を明示的に必要とする挙動があったがこの設定が当時のAntikythera FrameworkのSession storeでは行うことができなかった。このpull requestはSession storeのplugに対してSet-Cookie optionを渡すことができるようにするものである。

現在のところAntikythera FrameworkのサポートするcowlibのバージョンがサポートしているSet-Cookieの値に限られるため SameSite の値を変更できるようにはなっていないが、 Max-Age の値が明示的に設定できるようにはなった。

おまけその2: rant

実際このAntikythera instanceを用意する部分が全く自明でないせいでAntikythera Framework自体をオープンソースしていてもACCESS社外の人間が誰も使っていない・使えないという状況になっている気がする(→ヒント: 関係者は社内環境向けにカスタマイズされたAntikythera instanceを使っているためあまりその問題を意識せずに済んでいる)。gearの開発=Webサービスそのものの動作の開発についてはドキュメントがある程度整っているのだが、肝心のフレームワークそのものの動作についてundocumentedな部分が多い(事実instance administrators向け文書はTBDで長らく放置されている)のでは正直オープンソースにしている意味はそんなにないのではないか?

…いやまあオープンソースになっているおかげでproject-specificでない修正を世の中に向けて出すことができたという側面はあるのだが…。あとAnkythera instanceのセットアップについては私もそこまで詳しいわけではない のと政治的に尻込みする理由がある ので多分私のほうで何かするかっていうとしない/できない。