Open4

uvでtool.rye.scriptsの代わりが欲しい

Takei KazuyaTakei Kazuya

どういうこと?

話の前提

  • ドキュメントをSphinxで書いてます。
  • 単純なドキュメント執筆だけのときは普通にエディタで黙々と書いてるだけですみます。
  • ただ、ブラウザ上の表示をなるべく早いサイクルで確認したい時があって、sphinx-autobuildを使ってます。

Ryeのときはどうしてたか

pyproject.toml
[tool.rye.scripts]
docdev = "sphinx-autobuild (引数略)"

として、rye run docdevってやってました。

uvだと...?

要は「uv run ~~で余計なスクリプトなどを作らずにPythonライブラリのエントリーポイントを呼び出したい」ということ。なおかつ、なるべくOS依存しない方法で。

で、今時点でこれを実現できる方法を見つけられていないのが現状。

Takei KazuyaTakei Kazuya

今どうしてるか

script/dev-doc
#!/bin/sh

sphinx-autobuild -b dirhtml docs docs/_build/dirhtml $@

こんな感じのシェルを用意して、uv run script/dev-docを実行してる。

Takei KazuyaTakei Kazuya

検討フェーズ

makeを使う

ビルドチェーンのたぐいは、全部Pythonの領域外においてしまう作戦。

  • 利点:大体のマシンにあるので楽
  • 課題:個人的にこれだけTabインデントなのが好きじゃない
  • 課題:なんか目的外利用感がある
  • 課題:パラレルな処理が出来ないかも?
  • 課題:Python外なので、全コマンドにuv runが必要っぽい

taskipyを使う

https://github.com/taskipy/taskipy

  • 利点:pyoroject.tomlで完結できそう
    • 多分uv run task ~~~でuv配下のvenvで実行できる見込み
  • 課題:postinstallに向かなそう(uv sync直後ぐらいに、まとめてやりたいことがある)

Taskfile

https://taskfile.dev/

  • 利点:設定がYAML管理
  • 利点:パラレル処理が出来た気がする
  • 課題:新規インストールが必要(ただし、binary配布されているはず)
Takei KazuyaTakei Kazuya

今は、go-taskのトライアルにシフトしていて、Sphinx拡張系のリポジトリを中心にTaskfile.ymlを整備している最中。