Skip to content
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c7a17d6
fix: make the 1.11 core runtime self-contained
erichare Jul 15, 2026
db4b17c
test: define langflow-core distribution contract
erichare Jul 15, 2026
a33b411
feat: add langflow-core distribution
erichare Jul 15, 2026
969d348
feat: add langflow-core container image
erichare Jul 15, 2026
7a4881d
feat: ship the langflow-core distribution
erichare Jul 15, 2026
036549b
fix: support Python 3.10 in core distribution tests
erichare Jul 15, 2026
1318adb
Merge remote-tracking branch 'origin/release-1.11.0' into fix/langflo…
erichare Jul 15, 2026
1a41f07
Merge remote-tracking branch 'origin/release-1.11.0' into fix/langflo…
erichare Jul 15, 2026
28e6c54
fix: address langflow-core review feedback
erichare Jul 15, 2026
904005a
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 15, 2026
b8b0106
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 16, 2026
64b0c7a
[autofix.ci] apply automated fixes
autofix-ci[bot] Jul 16, 2026
6292cac
[autofix.ci] apply automated fixes (attempt 2/3)
autofix-ci[bot] Jul 16, 2026
fd77f07
Merge remote-tracking branch 'upstream/release-1.11.0' into fix/langf…
erichare Jul 16, 2026
1254387
feat: make langflow-core the shared distribution base
erichare Jul 16, 2026
b606478
Merge remote-tracking branch 'upstream/release-1.11.0' into fix/langf…
erichare Jul 16, 2026
8c2198a
docs: put information in one place and include uv
mendonk Jul 16, 2026
556725b
Merge branch 'fix/langflow-core-distribution-1.11' of https://github.…
mendonk Jul 16, 2026
6203957
docs: align core dependency guidance
erichare Jul 16, 2026
ede7e11
fix: allow first core release CLI gate to skip
erichare Jul 16, 2026
48e6280
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 16, 2026
6b21867
docs: fix relative links
mendonk Jul 16, 2026
5a0ce2f
Merge branch 'fix/langflow-core-distribution-1.11' of https://github.…
mendonk Jul 16, 2026
d5b966b
docs: defer user guidance to documentation PR
erichare Jul 16, 2026
a927484
Merge remote-tracking branch 'upstream/fix/langflow-core-distribution…
erichare Jul 16, 2026
5158e42
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 16, 2026
c9004b0
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 16, 2026
6ed0f44
Merge branch 'release-1.11.0' into fix/langflow-core-distribution-1.11
erichare Jul 17, 2026
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
3 changes: 3 additions & 0 deletions .github/changes-filter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ python:
- "src/backend/**"
- "src/backend/**.py"
- "src/lfx/**"
- "src/langflow-core/**"
- "pyproject.toml"
- "uv.lock"
- "src/backend/base/pyproject.toml"
Expand Down Expand Up @@ -34,7 +35,9 @@ docker:
- "src/backend/**"
- "src/frontend/**"
- "src/lfx/**"
- "src/langflow-core/**"
- ".dockerignore"
- ".github/workflows/docker-build-v2.yml"
- ".github/workflows/docker_test.yml"

# Test categories and their associated paths
Expand Down
135 changes: 107 additions & 28 deletions .github/workflows/cross-platform-test.yml

Large diffs are not rendered by default.

295 changes: 258 additions & 37 deletions .github/workflows/docker-build-v2.yml

Large diffs are not rendered by default.

78 changes: 78 additions & 0 deletions .github/workflows/docker_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,84 @@ jobs:
echo "=== Disk usage after cleanup ==="
df -h /

- name: Build core image
run: |
${{ env.CONTAINER_RUNTIME }} build -t langflowai/langflow:core-latest-dev \
-f docker/build_and_push_core.Dockerfile \
.

- name: Test core image
run: |
expected_version=$(grep '^version = ' src/langflow-core/pyproject.toml | head -n 1 | cut -d '"' -f 2)
version=$(${{ env.CONTAINER_RUNTIME }} run --rm --entrypoint python langflowai/langflow:core-latest-dev -c 'from importlib.metadata import version; print(version("langflow-core"))')
if [ "$expected_version" != "$version" ]; then
echo "Expected core version: $expected_version"
echo "Actual core version: $version"
exit 1
fi

${{ env.CONTAINER_RUNTIME }} run --rm --entrypoint python langflowai/langflow:core-latest-dev -c '
import importlib.metadata as metadata
names = {dist.metadata["Name"].lower() for dist in metadata.distributions()}
required = {"langflow-core", "langflow-base", "lfx", "langflow-sdk"}
missing = sorted(required - names)
forbidden = sorted(name for name in names if name.startswith("lfx-"))
assert not missing, f"missing core distributions: {missing}"
assert not forbidden, f"extension distributions installed: {forbidden}"
'

${{ env.CONTAINER_RUNTIME }} run --rm --entrypoint bash langflowai/langflow:core-latest-dev -c '
command -v langflow >/dev/null
command -v langflow-core >/dev/null
'

container_id=$(${{ env.CONTAINER_RUNTIME }} run -d \
-e LANGFLOW_SUPERUSER_PASSWORD=CoreImageTest-2026! \
langflowai/langflow:core-latest-dev)
cleanup_core_container() {
${{ env.CONTAINER_RUNTIME }} rm -f "$container_id" >/dev/null 2>&1 || true
}
trap cleanup_core_container EXIT

healthy=false
for _ in $(seq 1 60); do
if ${{ env.CONTAINER_RUNTIME }} exec "$container_id" curl -fsS http://127.0.0.1:7860/health_check >/dev/null; then
healthy=true
break
fi
if [ "$(${{ env.CONTAINER_RUNTIME }} inspect -f '{{.State.Running}}' "$container_id" 2>/dev/null)" != "true" ]; then
break
fi
sleep 2
done

if [ "$healthy" != "true" ]; then
echo "Core image did not become healthy"
${{ env.CONTAINER_RUNTIME }} logs "$container_id" || true
exit 1
fi

cleanup_core_container
trap - EXIT

- name: Cleanup after core image
if: always()
run: |
echo "=== Disk usage before cleanup ==="
df -h /
while read -r container_id; do
if [ -n "$container_id" ]; then
${{ env.CONTAINER_RUNTIME }} rm -f "$container_id" 2>/dev/null || true
fi
done < <(${{ env.CONTAINER_RUNTIME }} ps -aq --filter ancestor=langflowai/langflow:core-latest-dev)
${{ env.CONTAINER_RUNTIME }} rmi langflowai/langflow:core-latest-dev || true
${{ env.CONTAINER_RUNTIME }} system prune -af || true
if command -v docker &> /dev/null; then
docker buildx prune -af || true
fi
echo "=== Disk usage after cleanup ==="
df -h /

- name: Build backend image
run: |
${{ env.CONTAINER_RUNTIME }} build -t langflowai/langflow-backend:latest-dev \
Expand Down
Loading
Loading