pypi.orgで色々公開しているとAPIトークンがたくさん出来ますよね。いや、全体をスコープにすればそんなことにはならない訳ですが、普通はトークンを分けると思うんですよ。
そうすると、
cd agefreighter
rm -rf dist
uv sync
uv build
uv publish --token=$TOKEN_FOR_AGEFREIGHTERみたいに、プロジェクト毎に--tokenを切り替えないとならないのが面倒だな、と。
んで、
brew install direnvして、例えば、'agefreighter/.envrc'を作るわけです。
cat .envrc
export UV_PUBLISH_TOKEN='pypi-XXXXXXXX'
export BREW_FORMULA='Formula/agefreighter.rb'こうすれば、ワンライナーでイケるじゃん!と。
rm -rf dist; uv sync; uv build; uv publishついでに言うと、コードを弄った後は、どのディレクトリでも以下の3つを編集すれば良いわけです。brewのformulaファイルは環境変数にしてあるから。
open README.md pyproject.toml $BREW_FORMULAそうしたらですよ、pypi.orgからメールが無事飛んできました。
[PyPI] Your API credentials from PyPI were found on a public webpage
あ……。pyproject.tomlを全部修正ですわ。.envrcをdistファイルに含めないようにしないとダメじゃん。
[tool.hatch.build.targets.sdist]
include = ["src/agefreighter/", "docs/"]
exclude = ["__pycache__", "*.rb", "uv.lock", "dist/.DS_Store", ".envrc"]気を付けましょうね(APIトークンを全て再発行、.envrc/pyproject.tomlを全て修正、全て修正リリースするハメになった)。