From 1a15b34b9d1caabec01b5f389206cc26eef8b521 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Tue, 22 Sep 2026 15:59:36 +0800 Subject: [PATCH] ci: prepare weekly releases on Thursday UTC --- .agents/skills/opendal-release/references/rc.md | 3 ++- .github/workflows/weekly_release.yml | 6 +++--- website/community/release/weekly.md | 9 +++++++-- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.agents/skills/opendal-release/references/rc.md b/.agents/skills/opendal-release/references/rc.md index 3edb4e38c4d6..237ccd7f0b66 100644 --- a/.agents/skills/opendal-release/references/rc.md +++ b/.agents/skills/opendal-release/references/rc.md @@ -6,7 +6,8 @@ Repository paths and shell commands are relative to the repository root. Read `website/community/release/weekly.md` and the selected revision of `.github/workflows/weekly_release.yml` before operating this path. Scheduled -preparation uses the Friday cutoff; manual dispatch pins the selected commit. +preparation runs on Thursday at 00:00 UTC and uses that cutoff; manual dispatch +pins the selected commit. The workflow prepares package versions, pushes `releases/-rc.N` and its lightweight RC tag with the first unused `rc.N` number for its version, and calls `release-compose.yml` to build, sign and upload source archives. Signing accepts diff --git a/.github/workflows/weekly_release.yml b/.github/workflows/weekly_release.yml index ce770bbb0e6f..bd4bec29736a 100644 --- a/.github/workflows/weekly_release.yml +++ b/.github/workflows/weekly_release.yml @@ -21,7 +21,7 @@ on: push: branches: [main] schedule: - - cron: '7 0 * * 5' + - cron: '0 0 * * 4' workflow_dispatch: permissions: @@ -59,8 +59,8 @@ jobs: cutoff=$(python3 - <<'PYTHON' import datetime as d now = d.datetime.now(d.timezone.utc) - friday = (now - d.timedelta(days=(now.weekday() - 4) % 7)).replace(hour=0, minute=0, second=0, microsecond=0) - print(friday.strftime("%Y-%m-%dT%H:%M:%SZ")) + thursday = (now - d.timedelta(days=(now.weekday() - 3) % 7)).replace(hour=0, minute=0, second=0, microsecond=0) + print(thursday.strftime("%Y-%m-%dT%H:%M:%SZ")) PYTHON ) # Push run timestamps record arrival on main, unlike commit dates. diff --git a/website/community/release/weekly.md b/website/community/release/weekly.md index a9b6f340f379..87bb6c567735 100644 --- a/website/community/release/weekly.md +++ b/website/community/release/weekly.md @@ -5,8 +5,8 @@ sidebar_position: 4 # Weekly source releases -The weekly workflow prepares a release branch each Friday from the Friday -00:00 UTC main cutoff and directly calls the existing `release-compose.yml` to +The weekly workflow is scheduled each Thursday at 00:00 UTC. It prepares a release +branch from the Thursday 00:00 UTC main cutoff and calls `release-compose.yml` to build, sign and upload the candidate to ATR. Manual dispatch runs the same flow from the selected branch commit at the time of dispatch. Preparation creates no version PR and requires no manual merge. @@ -16,6 +16,11 @@ the candidate and start the vote with automatic resolution and publication enabled in ATR. Hourly synchronization then finishes publication and opens the version-sync PR after ATR records a passing result. +Starting preparation on Thursday leaves time for a Monday release. The 72-hour +vote period starts when the RM opens the vote, not when preparation starts. +Scheduled-run delays, a later vote start or insufficient votes can delay publication; +Monday is a target, not a forced publication deadline. + ## Preparation Scheduled runs select the latest recorded main push at or before the cutoff.