You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by xu...@apache.org on 2026/09/22 07:59:47 UTC

(opendal) 01/01: ci: prepare weekly releases on Thursday UTC

This is an automated email from the ASF dual-hosted git repository.

Xuanwo pushed a commit to branch xuanwo/thursday-weekly-release
in repository https://gitbox.apache.org/repos/asf/opendal.git

commit 1a15b34b9d1caabec01b5f389206cc26eef8b521
Author: Xuanwo <gi...@xuanwo.io>
AuthorDate: Tue Sep 22 15:59:36 2026 +0800

    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 3edb4e38c4..237ccd7f0b 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/<version>-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 ce770bbb0e..bd4bec2973 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 a9b6f340f3..87bb6c5677 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.