diff --git a/.github/workflows/release-weekly-comfyui.yaml b/.github/workflows/release-biweekly-comfyui.yaml
similarity index 85%
rename from .github/workflows/release-weekly-comfyui.yaml
rename to .github/workflows/release-biweekly-comfyui.yaml
index a46c550862..c0f57822bc 100644
--- a/.github/workflows/release-weekly-comfyui.yaml
+++ b/.github/workflows/release-biweekly-comfyui.yaml
@@ -1,12 +1,12 @@
-# Automated weekly workflow to bump ComfyUI frontend RC releases
-name: "Release: Weekly ComfyUI"
+# Automated bi-weekly workflow to bump ComfyUI frontend RC releases
+name: "Release: Bi-weekly ComfyUI"
on:
# Schedule for Monday at 12:00 PM PST (20:00 UTC)
schedule:
- cron: '0 20 * * 1'
- # Allow manual triggering
+ # Allow manual triggering (bypasses bi-weekly check)
workflow_dispatch:
inputs:
comfyui_fork:
@@ -16,7 +16,39 @@ on:
type: string
jobs:
+ check-release-week:
+ runs-on: ubuntu-latest
+ outputs:
+ is_release_week: ${{ steps.check.outputs.is_release_week }}
+ steps:
+ - name: Check if release week
+ id: check
+ run: |
+ # Anchor date: first bi-weekly release Monday
+ ANCHOR="2025-12-22"
+
+ ANCHOR_EPOCH=$(date -d "$ANCHOR" +%s)
+ NOW_EPOCH=$(date +%s)
+ WEEKS_SINCE=$(( (NOW_EPOCH - ANCHOR_EPOCH) / 604800 ))
+
+ if [ $((WEEKS_SINCE % 2)) -eq 0 ]; then
+ echo "Release week (week $WEEKS_SINCE since anchor $ANCHOR)"
+ echo "is_release_week=true" >> $GITHUB_OUTPUT
+ else
+ echo "Not a release week (week $WEEKS_SINCE since anchor $ANCHOR)"
+ echo "is_release_week=false" >> $GITHUB_OUTPUT
+ fi
+
+ - name: Summary
+ run: |
+ echo "## Bi-weekly Check" >> $GITHUB_STEP_SUMMARY
+ echo "" >> $GITHUB_STEP_SUMMARY
+ echo "- Is release week: ${{ steps.check.outputs.is_release_week }}" >> $GITHUB_STEP_SUMMARY
+ echo "- Manual trigger: ${{ github.event_name == 'workflow_dispatch' }}" >> $GITHUB_STEP_SUMMARY
+
resolve-version:
+ needs: check-release-week
+ if: needs.check-release-week.outputs.is_release_week == 'true' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
outputs:
current_version: ${{ steps.resolve.outputs.current_version }}
@@ -131,8 +163,8 @@ jobs:
echo "- [View workflow runs](https://github.com/Comfy-Org/ComfyUI_frontend/actions/workflows/release-version-bump.yaml)" >> $GITHUB_STEP_SUMMARY
create-comfyui-pr:
- needs: [resolve-version, trigger-release-if-needed]
- if: always() && needs.resolve-version.result == 'success'
+ needs: [check-release-week, resolve-version, trigger-release-if-needed]
+ if: always() && needs.resolve-version.result == 'success' && (needs.check-release-week.outputs.is_release_week == 'true' || github.event_name == 'workflow_dispatch')
runs-on: ubuntu-latest
steps:
@@ -231,7 +263,7 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- # Create/update branch (reuse same branch name each week)
+ # Create/update branch (reuse same branch name each release cycle)
BRANCH="automation/comfyui-frontend-bump"
git checkout -B "$BRANCH"
git add requirements.txt
@@ -243,7 +275,7 @@ jobs:
exit 0
fi
- # Force push to fork (overwrites previous week's branch)
+ # Force push to fork (overwrites previous release cycle's branch)
# Note: This intentionally destroys branch history to maintain a single PR
# Any review comments or manual commits will need to be re-applied
if ! git push -f origin "$BRANCH"; then
diff --git a/README.md b/README.md
index f674a05edd..e8af480f2b 100644
--- a/README.md
+++ b/README.md
@@ -33,11 +33,11 @@
The project follows a structured release process for each minor version, consisting of three distinct phases:
-1. **Development Phase** - 1 week
+1. **Development Phase** - 2 weeks
- Active development of new features
- Code changes merged to the development branch
-2. **Feature Freeze** - 1 week
+2. **Feature Freeze** - 2 weeks
- No new features accepted
- Only bug fixes are cherry-picked to the release branch
- Testing and stabilization of the codebase
@@ -56,16 +56,16 @@ To use the latest nightly release, add the following command line argument to yo
```
## Overlapping Release Cycles
-The development of successive minor versions overlaps. For example, while version 1.1 is in feature freeze, development for version 1.2 begins simultaneously.
+The development of successive minor versions overlaps. For example, while version 1.1 is in feature freeze, development for version 1.2 begins simultaneously. Each feature has approximately 4 weeks from merge to ComfyUI stable release (2 weeks on main, 2 weeks frozen on RC).
### Example Release Cycle
| Week | Date Range | Version 1.1 | Version 1.2 | Version 1.3 | Patch Releases |
|------|------------|-------------|-------------|-------------|----------------|
-| 1 | Mar 1-7 | Development | - | - | - |
-| 2 | Mar 8-14 | Feature Freeze | Development | - | 1.1.0 through 1.1.6 (daily) |
-| 3 | Mar 15-21 | Released | Feature Freeze | Development | 1.1.7 through 1.1.13 (daily)
1.2.0 through 1.2.6 (daily) |
-| 4 | Mar 22-28 | - | Released | Feature Freeze | 1.2.7 through 1.2.13 (daily)
1.3.0 through 1.3.6 (daily) |
+| 1-2 | Mar 1-14 | Development | - | - | - |
+| 3-4 | Mar 15-28 | Feature Freeze | Development | - | 1.1.0 through 1.1.13 (daily) |
+| 5-6 | Mar 29-Apr 11 | Released | Feature Freeze | Development | 1.1.14+ (daily)
1.2.0 through 1.2.13 (daily) |
+| 7-8 | Apr 12-25 | - | Released | Feature Freeze | 1.2.14+ (daily)
1.3.0 through 1.3.13 (daily) |
## Release Summary