diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 687aa87bf8..506b5d09e5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,7 @@ jobs: - name: Generate dist packages run: | curl -LsSf https://astral.sh/uv/install.sh | sh - ./ci-scripts/pypi-genreadme.py README.md + ./ci-scripts/pypi_genreadme.py README.md uv build - name: Publish ReFrame to PyPI uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/README.md b/README.md index b56629d521..ece955e22b 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,10 @@ Here is a list of the available extras during installation: > pip uninstall -y polars > ``` +> [!WARNING] +> `uv` versions older than 0.11.33 have a [bug](https://github.com/astral-sh/uv/pull/20671) that mishandles marker-based default dependencies like `polars`, so a plain `uv tool install reframe-hpc` or `uv pip install reframe-hpc` (no extras at all) would silently skip `polars`, disabling the results storage feature without warning. +> Make sure you are on `uv` 0.11.33 or later (`uv self update`). + ## Running from source If you want to run the latest ReFrame directly from the repo, you can simply clone the repo and `uv run` ReFrame: diff --git a/ci-scripts/deploy.sh b/ci-scripts/make_release.sh similarity index 62% rename from ci-scripts/deploy.sh rename to ci-scripts/make_release.sh index b516e96a20..fb9a6ce744 100755 --- a/ci-scripts/deploy.sh +++ b/ci-scripts/make_release.sh @@ -6,13 +6,13 @@ usage() { echo "Usage: $0 VERSION" echo " Environment:" - echo " - GH_DEPLOY_CREDENTIALS=:" + echo " - GITHUB_CREDENTIALS=:" } _onerror() { exitcode=$? - echo "$0: ReFrame deployment failed!" + echo "$0: ReFrame release failed!" echo "$0: command \`$BASH_COMMAND' failed (exit code: $exitcode)" cd $oldpwd exit $exitcode @@ -27,33 +27,31 @@ if [ -z $version ]; then exit 1 fi -py_minor_version=$(python3 -c 'import sys; print(sys.version_info.minor)') -if [ $py_minor_version -lt 5 ]; then - echo "$0: deployment script requires Python>=3.5" >&2 +if [ ! uv --version >/dev/null 2>&1 ]; then + echo "$0: uv is not installed" >&2 exit 1 fi -if [ -z "$GH_DEPLOY_CREDENTIALS" ]; then +if [ -z "$GITHUB_CREDENTIALS" ]; then _gh_creds_prefix="" else - _gh_creds_prefix="${GH_DEPLOY_CREDENTIALS}@" + _gh_creds_prefix="${GITHUB_CREDENTIALS}@" fi tmpdir=$(mktemp -d) -echo "Deploying ReFrame version $version ..." +echo "Releasing ReFrame version $version ..." echo "Working directory: $tmpdir ..." cd $tmpdir git clone --branch master https://${_gh_creds_prefix}github.com/reframe-hpc/reframe.git cd reframe -./bootstrap.sh -found_version=$(./bin/reframe -V | sed -e 's/\(.*\)\+.*/\1/g') +found_version=$(uv run reframe -V | sed -e 's/\(.*\)\+.*/\1/g') if [ $found_version != $version ]; then echo "$0: version mismatch: found $found_version, but required $version" >&2 exit 1 fi -./test_reframe.py +uv run ./test_reframe.py git tag -a v$version -m "ReFrame $version" git push origin --tags diff --git a/ci-scripts/pypi-genreadme.py b/ci-scripts/pypi_genreadme.py similarity index 100% rename from ci-scripts/pypi-genreadme.py rename to ci-scripts/pypi_genreadme.py