Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ body:
value: |
Thanks for taking the time to fill out this bug report!

If this bug worked in a previous version and broke in a newer one, it may be a regression. Please mention which version it last worked in — a maintainer will apply the `regression` label.

- type: textarea
id: description
attributes:
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/regression-stub.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Regression Entry Stub

on:
issues:
types: [labeled]

jobs:
post-stub-comment:
if: github.event.label.name == 'regression'
runs-on: ubuntu-latest
permissions:
issues: write

steps:
- uses: actions/checkout@v6

- name: Get current minor version
id: version
run: |
VERSION=$(grep -m1 '^version' pyproject.toml | sed 's/version = "//;s/".*//')
MINOR=$(echo "$VERSION" | cut -d. -f1,2)
echo "file=regressions/${MINOR}.x.yaml" >> $GITHUB_OUTPUT

- name: Post regression stub comment
uses: peter-evans/create-or-update-comment@v4
with:
issue-number: ${{ github.event.issue.number }}
body: |
This issue has been labeled as a regression. Please add an entry to `${{ steps.version.outputs.file }}` and open a PR:

```yaml
- id: GH-${{ github.event.issue.number }}
title: "${{ github.event.issue.title }}"
status: triage
area: TBD # flow_editor | components | mcp | api | lfx | auth | database | integrations | starter_projects
first_bad_version: TBD
last_known_good_version: TBD
workaround: none
```

See [regressions/README.md](../blob/main/regressions/README.md) for field descriptions and valid values.
11 changes: 9 additions & 2 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,22 @@ git push -u origin release-X.Y.Z # Push RC branch to remote
3. Review and approve as normal.
4. Merge into the RC branch after review.

### 3. Final Release
### 3. Review Regression Log

Before tagging, review `regressions/X.Y.x.yaml` to confirm no unresolved `blocking` entries exist.
If `blocking` entries exist, they should be signed off on.

See [regressions/README.md](./regressions/README.md) for the full schema and entry instructions.

### 4. Final Release

```sh
git checkout release-X.Y.Z && git pull # Ensure RC branch is up to date
git tag vX.Y.Z # Create final release tag
git push origin vX.Y.Z # Push tag to remote
```

### 4. Merge RC Back into Main
### 5. Merge RC Back into Main

```sh
git checkout main
Expand Down
17 changes: 17 additions & 0 deletions regressions/1.10.x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
schema_version: 1
release: 1.10.x

entries: []

# To add an entry, copy the template below and fill in the fields.
# For more information, see regressions/README.md.
#
# {
# "id": "GH-12345",
# "title": "Short plain-language description",
# "status": "triage",
# "area": "flow_editor",
# "first_bad_version": "1.10.0",
# "last_known_good_version": "1.9.0",
# "workaround": "none"
# }
34 changes: 34 additions & 0 deletions regressions/1.9.x.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
schema_version: 1
release: 1.9.x

entries:

- id: GH-12591
title: Loop component fails with vector database components inside the loop
status: resolved
area: components
first_bad_version: 1.8.x
last_known_good_version: 1.7.3
resolved_in_version: 1.10.0
fix_pr: https://github.com/langflow-ai/langflow/pull/12877
workaround: none

- id: GH-12731
title: Shareable Playground strips spaces from text input
status: resolved
area: flow_editor
first_bad_version: 1.9.0
last_known_good_version: 1.8.4
resolved_in_version: 1.9.1
fix_pr: https://github.com/langflow-ai/langflow/pull/12833
workaround: none

- id: GH-12732
title: Deleting a flow fails on PostgreSQL when tracing data exists
status: resolved
area: database
first_bad_version: 1.9.0
last_known_good_version: unknown
resolved_in_version: 1.8.2
fix_pr: https://github.com/langflow-ai/langflow/pull/12242
workaround: Duplicate of an issue originally fixed in 1.8.2.
75 changes: 75 additions & 0 deletions regressions/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Regression Log

This directory contains one YAML file per release cycle documenting known regressions.
Regressions are behaviors that worked in a previous version and broke in a subsequent one.
Regressions can be found through manual QA, automated testing, a support ticket, or code review.

The purpose of this YAML is to provide a single source of truth for known breaks before and after release.

When a regression is found, add an entry to the YAML file for the current release cycle and open a pull request. To add a regression to the file, do the following:

1. Open `regressions/<version>.yaml` for the version where the regression was discovered.
For example, open `1.9.x.yaml` if it first broke in 1.9.0.
Create the file if it doesn't exist.
2. Add a new entry under `entries:` following the schema below.
3. Set `status: triage` if the severity and workaround are not yet confirmed.
4. Open a pull request targeting the active RC branch.
The fix PR and the YAML entry may target different branches.

Regression entry schema:

```json
{
"id": "GH-12345",
"title": "Short plain-language description",
"status": "triage",
"area": "flow_editor",
"first_bad_version": "1.10.0",
"last_known_good_version": "1.9.0",
"resolved_in_version": "1.10.1",
"fix_pr": "https://github.com/langflow-ai/langflow/pull/12345",
"workaround": "none"
}
```

`resolved_in_version` and `fix_pr` are optional.
You can omit them when first filing and add them when the fix lands.

Status options:

| Status | Meaning |
|---|---|
| `triage` | Found, not yet fully assessed. Default when first filing. |
| `ship_with_note` | Shipping as-is. Docs must communicate the workaround. |
| `resolved` | Fixed; add `resolved_in_version` to record which version contains the fix. |
| `blocking` | Release blocker; requires explicit sign-off before shipping. |

When marking an entry `resolved`, include the version that the regression was resolved in:
```yaml
resolved_in_version: 1.10.1
```

Area options:

| Area | Covers |
|---|---|
| `flow_editor` | The visual builder UI. |
| `components` | Core components. |
| `mcp` | MCP server registration, MCP tools, MCP sidebar. |
| `api` | REST API endpoints. |
| `lfx` | The `lfx` CLI executor. |
| `auth` | Login, API keys, user management. |
| `database` | Migrations, storage, flow persistence. |
| `integrations` | Third-party components. |
| `starter_projects` | Bundled example flows. |

## Review regressions before release

During QA, support engineers keep entries current throughout RC by moving items out of `triage`, add workarounds, and marked fixed items as `resolved` with `resolved_in_version`.

Docs team reviews all `ship_with_note` entries before release, and ncludes `workaround` text to update known issues in release notes.

Release captain confirms no unresolved `blocking` entries exist.
If `blocking` entries exist, they should be signed off on in the GitHub issue by a maintainer.

See [RELEASE.md](../RELEASE.md) for the full release process.
Loading