diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 835e3b2e..7fe27c52 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -27,10 +27,14 @@ jobs: call-windows: uses: ./.github/workflows/windows.yml + with: + publish: true call-windows-arm: uses: ./.github/workflows/windows-arm.yml + with: + publish: true # ------------------------------------------------------------------------------------- diff --git a/.github/workflows/windows-arm.yml b/.github/workflows/windows-arm.yml index 6737c5bd..863f7bef 100644 --- a/.github/workflows/windows-arm.yml +++ b/.github/workflows/windows-arm.yml @@ -7,7 +7,15 @@ on: branches: - main - maintenance/** + workflow_dispatch: null + schedule: + - cron: '0 0 * * 0' workflow_call: + inputs: + publish: + type: boolean + default: false + required: false env: @@ -29,6 +37,10 @@ jobs: env: INTERFACE64: ${{ matrix.INTERFACE64 }} + # A scheduled or manually triggered run builds against the latest + # OpenBLAS HEAD instead of openblas_commit.txt + # A run called from publish.yml builds the pinned commit. + NIGHTLY: ${{ inputs.publish == false && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }} steps: diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 61cc83b5..62eeecd3 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -8,7 +8,14 @@ on: - main - maintenance/** workflow_dispatch: null + schedule: + - cron: '0 0 * * 0' workflow_call: + inputs: + publish: + type: boolean + default: false + required: false env: OPENBLAS_ROOT: "c:\\opt" @@ -30,6 +37,12 @@ jobs: fail-fast: false runs-on: ${{ matrix.os }} + env: + # A scheduled or manually triggered run builds against the latest + # OpenBLAS HEAD instead of openblas_commit.txt + # A run called from publish.yml builds the pinned commit. + NIGHTLY: ${{ inputs.publish == false && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }} + timeout-minutes: 90 steps: - uses: actions/checkout@v6.0.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index 39d527e6..4131c26d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## OpenBLAS v0.3.34 (v0.3.34) +### 0.3.34.481.1 (2026-10-29) + +- Add a weekly scheduled run to both Windows workflows against OpenBLAS HEAD. + ### 0.3.34.481.0 (2026-10-20) - update to latest develop HEAD, fix `NO_LIBGFORTRAN` patch diff --git a/pyproject.toml b/pyproject.toml index cbf16624..1a9d4830 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta" [project] name = "scipy-openblas64" # 0.3.34-481-g5137bb62 -version = "0.3.34.481.0" +version = "0.3.34.481.1" requires-python = ">=3.7" description = "Provides OpenBLAS for python packaging" readme = "README.md" diff --git a/tools/build_steps_win_arm64.bat b/tools/build_steps_win_arm64.bat index 02b4488d..94b1c0f3 100755 --- a/tools/build_steps_win_arm64.bat +++ b/tools/build_steps_win_arm64.bat @@ -62,7 +62,14 @@ set /p OPENBLAS_COMMIT=NUL if errorlevel 1 ( echo OpenBLAS commit does not contain WoA build fixes. @@ -82,6 +89,12 @@ REM Patch VERSION REM version=$(grep "^version =" ../pyproject.toml | sed 's/version = "//;s/"//') REM sed -e "s/^VERSION = .*/VERSION = ${version}/" -i.bak Makefile.rule +if "%NIGHTLY%"=="true" ( + REM v0.3.24-30-g138ed79f -> 0.3.24.30.0 in pyproject.toml + powershell -Command "$v = ((git describe --tags --abbrev=8) -replace '^v(.*)-g.*', '$1') -replace '-', '.'; (Get-Content ..\pyproject.toml) -replace '^version = .*', ('version = \"' + $v + '.0\"') | Set-Content ..\pyproject.toml" + if errorlevel 1 exit /b 1 +) + for /f "tokens=3 delims= " %%v in ('findstr /b "version = " ..\pyproject.toml') do set version=%%v set version=%version:"=% REM cwd is already OpenBLAS here, so the source is Makefile.rule, not diff --git a/tools/build_steps_windows.sh b/tools/build_steps_windows.sh index 3a792989..0674e3c8 100644 --- a/tools/build_steps_windows.sh +++ b/tools/build_steps_windows.sh @@ -49,7 +49,12 @@ git submodule update --init --recursive # Get / clean code git fetch origin -git checkout $(cat ../openblas_commit.txt) +if [ "$NIGHTLY" == "true" ]; then + # Build the latest HEAD of develop + git checkout -B develop origin/develop +else + git checkout $(cat ../openblas_commit.txt) +fi git clean -fxd git reset --hard rm -rf $openblas_root/$build_bits @@ -100,7 +105,13 @@ for p in ../patches-common/*.patch ../patches-windows/*.patch; do done # Patch VERSION -version=$(grep "^version =" ../pyproject.toml | sed 's/version = "//;s/"//') +if [ "$NIGHTLY" == "true" ]; then + # v0.3.24-30-g138ed79f -> 0.3.24.30.0 in pyproject.toml + version=$(echo $OPENBLAS_VERSION | sed -e "s/^v\(.*\)-g.*/\1/" | sed -e "s/-/./g").0 + sed -e "s/^version = .*/version = \"${version}\"/" -i.bak ../pyproject.toml +else + version=$(grep "^version =" ../pyproject.toml | sed 's/version = "//;s/"//') +fi sed -e "s/^VERSION = .*/VERSION = ${version}/" -i.bak Makefile.rule # Build OpenBLAS