mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-25 13:17:34 +08:00
106 lines
4.8 KiB
Plaintext
106 lines
4.8 KiB
Plaintext
---
|
|
title: LFX and Langflow version compatibility
|
|
slug: /lfx-compatibility
|
|
---
|
|
|
|
Langflow and LFX are versioned together on the same `major.minor` line, so you can always tell which LFX release runs which flows.
|
|
|
|
## Compatibility contract
|
|
|
|
**LFX `X.Y.N` is guaranteed compatible with any flow exported from Langflow `X.Y.M`.**
|
|
|
|
The major and minor numbers must match.
|
|
The patches `.N` for LFX and `.M` for Langflow are released independently. An LFX patch fix does not require a Langflow patch release, and vice versa.
|
|
|
|
When LFX and a flow share the same `major` version but differ on `minor`, such as a flow exported from Langflow 1.9.x run with LFX 1.10.x, individual components may have been updated since the flow was saved.
|
|
Use `lfx upgrade` to check compatibility and apply safe automatic fixes before running or serving such a flow.
|
|
For more information, see [Check and upgrade flows with lfx upgrade](#check-and-upgrade-flows-with-lfx-upgrade).
|
|
|
|
## Compatibility matrix
|
|
|
|
| Langflow version | Compatible LFX version | Notes |
|
|
|---|---|---|
|
|
| 1.10.x | 1.10.x | Fully compatible. Same `major.minor` line. |
|
|
| 1.11.x | 1.11.x | Fully compatible. Same `major.minor` line. |
|
|
| 1.9.x or earlier | 1.10.x | Use `lfx upgrade --upgrade-flow=safe` to apply safe component schema upgrades before running. |
|
|
| Any 1.x.x | 0.5.x | LFX 0.5.x was a standalone release before version alignment. It is no longer compatible with Langflow 1.10+ flows. |
|
|
|
|
## Check and upgrade flows with `lfx upgrade`
|
|
|
|
The `lfx upgrade` command inspects a flow against the built-in component registry and reports any components that have become incompatible or that have safe automatic upgrades available.
|
|
|
|
`lfx upgrade` compares each component in the flow against a bundled index at `_assets/component_index.json` that ships with the LFX release.
|
|
|
|
Run it with no flags to get a read-only compatibility report. The command reads your flow JSON, walks through every component node, and prints one line per node with its status. It does not modify the file.
|
|
|
|
```bash
|
|
lfx upgrade my-flow.json
|
|
```
|
|
|
|
Example output:
|
|
|
|
```text
|
|
[SAFE] Agent (AgentComponent) - id: abc123
|
|
[OK] Chat Output (ChatOutput) - id: def456
|
|
```
|
|
|
|
| CLI output | What it means | Example |
|
|
|---|---|---|
|
|
| `[OK]` | Component matches the current registry. | No action needed. |
|
|
| `[SAFE]` | Component code changed, but ports and fields your flow uses still line up. `lfx upgrade --write` can apply this update automatically. | An output that previously emitted only `Message` now also supports `Data`. |
|
|
| `[BREAKING]` | A port or field your flow relies on was removed. | An input that accepted `Message` and `Data` now accepts only `Message` and your flow uses a `Data` component. |
|
|
| `[BLOCKED]` | The component type no longer exists in this LFX build. | A bundle-only component is not installed in your environment. |
|
|
|
|
To apply fixes or enforce stricter checks, run:
|
|
|
|
```bash
|
|
# Apply all safe upgrades and overwrite the file
|
|
lfx upgrade my-flow.json --write
|
|
|
|
# Fail if any safe upgrades are still pending (use after a dry run before running `--write`)
|
|
lfx upgrade my-flow.json --strict
|
|
```
|
|
|
|
## Inline compatibility checking with `--upgrade-flow`
|
|
|
|
Both `lfx run` and `lfx serve` accept an `--upgrade-flow` option so you can apply compatibility checks at execution without a separate `lfx upgrade` step.
|
|
|
|
```bash
|
|
# Check only — fail if any component is blocked
|
|
lfx run my-flow.json --upgrade-flow=check "Hello world"
|
|
|
|
# Apply safe upgrades in memory, then run
|
|
lfx run my-flow.json --upgrade-flow=safe "Hello world"
|
|
|
|
# Same options for serve
|
|
lfx serve my-flow.json --upgrade-flow=safe
|
|
```
|
|
|
|
| Mode | Behavior |
|
|
|---|---|
|
|
| `check` | Reports compatibility issues and exits non-zero if any component is blocked. No changes are written to disk. |
|
|
| `safe` | Applies all safe upgrades in memory, then runs or serves the flow. Blocked components still cause a non-zero exit. |
|
|
|
|
## Pin versions
|
|
|
|
Pin `lfx~=1.10.0` in `requirements.txt` to track all patch releases for a given Langflow minor without crossing into the next minor automatically.
|
|
|
|
```text
|
|
# requirements.txt — allows 1.10.1, 1.10.2, … but not 1.11.0
|
|
lfx~=1.10.0
|
|
```
|
|
|
|
## Migrating from LFX 0.5.x to 1.10.0
|
|
|
|
LFX was realigned from its standalone `0.5.x` line onto Langflow's `major.minor` line, so the version number jumps from `0.5.0` to `1.10.0` in one release. This is a version-numbering change, not 95 minor releases of new features.
|
|
|
|
This jump can affect existing dependency pins in unexpected ways:
|
|
|
|
| Pin style | Effect |
|
|
|---|---|
|
|
| `lfx==0.5.x` or `lfx<1.0` | Does not upgrade. The deployment stays on 0.5.x. |
|
|
| `lfx>=0.5,<1` | Does not upgrade. The upper bound excludes 1.10.0. |
|
|
| `lfx>=0.5` (no upper bound) | Upgrades automatically to 1.10.0 on the next install. |
|
|
|
|
Going forward, pin with `lfx~=1.10.0` so you receive compatible patches without silently crossing minor lines.
|