Skip to content

LITE-33583: Align bootstrapped extension deps with the runner#252

Open
pcaro wants to merge 1 commit into
masterfrom
fix/LITE-33583-bootstrap-dependency-mismatch
Open

LITE-33583: Align bootstrapped extension deps with the runner#252
pcaro wants to merge 1 commit into
masterfrom
fix/LITE-33583-bootstrap-dependency-mismatch

Conversation

@pcaro

@pcaro pcaro commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Problem

Bootstrapping an extension produced an incoherent runner ↔ connect-eaas-core dependency pair, so the generated project could not run without manual fixes.

Root cause:

  • get_pypi_runner_version() selected the runner image by the CLI's own major version (26), which has diverged from the real runner line (currently 43). This baked a stale, incompatible connect-extension-runner:26.x into the Dockerfile.
  • The pyproject.toml.j2 template hardcoded connect-eaas-core = ">=30", so poetry update in the Dockerfile resolved a connect-eaas-core version the pinned runner image does not support.

Fix

  • Runner selection: get_pypi_runner_version() now returns the latest published runner instead of filtering by the CLI major (removes the broken coupling).
  • Coherent, self-tracking pin: new get_pypi_runner_eaas_core_version(runner) derives the connect-eaas-core specifier from the selected runner's PyPI requires_dist, so the pair is always coherent and cannot drift again.
  • Template: connect-eaas-core is pinned to the runner-derived specifier; python aligned to the runner line (>=3.9,<3.13); stale dev-deps refreshed (pytest 8, flake8 ≥6, pytest-asyncio ≥0.23) and the dead mock marker dropped.

Verification

  • 118 project-plugin tests pass ; flake8 clean.
  • Real-PyPI derivation yields runner 43.0 + connect-eaas-core <38,>=37.4, which poetry parses correctly (>=37.4,<38; allows 37.5, excludes 38.0).

…-33583)

Bootstrapping an extension produced an incoherent runner/connect-eaas-core
pair, so the generated project could not run without manual fixes. The
runner image was selected by the CLI's own major version (26, stale versus
the real runner line 43) while the pyproject template hardcoded a
connect-eaas-core ">=30" floor, letting `poetry update` resolve a version
the runner image does not support.

Select the latest published runner instead of filtering by the CLI major,
and derive the connect-eaas-core specifier from that runner's PyPI
requires_dist so the pair is always coherent and cannot drift again. The
template now pins connect-eaas-core to the derived specifier, aligns python
to the runner line (>=3.9,<3.13), and refreshes the stale dev-dependencies
(pytest 8, flake8 >=6, pytest-asyncio >=0.23; drops the dead mock marker).
@pcaro pcaro changed the title fix(project): align bootstrapped extension deps with the runner (LITE-33583) LITE-33583: Align bootstrapped extension deps with the runner Jul 10, 2026
@sonarqubecloud

Copy link
Copy Markdown

@pcaro pcaro marked this pull request as ready for review July 10, 2026 09:46
@arnaugiralt arnaugiralt requested a review from qarlosh July 10, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant