Open4
uvでtool.rye.scriptsの代わりが欲しい
どういうこと?
話の前提
- ドキュメントをSphinxで書いてます。
- 単純なドキュメント執筆だけのときは普通にエディタで黙々と書いてるだけですみます。
- ただ、ブラウザ上の表示をなるべく早いサイクルで確認したい時があって、
sphinx-autobuild
を使ってます。
Ryeのときはどうしてたか
pyproject.toml
[tool.rye.scripts]
docdev = "sphinx-autobuild (引数略)"
として、rye run docdev
ってやってました。
uvだと...?
要は「uv run ~~
で余計なスクリプトなどを作らずにPythonライブラリのエントリーポイントを呼び出したい」ということ。なおかつ、なるべくOS依存しない方法で。
で、今時点でこれを実現できる方法を見つけられていないのが現状。
今どうしてるか
script/dev-doc
#!/bin/sh
sphinx-autobuild -b dirhtml docs docs/_build/dirhtml $@
こんな感じのシェルを用意して、uv run script/dev-doc
を実行してる。
検討フェーズ
makeを使う
ビルドチェーンのたぐいは、全部Pythonの領域外においてしまう作戦。
- 利点:大体のマシンにあるので楽
- 課題:個人的にこれだけTabインデントなのが好きじゃない
- 課題:なんか目的外利用感がある
- 課題:パラレルな処理が出来ないかも?
- 課題:Python外なので、全コマンドに
uv run
が必要っぽい
taskipyを使う
- 利点:
pyoroject.toml
で完結できそう- 多分
uv run task ~~~
でuv配下のvenvで実行できる見込み
- 多分
- 課題:postinstallに向かなそう(
uv sync
直後ぐらいに、まとめてやりたいことがある)
Taskfile
- 利点:設定がYAML管理
- 利点:パラレル処理が出来た気がする
- 課題:新規インストールが必要(ただし、binary配布されているはず)
今は、go-taskのトライアルにシフトしていて、Sphinx拡張系のリポジトリを中心にTaskfile.ymlを整備している最中。