feat: add langflow-sdk support to release workflow#12679
Conversation
Add support for building and publishing the langflow-sdk package in the release workflow, mirroring the nightly build support added in #12491. Changes: - Add `release_sdk` workflow input for controlling SDK release - Add `determine-sdk-version` job with first-release PyPI handling - Add `build-sdk` job with version verification and import testing - Add `publish-sdk` job that publishes SDK to PyPI before LFX - Update `build-lfx` to download SDK artifact and test both wheels together - Update `build-base` and `build-main` to use SDK wheel as find-links - Pass SDK artifact to cross-platform tests - Add validation: releasing LFX requires releasing SDK - Add pre-release version handling for SDK and LFX's SDK dependency
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ 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. ❌ Your project status has failed because the head coverage (49.73%) is below the target coverage (60.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## release-1.9.0 #12679 +/- ##
=================================================
- Coverage 52.70% 52.43% -0.27%
=================================================
Files 2020 2020
Lines 183333 182623 -710
Branches 28722 26025 -2697
=================================================
- Hits 96617 95753 -864
- Misses 85625 85778 +153
- Partials 1091 1092 +1
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.
Pull request overview
Adds first-time release support for langflow-sdk to the main release workflow, ensuring the SDK is published to PyPI before LFX (and downstream packages) so end users can install lfx successfully.
Changes:
- Introduces a
release_sdkworkflow input and SDK-specific determine/build/publish jobs. - Updates build jobs (LFX/base/main) and cross-platform tests to optionally consume a locally-built SDK wheel artifact.
- Enforces release dependency ordering so
publish-sdkhappens beforepublish-lfx, then base/main.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
.secrets.baseline |
Updates secret baseline metadata to reflect workflow line shifts and regeneration time. |
.github/workflows/release.yml |
Adds SDK release pipeline (determine/build/publish) and threads SDK artifact usage + publish ordering through existing release jobs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* feat: add langflow-sdk build and publish support to release workflow Add support for building and publishing the langflow-sdk package in the release workflow, mirroring the nightly build support added in #12491. Changes: - Add `release_sdk` workflow input for controlling SDK release - Add `determine-sdk-version` job with first-release PyPI handling - Add `build-sdk` job with version verification and import testing - Add `publish-sdk` job that publishes SDK to PyPI before LFX - Update `build-lfx` to download SDK artifact and test both wheels together - Update `build-base` and `build-main` to use SDK wheel as find-links - Pass SDK artifact to cross-platform tests - Add validation: releasing LFX requires releasing SDK - Add pre-release version handling for SDK and LFX's SDK dependency * Update release.yml * Update release.yml * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Summary
langflow-sdkbuild and publish support to the release workflow, mirroring the nightly build support from fix: Cherry-pick nightly SDK build fixes to main #12491lfxdepends onlangflow-sdk>=0.1.0, so SDK must be published to PyPI before LFX can be installed by end userslangflow-sdkto PyPIChanges
New workflow inputs
release_sdk— controls whetherlangflow-sdkis built and published to PyPINew jobs
determine-sdk-version— reads version fromsrc/sdk/pyproject.toml, checks PyPI (handles 404 for first-time publish), computes pre-release version if neededbuild-sdk— builds SDK wheel, verifies version, tests import, uploadsdist-sdkartifactpublish-sdk— publishes SDK to PyPI (gated ondry_run), runs after cross-platform tests and CIModified jobs
validate-dependencies— enforces thatrelease_lfxrequiresrelease_sdk(same pattern as main→base validation)build-lfx— downloads SDK artifact, installs SDK + LFX wheels together in a clean venv for testing (mirrors nightly pattern), adds pre-release langflow-sdk dependency handlingbuild-base/build-main— download SDK artifact and include as--find-linksfor dependency resolutiontest-cross-platform— passessdk-artifact-name: "dist-sdk"to include SDK in cross-platform testingpublish-lfx— depends onpublish-sdkto ensure SDK is on PyPI before LFX is publishedDependency graph (publish order)
Test plan
dry_run=true,release_sdk=true,release_lfx=trueto verify the build pipeline completesdetermine-sdk-versioncorrectly detects first-time publish (PyPI 404)build-sdkproduces correct wheel and import test passesbuild-lfxinstalls both SDK and LFX wheels together for CLI testvalidate-dependenciesblocksrelease_lfxwithoutrelease_sdkdry_run=falseto publish to PyPI