* chore: bump backend unit test timeout from 30 to 40 minutes
* ci: anchor langflow version grep so new workspace packages can't break it
The pattern `uv tree | grep 'langflow' | grep -v 'langflow-base' | grep -v 'langflow-sdk'`
was used in 8 places to pluck the root `langflow` (or `langflow-nightly`)
line out of `uv tree`. It relied on enumerating every other workspace
package that starts with `langflow-`. As soon as a new one was added
(`langflow-stepflow`, via #12015) the filter let two lines through and
the downstream `awk` / `cut` produced a multi-line string, e.g.:
Name langflow-stepflow
langflow-nightly does not match langflow-nightly. Exiting the workflow.
Replace the enumeration with an anchored regex
`grep -E '^langflow(-nightly)?[[:space:]]'` so only the exact `langflow`
or `langflow-nightly` root line matches, regardless of how many other
`langflow-*` workspace packages exist now or in the future.
* ci: build, test, and publish src/bundles/* wheels
Langflow main pins exact versions of every bundle (e.g.
`lfx-arxiv-nightly==0.1.0.dev38`, `lfx-arxiv==0.1.0`), but neither the
nightly workflow nor the release workflow built or published those
bundle wheels. So when cross-platform tests (or downstream consumers)
ran `pip install langflow-nightly`, the resolver couldn't find
`lfx-arxiv-nightly` / `lfx-duckduckgo-nightly` on PyPI and bailed:
Because lfx-arxiv-nightly was not found in the package registry and
langflow-nightly==1.10.0.dev38 depends on lfx-arxiv-nightly==0.1.0.dev38,
we can conclude that langflow-nightly==1.10.0.dev38 cannot be used.
Add a build → test → publish lane for every package under
`src/bundles/*/` in both workflows, plus a matching bundle install step
in cross-platform-test.yml.
`release_nightly.yml`
- `build-nightly-bundles`: iterates `src/bundles/*/pyproject.toml`,
builds each wheel, uploads as `dist-nightly-bundles`.
- `test-cross-platform` now passes `bundles-artifact-name` so the
cross-platform test installs bundles before installing main.
- `publish-nightly-bundles`: publishes each bundle wheel to PyPI after
cross-platform passes and lfx is already published.
- `publish-nightly-main` now waits on `publish-nightly-bundles` so main
reaches PyPI only after its bundle deps do.
`release.yml`
- New `release_bundles` input (false by default).
- `validate-dependencies` rejects `release_package_main=true` without
`release_bundles=true`, mirroring the existing lfx/sdk gate.
- `build-bundles`, `publish-bundles` mirror the nightly jobs.
- `publish-main` now needs `publish-bundles`.
`cross-platform-test.yml`
- New optional `bundles-artifact-name` input; download step is gated on
it being set.
- `build-if-needed` (workflow_dispatch path) also builds bundles and
publishes the artifact, so adhoc runs stay self-contained.
- Each of the four "Install main package from wheel" steps gets a
preceding "Install bundle packages from wheel" step that runs only
when the artifact is present, leaving non-bundle callers
(e.g. pre-bundle release branches) unaffected.
* ci: drop mapfile from bundle install (macOS Bash 3.2 compat)
`mapfile` is a Bash 4+ builtin and the macOS runners use the system
Bash (3.2). The "Install bundle packages from wheel (Unix)" step
failed on `Install & Run - macos amd64 3.12` with:
mapfile: command not found
find: stdout: Broken pipe
Replace with the `shopt -s nullglob` + glob-array pattern already used
in the bundle build/publish steps, which works on Bash 3.2. All
artifact wheels live at the top level of ./bundles-dist, so the simple
glob is equivalent to the previous `find` (which also wasn't recursing
anywhere useful).
---------
Co-authored-by: Claude <noreply@anthropic.com>
* fix: Build and install the langflow-sdk for lfx (fixes nightly) (#12481)
* fix: Build and install the langflow-sdk for lfx
* Publish sdk as a nightly
* Update ci.yml
* Update python_test.yml
* Update ci.yml
* fix: Properly grep for the langflow version (#12486)
* fix: Properly grep for the langflow version
* Mount the sdk where needed
* Skip the sdk
* [autofix.ci] apply automated fixes
* Update setup.py
* fix(docker): Remove broken npm self-upgrade from Docker images (#12309)
* fix: replace grep -oP with sed for Node.js version extraction in Docker builds (#12331)
The grep -oP (PCRE regex) command fails in the python:3.12.12-slim-trixie
Docker base image because PCRE support is not available in the slim variant.
This replaces grep -oP with portable sed -nE in all 5 Dockerfiles and adds
an empty version guard to fail fast with a clear error message instead of
producing a broken download URL.
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Cristhian Zanforlin Lousa <cristhian.lousa@gmail.com>
Co-authored-by: vjgit96 <vijay.katuri@ibm.com>
* chore: use self hosted ephemeral runner
In November and periodically since we have ran into issue with runners hanging and not properly cleaning themselves up causing our CI/CD pipeline to fail due to timeout or self canceling.
* chore: add actionlint for selfhosted runners
* fix: skip nightly test when skip flags are set
* fix: json string format
* chore: change to use run_on string directly
${{ inputs['runs_on'] || github.event.inputs['runs_on'] || 'ubuntu-latest' }}
* chore: use self hosted ephemeral runner
* chore: use self hosted ephemeral runner
* chore: use self hosted ephemeral runner
* chore: revert ephemeral runner testing changes, restore main-only guards
---------
Co-authored-by: vijay kumar katuri <vijay.katuri@ibm.com>
* Try skipping gha cache
* simplify docker builds
* remove workflow dispatch options from workflows that shouldn't be run manually
* Update nightly docker build and add option to skip testing for nightly releases
* simplify version fetching for both release workflows
* revert docker-build v1 to original
* remove removed input
* Add push to registry flag for full workflow and add warning in old docker build workflow
* Add uv setup
* Add uv setup again
* Try esbuild js native build
* require a valid tag for release
* Echo inputs
* Reference inputs correctly
* Try updating conditional
* removes lfx temporarily for the 1.6 release
* Fix boolean comparison
* Add flag to allow creation of github release after pypi already exists
* Add always to make it run
* Use correct tag and remove commit since it's the tag for release
* allow updates
* Revert the lfx removals and flags to allow building without releasing
* standardize conditional inputs
* clean version check
* temporary skip of jobs in release; revert me
* Add arm64 to options
* Try rustflags env var
* echo the should_run_ci as well
* chore: remove setup-uv action configuration file as it is no longer needed
* chore: update setup-uv action to use the official action across all workflows
* chore: disable cache pruning in all workflows to improve build stability
* chore: update Python version to 3.13 and add pre-release description in workflows
fix: ensure consistent version extraction for langflow-base in workflows
Updated version extraction commands in multiple workflow files to consistently use 'head -n 1' for retrieving the first occurrence of the langflow-base version. This change improves reliability in version detection across docker-build, nightly_build, python_test, release_nightly, and release workflows.
* fix: Update Docker build workflow to use Wandalen/wretry.action for improved reliability
* fix: Remove attempt limit and delay from Docker build workflow
* fix: Add comment to clarify provenance setting in Docker build workflow
* bash -x
* bash verbose
* combine bash calls in uv run
* combined python script
* relative dir
* pass args correctly
* pass args correctly
* function name
* fix arg order
* merge base and main
* remove nightly -ep docker image for now
* set up uv in the get-version job in docker-build.yml
* v prefix for version in build job
* use inputs.nightly_tag_main for checkout actions
* mount root project metadata for base build
* fix comment
* continued dockerfile fixes for workspaces setup
* fix path
* ruff check fix
* Remove Poetry references from pyproject.toml and update project metadata
* Remove '--no-update' flag from 'uv lock' commands in Makefile
* Add script metadata with Python version and dependencies
* Remove Poetry references and integrate UV setup in CI workflow
* Remove Poetry setup and installation from integration tests workflow
* Remove Poetry references and update workflow to use custom setup action
* Remove references to Poetry from configuration files
* Update scripts
* update the base dep in uv deps
* update nightly scripts
* Add uv creds for publish
* skip tests for now
* fix version
* only build the wheel
* try again
* add uv to python run
* [autofix.ci] apply automated fixes
* use uv cache
* more version fixe
* fixing versions
* fix base version
* Try no frozen?
* skip everything to try docker build
* tag
* frozen
* separate script for updating uv dep
* [autofix.ci] apply automated fixes
* hardcoded versions
* hardcoded versions
* add version to editable package
* build project before docker file runs
* try again
* fix uv patht o build
* don't know why this would mkae a difference
* debug statements
* debug statements
* debug statements
* change path to whl 🤷
* manually move the wheel...
* make dir
* try no sources
* add back tests
* refactor uv to action
* add uv action
* Update nightly build workflow to include uv lock files in version update commit
* Update lint-py workflow to use specific ref for setup-uv action
* Add checkout step to style-check-py GitHub Actions workflow
* Remove redundant GitHub ref syntax in lint-py.yml workflow
* Update lint-py.yml to use specific ref for setup-uv action
* Update action.yml: standardize quotes and remove redundant checkout step
* Add checkout step to GitHub Actions workflows for specific ref handling
- Introduced `actions/checkout@v4` step to multiple workflows to ensure code is checked out at a specific ref.
- Updated `.github/workflows/docker-build.yml`, `.github/workflows/release_nightly.yml`, `.github/workflows/lint-py.yml`, and `.github/workflows/style-check-py.yml` to include the new checkout step.
- Ensured credentials are persisted during the checkout process.
* Add checkout step to Python test workflow with specific ref
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Gabriel Luiz Freitas Almeida <gabriel@langflow.org>
* feat: update docker-build.yml to conditionally retrieve version and adjust tagging logic for Docker images in workflows
* Refactor release workflow to separate base and main package handling
- Split `release_package` input into `release_package_base` and `release_package_main`
- Add new inputs for building Docker images: `build_docker_base` and `build_docker_main`
- Update conditional checks and job dependencies to reflect new inputs
- Separate Docker build workflows for base and main packages
* Refactor release.yml to introduce separate inputs for base and main packages, enhancing workflow flexibility and clarity
* chore: update release.yml to set default pre-release option to false, reflecting new workflow strategy
* chore: add pre-release check to release.yml to validate version format before proceeding with the workflow
* chore: remove deprecated pre-release workflows, consolidating configuration for cleaner CI/CD process
* chore: modify pre-release check in release.yml to use poetry version for validation, enhancing version format accuracy
* chore: refine pre-release version check in release.yml for improved regex validation, ensuring accurate version detection
The HuggingFace Spaces build script has been updated to use the correct space name "Langflow/Langflow" instead of "Langflow/Langflow-Preview". This ensures that the correct space is restarted when triggered.
* chore: Update docker-build.yml to disable pre-release by default
* chore: Update Dockerfiles to set LANGFLOW_HOST and LANGFLOW_PORT
The Dockerfiles have been updated to set the environment variables LANGFLOW_HOST and LANGFLOW_PORT. This ensures that the correct host and port are used when running the langflow application.
* 🔧 (build_and_push_backend.Dockerfile): remove unnecessary host and port configuration to simplify the Dockerfile and focus on backend-only functionality
* chore: Update LANGFLOW_CONFIG_DIR in docker-compose.yml
The LANGFLOW_CONFIG_DIR environment variable in docker-compose.yml has been updated to /app/langflow. This change ensures that the correct directory is used for storing logs, file storage, monitor data, and secret keys.
* optimize multi-arch docker build on x86
* test
* test
* test
* test
* separate build
* separate build
* fix package versions
* also fixes the release
* orjson
* orjson
* fix cryptography
* fix duckdb
* all
* all
* fix
* use provenance