-
Notifications
You must be signed in to change notification settings - Fork 8.3k
feat: prevent image overwrite if it already exists #11305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
prevent release workflow from overwriting images if they already exist. add a flag to allow overwrite if we absolutely need it
WalkthroughThe pull request introduces safeguards against accidental Docker image overwrites by adding a new workflow input and validation job to the release workflow. It also updates the secrets baseline metadata and restructures release process documentation with improved formatting and a branch model table. Changes
Sequence Diagram(s)sequenceDiagram
participant GHA as GitHub Actions
participant FS as File System
participant PyPI as PyPI API
participant DHreg as Docker Hub Registry
participant GHreg as GHCR Registry
GHA->>FS: Checkout code at release_tag
GHA->>FS: Read pyproject.toml
FS-->>GHA: Extract version
GHA->>GHA: Validate tag matches version
GHA->>PyPI: Check if version exists
PyPI-->>GHA: Version status
alt Version exists on PyPI
GHA->>GHA: Fail - prevent overwrite
end
GHA->>DHreg: Login to Docker Hub
GHA->>GHreg: Login to GHCR
GHA->>GHreg: Check if image tag exists
GHreg-->>GHA: Image existence status
alt Image exists on GHCR
GHA->>GHA: Fail - prevent overwrite
end
GHA->>DHreg: Check if image tag exists
DHreg-->>GHA: Image existence status
alt Image exists on Docker Hub
GHA->>GHA: Fail - prevent overwrite
end
GHA->>GHA: All checks passed - proceed
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 5 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #11305 +/- ##
==========================================
- Coverage 34.06% 33.92% -0.14%
==========================================
Files 1415 1408 -7
Lines 67293 66774 -519
Branches 9932 9858 -74
==========================================
- Hits 22921 22654 -267
+ Misses 43175 42927 -248
+ Partials 1197 1193 -4
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @.github/workflows/release.yml:
- Around line 143-147: The current check uses contains() with inputs.release_tag
and steps.version.outputs.version which allows partial matches (e.g., "1.7.10"
contains "1.7.1"); replace the contains-based condition with an exact comparison
between inputs.release_tag and steps.version.outputs.version (use the GitHub
Actions expression equality/inequality operator) so the step only fails when the
two values are not exactly equal; update the if expression that references
inputs.release_tag and steps.version.outputs.version accordingly and keep the
existing error message and exit behavior.
- Around line 149-154: Normalize the release tag by stripping a leading "v" from
inputs.release_tag and then perform an exact match against pip index versions
output to avoid partial matches; specifically, compute a VERSION from ${{
inputs.release_tag }} with any leading "v" removed, then replace the current
grep -q '${{ inputs.release_tag }}' check with a grep that matches the whole
line (e.g., using grep -x or grep -E "^$VERSION$") against the output of pip
index versions langflow so "v1.7.1" matches "1.7.1" and "1.7.1" does not falsely
match "1.7.10".
🧹 Nitpick comments (1)
.github/workflows/release.yml (1)
116-120: Docker registry checks run even when Docker builds are not requested.The
prevent-image-overwritejob checks ghcr.io and docker.io regardless of whether Docker builds are enabled. This could block a PyPI-only release if images happen to already exist from a previous release.Consider making the Docker registry checks conditional:
♻️ Suggested approach
prevent-image-overwrite: name: Prevent Image Overwrite runs-on: ubuntu-latest if: ${{ !inputs.overwrite_previous_image }} needs: [validate-tag, validate-dependencies] steps: # ... version checks ... + # Only check Docker registries if Docker builds are requested - name: Login to Docker Hub + if: ${{ inputs.build_docker_base || inputs.build_docker_main }} uses: docker/login-action@v3 # ... - name: Login to GitHub Container Registry + if: ${{ inputs.build_docker_base || inputs.build_docker_main }} uses: docker/login-action@v3 # ... - name: Check if image tag exists in ghcr.io id: check-ghcr + if: ${{ inputs.build_docker_base || inputs.build_docker_main }} # ...Apply similar conditions to all Docker registry steps.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/release.yml.secrets.baselineRELEASE.md
🧰 Additional context used
🪛 LanguageTool
RELEASE.md
[grammar] ~28-~28: Ensure spelling is correct
Context: ...ek. ### 2. Desktop QA Once OSS QA and bugfixing are complete, create a Desktop release ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~39-~39: Ensure spelling is correct
Context: ...t a week. ### 3. Release After QA and bugfixing are complete for both OSS and Desktop: ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (410)
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 12/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 12/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 29/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 44/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 14/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 38/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 35/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 40/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 39/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 48/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 28/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 13/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 32/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 21/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 27/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 2/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 7/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 18/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 10/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 11/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 17/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 22/50
- GitHub Check: CI / Run Frontend Tests / Playwright Tests - Shard 1/50
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 1
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 4
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.11 - Group 2
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 5
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.13 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.12 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 3
- GitHub Check: CI / Run Backend Tests / Unit Tests - Python 3.10 - Group 5
- GitHub Check: CI / Run Backend Tests / LFX Tests - Python 3.12
🔇 Additional comments (6)
.secrets.baseline (1)
166-166: LGTM!The secret baseline updates correctly reflect the line number shift (122 → 208) caused by the new
prevent-image-overwritejob in the release workflow, along with an updated generation timestamp.Also applies to: 1531-1531
.github/workflows/release.yml (3)
51-55: LGTM!The new
overwrite_previous_imageinput has a sensible safe default (false) that prevents accidental overwrites while allowing explicit override when needed.
162-167: Verify usage ofTEMP_GHCR_TOKENinstead ofGITHUB_TOKEN.The GHCR login uses
secrets.TEMP_GHCR_TOKENinstead of the standardsecrets.GITHUB_TOKEN. If this is temporary for testing, consider updating to useGITHUB_TOKENfor production, or document why a separate token is required.
197-208: LGTM!The CI job dependency correctly includes
prevent-image-overwrite. Whenoverwrite_previous_imageis true, the validation job is skipped and CI proceeds normally. When false, the validation must pass before CI runs.RELEASE.md (2)
45-50: LGTM! The Branch Model table is a valuable addition.The new table clearly documents the purpose and merge policy for each branch type, which improves clarity for release contributors.
102-103: Verify RC tag format consistency.The example changed from
vX.Y.Z-rc.Nto1.8.0-rc.1(no 'v' prefix). Ensure this matches the actual tagging convention used in the release workflow. Line 73 still showsgit tag vX.Y.Zwith the 'v' prefix for final releases.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
| - name: Check if release_tag matches a version in pyproject.toml | ||
| if: ${{ !contains(inputs.release_tag, steps.version.outputs.version) }} | ||
| run: | | ||
| echo "❌ release_tag '${{ inputs.release_tag }}' does not match pyproject.toml version '${{ steps.version.outputs.version }}'" | ||
| exit 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Version matching with contains() may cause false positives.
The contains() check can incorrectly pass when the release_tag partially matches the version. For example, if release_tag=1.7.10 and version=1.7.1, the check passes because "1.7.10" contains "1.7.1".
Consider using an exact match or stricter comparison:
🔧 Suggested fix for exact matching
- - name: Check if release_tag matches a version in pyproject.toml
- if: ${{ !contains(inputs.release_tag, steps.version.outputs.version) }}
- run: |
- echo "❌ release_tag '${{ inputs.release_tag }}' does not match pyproject.toml version '${{ steps.version.outputs.version }}'"
- exit 1
+ - name: Check if release_tag matches version in pyproject.toml
+ run: |
+ RELEASE_TAG="${{ inputs.release_tag }}"
+ VERSION="${{ steps.version.outputs.version }}"
+ # Strip leading 'v' if present for comparison
+ RELEASE_TAG_NORMALIZED="${RELEASE_TAG#v}"
+ if [ "$RELEASE_TAG_NORMALIZED" != "$VERSION" ]; then
+ echo "❌ release_tag '$RELEASE_TAG' does not match pyproject.toml version '$VERSION'"
+ exit 1
+ fi
+ echo "✅ Version match confirmed: $VERSION"🤖 Prompt for AI Agents
In @.github/workflows/release.yml around lines 143 - 147, The current check uses
contains() with inputs.release_tag and steps.version.outputs.version which
allows partial matches (e.g., "1.7.10" contains "1.7.1"); replace the
contains-based condition with an exact comparison between inputs.release_tag and
steps.version.outputs.version (use the GitHub Actions expression
equality/inequality operator) so the step only fails when the two values are not
exactly equal; update the if expression that references inputs.release_tag and
steps.version.outputs.version accordingly and keep the existing error message
and exit behavior.
| - name: Check if package version already exists on pypi | ||
| run: | | ||
| if pip index versions langflow | grep -q '${{ inputs.release_tag }}'; then | ||
| echo "❌ Package version '${{ inputs.release_tag }}' already exists in pypi." | ||
| exit 1 | ||
| fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PyPI version check may fail with 'v' prefix and has partial match risk.
Two issues with this check:
- If
release_tagincludes a 'v' prefix (e.g.,v1.7.1), butpip index versionsreturns bare versions (1.7.1), the grep won't match - Partial matching means
1.7.1would match1.7.10
🔧 Suggested fix
- name: Check if package version already exists on pypi
run: |
- if pip index versions langflow | grep -q '${{ inputs.release_tag }}'; then
- echo "❌ Package version '${{ inputs.release_tag }}' already exists in pypi."
+ # Strip 'v' prefix if present for PyPI lookup
+ VERSION="${{ inputs.release_tag }}"
+ VERSION="${VERSION#v}"
+ if pip index versions langflow 2>/dev/null | grep -qw "$VERSION"; then
+ echo "❌ Package version '$VERSION' already exists on PyPI."
exit 1
fi
+ echo "✅ Version $VERSION not found on PyPI"🤖 Prompt for AI Agents
In @.github/workflows/release.yml around lines 149 - 154, Normalize the release
tag by stripping a leading "v" from inputs.release_tag and then perform an exact
match against pip index versions output to avoid partial matches; specifically,
compute a VERSION from ${{ inputs.release_tag }} with any leading "v" removed,
then replace the current grep -q '${{ inputs.release_tag }}' check with a grep
that matches the whole line (e.g., using grep -x or grep -E "^$VERSION$")
against the output of pip index versions langflow so "v1.7.1" matches "1.7.1"
and "1.7.1" does not falsely match "1.7.10".
prevent release workflow from overwriting images if they already exist. add a flag to allow overwrite if we absolutely need it.
This GHA overwrote 1.7.1-amd64 and 1.7.1-arm64 with 1.7.2 accidently
gh actions used to test:
valid dry-run (should not prevent workflow)
miss matched release_tag and pyproject.toml version
pypi already exists
ghcr.io already exists
docker.io already exists
Summary by CodeRabbit
Release Notes
Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.