blob: 8662261d4cf4e7e113ba490493bbc81fe09fe45b [file] [edit]
#!/usr/bin/env bash
# Prepare for a release
#
# All additional options are passed to `rooster release`
set -eu
export UV_DEFAULT_INDEX='https://pypi.org/simple'
script_root="$(realpath "$(dirname "$0")")"
project_root="$(dirname "$script_root")"
echo "Updating metadata with rooster..."
cd "$project_root"
uv run --locked --python 3.12 --only-group release \
rooster release "$@"
# Bump internal crate versions
uv run --script "$project_root/scripts/bump-workspace-crate-versions.py"
echo "Updating crate READMEs..."
uv run --script "$project_root/scripts/generate-crate-readmes.py"
echo "Updating lockfiles..."
cargo update -p ruff
uv lock --no-locked
echo "Checking crates.io publish setup..."
crates_policies="$(mktemp -d)"
trap 'rm -rf "$crates_policies"' EXIT
git clone --depth=1 --quiet https://github.com/astral-sh/crates-policies.git "$crates_policies"
uv run --script "$crates_policies/check.py" "$project_root"