ci(bundles): cross-bundle test matrix (lfx contract axis)#13566
Draft
erichare wants to merge 5 commits into
Draft
ci(bundles): cross-bundle test matrix (lfx contract axis)#13566erichare wants to merge 5 commits into
erichare wants to merge 5 commits into
Conversation
Tests every extracted bundle (the lfx-bundles metapackage + each graduated lfx-<provider>) against the lfx contract surface it depends on -- overdue since 1.10 left 4 independently-versioned bundles depending on lfx. - .github/workflows/cross-bundle-test.yml: discovers bundles via the same src/bundles/*/pyproject.toml glob release.yml uses, then per (bundle x python 3.10/3.13): installs the in-repo lfx + the bundle, imports the declared entry-point package, asserts lfx.bundles discovery is error-free (for the metapackage), runs `lfx extension validate` for manifest bundles, and runs the bundle's own tests/. - Triggers: pull_request (src/bundles, src/lfx), workflow_dispatch, a weekly schedule, and workflow_call. The lfx-minor axis seeds with the in-repo lfx (the 1.10 line is unpublished); when minors publish, add the version dimension (oldest+latest get full tests, every supported minor gets contract-smoke) per the epic's cost-control shape. Verified: the workflow YAML parses and the contract-smoke logic imports a real bundle (lfx_arxiv) cleanly.
Contributor
|
Important Review skippedDraft detected. 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 |
2 tasks
Review findings on the cross-bundle matrix: - CRITICAL: the contract smoke asserted zero discovery errors, but the CI venv installs lfx-bundles WITHOUT per-provider extras, so providers whose modules import their SDK at top level degrade with module-import-failed -- the expected graceful-degradation contract. The smoke now fails only on structural codes and reports the degraded-module count. (Graduated partner bundles carry their deps directly, not as extras, so their steps are unaffected.) - the scheduled run now actually delivers the exhaustive grid the header promised (all supported Pythons on schedule; oldest+latest on PRs) - concurrency group with cancel-in-progress on PRs so stacked bundle PRs don't queue N-bundles x N-pythons jobs per push
tomllib is stdlib only from Python 3.11, so the contract-smoke heredoc failed with ModuleNotFoundError on every py3.10 matrix leg. Install the tomli backport into the smoke venv and import it as a fallback.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bundle Separation Phase A — PR 4: cross-bundle CI matrix
Part of Bundle Separation Phase A — metapackage split (1.11). Stacked on the foundation PR (
bundles/foundation-discovery); independent of the metapackage track, so it can land early. Overdue — 1.10 already left 4 independently-versioned bundles depending onlfx.What this does
.github/workflows/cross-bundle-test.ymltests every extracted bundle against thelfxcontract surface it depends on.src/bundles/*/pyproject.tomlglobrelease.ymluses, so each new extraction self-registers.lfx+ the bundle, imports the declared entry-point package, assertslfx.bundlesdiscovery is error-free (for the metapackage), runslfx extension validatefor manifest bundles, and runs the bundle's owntests/.pull_request(pathssrc/bundles/**,src/lfx/**),workflow_dispatch, a weeklyschedule, andworkflow_call.lfx-minor axis (the primary axis)
lfxis the primary axis because the BUNDLE_API contract lives inlfx. It currently seeds with the in-repo lfx (the 1.10 line isn't on PyPI yet). When minors publish, add the version dimension — oldest+latest get the full tests, every supported minor gets contract-smoke — and wire langflow RCs as the secondary axis viaworkflow_callfrom the release pipeline.Test plan
discover+bundlelfx_arxiv) cleanlyStack
Base
bundles/foundation-discovery(PR 1) so this PR's diff is only the workflow; GitHub auto-retargets to the integration branchfeat/bundle-metapackage-splitonce PR 1 merges. Draft until QA signs off.