Skip to content

chore: upgrade to Python 3.14#775

Open
jtligon wants to merge 4 commits into
jumpstarter-dev:mainfrom
jtligon:upgrade-python-3.14
Open

chore: upgrade to Python 3.14#775
jtligon wants to merge 4 commits into
jumpstarter-dev:mainfrom
jtligon:upgrade-python-3.14

Conversation

@jtligon

@jtligon jtligon commented Jun 8, 2026

Copy link
Copy Markdown

Add Python 3.14 Support

Summary

Adds support for Python 3.14 while maintaining backward compatibility with Python 3.12 and 3.13.

Changes

  • Updated requires-python from >=3.11 to >=3.12 (65 packages)
  • Updated ruff target-version to py312
  • Updated GitHub Actions CI to test with Python 3.12, 3.13, and 3.14
  • Updated uv.lock with Python 3.14 compatible dependencies

Dependencies

This required upgrading to newer versions of packages with Python 3.14 support:

  • pydantic-core: 2.33.2 → 2.46.4 (has Python 3.14 wheels)
  • pydantic: 2.11.7 → 2.13.4

Additional Fixes

Fixed pre-existing issues identified by CodeRabbit:

  • Added missing Apache-2.0 license to jumpstarter-driver-iscsi
  • Removed duplicate pytest-asyncio dependency in jumpstarter-driver-http
  • Fixed jumpstarter-driver-opendal entry point group (adapters → drivers)

Build Requirements

Building with Python 3.14 requires:

  • Environment variable: PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 for Rust-based Python extensions
  • macOS:
    • brew install gcc (provides gfortran for scipy)
    • brew install openblas (required for scipy)
    • export PKG_CONFIG_PATH="/opt/homebrew/opt/openblas/lib/pkgconfig:$PKG_CONFIG_PATH"
  • Linux: Install equivalent packages via system package manager

Testing

  • ✅ Successfully synced all packages with uv sync --all-packages --all-extras
  • ✅ Verified jmp CLI works correctly on Python 3.14.5
  • ✅ Backward compatible: supports Python 3.12, 3.13, and 3.14

Notes

Python 3.14 was released recently, so some packages in the ecosystem are still catching up. The forward compatibility flag allows PyO3-based packages to build using the stable ABI. Python 3.12 and 3.13 continue to work without any special configuration.

Checklist

  • All pyproject.toml files updated
  • CI configuration updated to test all versions
  • Dependencies resolved and lockfile updated
  • Local testing completed on Python 3.14
  • Backward compatibility maintained
  • CI passes

Upgrade project Python version from 3.11/3.12 to 3.14.

Changes:
- Update .py-version to 3.14
- Update all requires-python fields to >=3.14 across all packages
- Update ruff target-version to py314
- Update CI to test with Python 3.14
- Update uv.lock with Python 3.14 compatible dependencies

This required upgrading pydantic-core to 2.46.4 which has Python 3.14
support via prebuilt wheels.

Note: Building with Python 3.14 requires:
- PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 for Rust extensions
- OpenBLAS (macOS: brew install openblas)
- gfortran (macOS: brew install gcc)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f56550fc-29ec-425d-9816-eec8940497ea

📥 Commits

Reviewing files that changed from the base of the PR and between 9b320c1 and cb5f521.

📒 Files selected for processing (2)
  • python/__templates__/driver/pyproject.toml.tmpl
  • python/packages/jumpstarter-driver-opendal/pyproject.toml
✅ Files skipped from review due to trivial changes (1)
  • python/templates/driver/pyproject.toml.tmpl

📝 Walkthrough

Walkthrough

The PR updates the minimum Python version requirement across the entire Jumpstarter repository from 3.11 to 3.12. This includes updating the CI test matrix to 3.12–3.14, adjusting linter configuration, and raising requires-python constraints in all example projects, core packages, and driver packages.

Changes

Python 3.12 baseline rollout

Layer / File(s) Summary
CI and tooling baseline set to 3.12–3.14
.py-version, .github/workflows/python-tests.yaml, python/pyproject.toml
Repository-level Python version pinning, GitHub Actions test matrix, and Ruff linter target are updated to establish Python 3.12–3.14 as the new baseline.
Examples and core packages requires-python updates
python/examples/*, python/packages/jumpstarter*, python/packages/hatch-pin-jumpstarter/pyproject.toml
Example projects and foundational packages (meta-package, CLI, protocol, testing, imaging, Kubernetes, MCP) update requires-python from >=3.11 to >=3.12.
Driver packages and template requires-python updates with metadata adjustments
python/packages/jumpstarter-driver-*/pyproject.toml, python/__templates__/driver/pyproject.toml.tmpl
All 47 driver packages and the package generation template raise requires-python to >=3.12. HTTP driver updates pytest-asyncio from >=0.0.0 to >=0.24.0, iSCSI driver adds license = "Apache-2.0", and opendal driver preserves entry-point configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

Suggested labels

backport release-0.7

Suggested reviewers

  • mangelajo
  • kirkbrauer

🐰 A mighty bump through the Python lands,
From 3.11's bygone sands,
To 3.12 we boldly leap,
Our version stack safe and deep!
Now drivers, tools, and templates aligned—
A brighter future we shall find! 🎯

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main objective of the pull request: upgrading to Python 3.14 support.
Description check ✅ Passed The description is comprehensive and directly related to the changeset, detailing Python version updates, dependency upgrades, additional fixes, build requirements, and testing status.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
python/packages/jumpstarter-driver-iscsi/pyproject.toml (1)

1-8: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add required Apache-2.0 license metadata to this package.

[project] is missing license = "Apache-2.0", which violates the repository packaging policy.

Suggested fix
 [project]
 name = "jumpstarter-driver-iscsi"
 dynamic = ["version", "urls"]
 description = "Exporter ISCSI service driver"
 readme = "README.md"
+license = "Apache-2.0"
 authors = [{ name = "Benny Zlotnik", email = "bzlotnik@redhat.com" }]
 requires-python = ">=3.14"

As per coding guidelines, “All packages must use Apache-2.0 license as specified in pyproject.toml”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/packages/jumpstarter-driver-iscsi/pyproject.toml` around lines 1 - 8,
Add the required Apache-2.0 license metadata to the pyproject.toml [project]
metadata: update the project table in "pyproject.toml" (the [project] block for
the package jumpstarter-driver-iscsi) to include license = "Apache-2.0" so the
package metadata complies with repository packaging policy; place the new
license field alongside existing keys like name, dynamic, description, readme,
authors, and requires-python.

Source: Coding guidelines

python/packages/jumpstarter-driver-http/pyproject.toml (1)

41-42: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Remove duplicate pytest-asyncio constraints in dev dependencies.

Having both pytest-asyncio>=0.0.0 and pytest-asyncio>=0.24.0 is redundant and can confuse dependency resolution intent; keep only the stricter constraint.

Suggested cleanup
 [dependency-groups]
 dev = [
     "pytest-cov>=6.0.0",
     "pytest>=8.3.3",
-    "pytest-asyncio>=0.0.0",
     "pytest-asyncio>=0.24.0",
 ]
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/packages/jumpstarter-driver-http/pyproject.toml` around lines 41 - 42,
Remove the duplicate pytest-asyncio entries from the dev dependencies in
pyproject.toml by deleting the weaker constraint "pytest-asyncio>=0.0.0" and
keeping the stricter "pytest-asyncio>=0.24.0" (ensure the duplicate string
entries under the dev-dependencies section are consolidated so only the >=0.24.0
constraint remains).
python/packages/jumpstarter-driver-opendal/pyproject.toml (1)

18-20: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Register this package under jumpstarter.drivers (or rename/scope it if it is adapter-only).

For a jumpstarter-driver-* package, the required project.entry-points."jumpstarter.drivers" registration is missing.

As per coding guidelines, “Drivers must register via jumpstarter.drivers entry point in pyproject.toml”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/packages/jumpstarter-driver-opendal/pyproject.toml` around lines 18 -
20, The pyproject.toml registers the package under
project.entry-points."jumpstarter.adapters" but for a jumpstarter-driver-*
package it must register under project.entry-points."jumpstarter.drivers";
update the entry-point group to "jumpstarter.drivers" (or if this package is
strictly an adapter, rename/scope the package accordingly) and ensure the entry
maps the OpendalAdapter symbol
(jumpstarter_driver_opendal.adapters:OpendalAdapter) under that group so the
driver is discoverable.

Sources: Coding guidelines, Learnings

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@python/packages/jumpstarter-driver-http/pyproject.toml`:
- Around line 41-42: Remove the duplicate pytest-asyncio entries from the dev
dependencies in pyproject.toml by deleting the weaker constraint
"pytest-asyncio>=0.0.0" and keeping the stricter "pytest-asyncio>=0.24.0"
(ensure the duplicate string entries under the dev-dependencies section are
consolidated so only the >=0.24.0 constraint remains).

In `@python/packages/jumpstarter-driver-iscsi/pyproject.toml`:
- Around line 1-8: Add the required Apache-2.0 license metadata to the
pyproject.toml [project] metadata: update the project table in "pyproject.toml"
(the [project] block for the package jumpstarter-driver-iscsi) to include
license = "Apache-2.0" so the package metadata complies with repository
packaging policy; place the new license field alongside existing keys like name,
dynamic, description, readme, authors, and requires-python.

In `@python/packages/jumpstarter-driver-opendal/pyproject.toml`:
- Around line 18-20: The pyproject.toml registers the package under
project.entry-points."jumpstarter.adapters" but for a jumpstarter-driver-*
package it must register under project.entry-points."jumpstarter.drivers";
update the entry-point group to "jumpstarter.drivers" (or if this package is
strictly an adapter, rename/scope the package accordingly) and ensure the entry
maps the OpendalAdapter symbol
(jumpstarter_driver_opendal.adapters:OpendalAdapter) under that group so the
driver is discoverable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f69689ae-69d2-4fbc-8ba7-999be9c428c7

📥 Commits

Reviewing files that changed from the base of the PR and between be78b3b and 3282c04.

⛔ Files ignored due to path filters (1)
  • python/uv.lock is excluded by !**/*.lock
📒 Files selected for processing (65)
  • .github/workflows/python-tests.yaml
  • .py-version
  • python/examples/android-emulator/pyproject.toml
  • python/examples/automotive/pyproject.toml
  • python/examples/soc-pytest/pyproject.toml
  • python/examples/xcp-ecu/pyproject.toml
  • python/packages/hatch-pin-jumpstarter/pyproject.toml
  • python/packages/jumpstarter-all/pyproject.toml
  • python/packages/jumpstarter-cli-admin/pyproject.toml
  • python/packages/jumpstarter-cli-common/pyproject.toml
  • python/packages/jumpstarter-cli-driver/pyproject.toml
  • python/packages/jumpstarter-cli/pyproject.toml
  • python/packages/jumpstarter-driver-adb/pyproject.toml
  • python/packages/jumpstarter-driver-androidemulator/pyproject.toml
  • python/packages/jumpstarter-driver-ble/pyproject.toml
  • python/packages/jumpstarter-driver-can/pyproject.toml
  • python/packages/jumpstarter-driver-composite/pyproject.toml
  • python/packages/jumpstarter-driver-corellium/pyproject.toml
  • python/packages/jumpstarter-driver-doip/pyproject.toml
  • python/packages/jumpstarter-driver-dut-network/pyproject.toml
  • python/packages/jumpstarter-driver-dutlink/pyproject.toml
  • python/packages/jumpstarter-driver-energenie/pyproject.toml
  • python/packages/jumpstarter-driver-esp32/pyproject.toml
  • python/packages/jumpstarter-driver-flashers/pyproject.toml
  • python/packages/jumpstarter-driver-gpiod/pyproject.toml
  • python/packages/jumpstarter-driver-http-power/pyproject.toml
  • python/packages/jumpstarter-driver-http/pyproject.toml
  • python/packages/jumpstarter-driver-iscsi/pyproject.toml
  • python/packages/jumpstarter-driver-mitmproxy/pyproject.toml
  • python/packages/jumpstarter-driver-network/pyproject.toml
  • python/packages/jumpstarter-driver-noyito-relay/pyproject.toml
  • python/packages/jumpstarter-driver-opendal/pyproject.toml
  • python/packages/jumpstarter-driver-pi-pico/pyproject.toml
  • python/packages/jumpstarter-driver-power/pyproject.toml
  • python/packages/jumpstarter-driver-probe-rs/pyproject.toml
  • python/packages/jumpstarter-driver-pyserial/pyproject.toml
  • python/packages/jumpstarter-driver-qemu/pyproject.toml
  • python/packages/jumpstarter-driver-renode/pyproject.toml
  • python/packages/jumpstarter-driver-ridesx/pyproject.toml
  • python/packages/jumpstarter-driver-sdwire/pyproject.toml
  • python/packages/jumpstarter-driver-shell/pyproject.toml
  • python/packages/jumpstarter-driver-snmp/pyproject.toml
  • python/packages/jumpstarter-driver-someip/pyproject.toml
  • python/packages/jumpstarter-driver-ssh-mitm/pyproject.toml
  • python/packages/jumpstarter-driver-ssh-mount/pyproject.toml
  • python/packages/jumpstarter-driver-ssh/pyproject.toml
  • python/packages/jumpstarter-driver-stlink-msd/pyproject.toml
  • python/packages/jumpstarter-driver-tasmota/pyproject.toml
  • python/packages/jumpstarter-driver-tftp/pyproject.toml
  • python/packages/jumpstarter-driver-tmt/pyproject.toml
  • python/packages/jumpstarter-driver-uboot/pyproject.toml
  • python/packages/jumpstarter-driver-uds-can/pyproject.toml
  • python/packages/jumpstarter-driver-uds-doip/pyproject.toml
  • python/packages/jumpstarter-driver-uds/pyproject.toml
  • python/packages/jumpstarter-driver-ustreamer/pyproject.toml
  • python/packages/jumpstarter-driver-vnc/pyproject.toml
  • python/packages/jumpstarter-driver-xcp/pyproject.toml
  • python/packages/jumpstarter-driver-yepkit/pyproject.toml
  • python/packages/jumpstarter-imagehash/pyproject.toml
  • python/packages/jumpstarter-kubernetes/pyproject.toml
  • python/packages/jumpstarter-mcp/pyproject.toml
  • python/packages/jumpstarter-protocol/pyproject.toml
  • python/packages/jumpstarter-testing/pyproject.toml
  • python/packages/jumpstarter/pyproject.toml
  • python/pyproject.toml

jtligon and others added 2 commits June 8, 2026 09:48
- Add missing Apache-2.0 license to jumpstarter-driver-iscsi
- Remove duplicate pytest-asyncio dependency in jumpstarter-driver-http
- Fix jumpstarter-driver-opendal entry point group from adapters to drivers

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Update version requirements to support Python 3.12, 3.13, and 3.14:
- Change requires-python from >=3.14 to >=3.12
- Update CI to test all three versions: 3.12, 3.13, 3.14
- Set ruff target-version to py312 (lowest supported)

This allows users on Python 3.12 and 3.13 to continue using the
project while also supporting the newest Python 3.14.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/packages/jumpstarter-driver-shell/pyproject.toml`:
- Line 7: Update the Python driver template's pyproject setting: locate the
requires-python entry in python/__templates__/driver/pyproject.toml.tmpl (used
by python/__templates__/create_driver.sh) and change requires-python = ">=3.11"
to requires-python = ">=3.12" so newly generated drivers match existing
packages; verify no other template copies still use ">=3.11".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 1902221a-cbd7-4ae7-b4ed-a776da798944

📥 Commits

Reviewing files that changed from the base of the PR and between 3282c04 and 9b320c1.

📒 Files selected for processing (65)
  • .github/workflows/python-tests.yaml
  • PR_DESCRIPTION.md
  • python/examples/android-emulator/pyproject.toml
  • python/examples/automotive/pyproject.toml
  • python/examples/soc-pytest/pyproject.toml
  • python/examples/xcp-ecu/pyproject.toml
  • python/packages/hatch-pin-jumpstarter/pyproject.toml
  • python/packages/jumpstarter-all/pyproject.toml
  • python/packages/jumpstarter-cli-admin/pyproject.toml
  • python/packages/jumpstarter-cli-common/pyproject.toml
  • python/packages/jumpstarter-cli-driver/pyproject.toml
  • python/packages/jumpstarter-cli/pyproject.toml
  • python/packages/jumpstarter-driver-adb/pyproject.toml
  • python/packages/jumpstarter-driver-androidemulator/pyproject.toml
  • python/packages/jumpstarter-driver-ble/pyproject.toml
  • python/packages/jumpstarter-driver-can/pyproject.toml
  • python/packages/jumpstarter-driver-composite/pyproject.toml
  • python/packages/jumpstarter-driver-corellium/pyproject.toml
  • python/packages/jumpstarter-driver-doip/pyproject.toml
  • python/packages/jumpstarter-driver-dut-network/pyproject.toml
  • python/packages/jumpstarter-driver-dutlink/pyproject.toml
  • python/packages/jumpstarter-driver-energenie/pyproject.toml
  • python/packages/jumpstarter-driver-esp32/pyproject.toml
  • python/packages/jumpstarter-driver-flashers/pyproject.toml
  • python/packages/jumpstarter-driver-gpiod/pyproject.toml
  • python/packages/jumpstarter-driver-http-power/pyproject.toml
  • python/packages/jumpstarter-driver-http/pyproject.toml
  • python/packages/jumpstarter-driver-iscsi/pyproject.toml
  • python/packages/jumpstarter-driver-mitmproxy/pyproject.toml
  • python/packages/jumpstarter-driver-network/pyproject.toml
  • python/packages/jumpstarter-driver-noyito-relay/pyproject.toml
  • python/packages/jumpstarter-driver-opendal/pyproject.toml
  • python/packages/jumpstarter-driver-pi-pico/pyproject.toml
  • python/packages/jumpstarter-driver-power/pyproject.toml
  • python/packages/jumpstarter-driver-probe-rs/pyproject.toml
  • python/packages/jumpstarter-driver-pyserial/pyproject.toml
  • python/packages/jumpstarter-driver-qemu/pyproject.toml
  • python/packages/jumpstarter-driver-renode/pyproject.toml
  • python/packages/jumpstarter-driver-ridesx/pyproject.toml
  • python/packages/jumpstarter-driver-sdwire/pyproject.toml
  • python/packages/jumpstarter-driver-shell/pyproject.toml
  • python/packages/jumpstarter-driver-snmp/pyproject.toml
  • python/packages/jumpstarter-driver-someip/pyproject.toml
  • python/packages/jumpstarter-driver-ssh-mitm/pyproject.toml
  • python/packages/jumpstarter-driver-ssh-mount/pyproject.toml
  • python/packages/jumpstarter-driver-ssh/pyproject.toml
  • python/packages/jumpstarter-driver-stlink-msd/pyproject.toml
  • python/packages/jumpstarter-driver-tasmota/pyproject.toml
  • python/packages/jumpstarter-driver-tftp/pyproject.toml
  • python/packages/jumpstarter-driver-tmt/pyproject.toml
  • python/packages/jumpstarter-driver-uboot/pyproject.toml
  • python/packages/jumpstarter-driver-uds-can/pyproject.toml
  • python/packages/jumpstarter-driver-uds-doip/pyproject.toml
  • python/packages/jumpstarter-driver-uds/pyproject.toml
  • python/packages/jumpstarter-driver-ustreamer/pyproject.toml
  • python/packages/jumpstarter-driver-vnc/pyproject.toml
  • python/packages/jumpstarter-driver-xcp/pyproject.toml
  • python/packages/jumpstarter-driver-yepkit/pyproject.toml
  • python/packages/jumpstarter-imagehash/pyproject.toml
  • python/packages/jumpstarter-kubernetes/pyproject.toml
  • python/packages/jumpstarter-mcp/pyproject.toml
  • python/packages/jumpstarter-protocol/pyproject.toml
  • python/packages/jumpstarter-testing/pyproject.toml
  • python/packages/jumpstarter/pyproject.toml
  • python/pyproject.toml
✅ Files skipped from review due to trivial changes (11)
  • PR_DESCRIPTION.md
  • python/packages/jumpstarter-driver-someip/pyproject.toml
  • python/examples/android-emulator/pyproject.toml
  • python/packages/hatch-pin-jumpstarter/pyproject.toml
  • python/packages/jumpstarter-protocol/pyproject.toml
  • python/packages/jumpstarter-driver-androidemulator/pyproject.toml
  • python/packages/jumpstarter-driver-xcp/pyproject.toml
  • python/packages/jumpstarter-driver-esp32/pyproject.toml
  • python/packages/jumpstarter-driver-ssh-mount/pyproject.toml
  • python/packages/jumpstarter-driver-composite/pyproject.toml
  • python/packages/jumpstarter-kubernetes/pyproject.toml
🚧 Files skipped from review as they are similar to previous changes (22)
  • python/packages/jumpstarter-driver-vnc/pyproject.toml
  • python/packages/jumpstarter-driver-noyito-relay/pyproject.toml
  • python/packages/jumpstarter-cli-admin/pyproject.toml
  • python/packages/jumpstarter-cli-common/pyproject.toml
  • python/packages/jumpstarter-driver-network/pyproject.toml
  • python/packages/jumpstarter-driver-mitmproxy/pyproject.toml
  • python/packages/jumpstarter-driver-ustreamer/pyproject.toml
  • python/packages/jumpstarter-driver-corellium/pyproject.toml
  • python/examples/automotive/pyproject.toml
  • python/packages/jumpstarter/pyproject.toml
  • python/packages/jumpstarter-driver-ridesx/pyproject.toml
  • python/packages/jumpstarter-driver-flashers/pyproject.toml
  • python/packages/jumpstarter-driver-ssh/pyproject.toml
  • python/packages/jumpstarter-driver-uds-can/pyproject.toml
  • python/packages/jumpstarter-driver-renode/pyproject.toml
  • python/packages/jumpstarter-cli-driver/pyproject.toml
  • python/packages/jumpstarter-driver-uds/pyproject.toml
  • python/packages/jumpstarter-testing/pyproject.toml
  • python/packages/jumpstarter-driver-doip/pyproject.toml
  • python/packages/jumpstarter-driver-tasmota/pyproject.toml
  • python/examples/soc-pytest/pyproject.toml
  • python/packages/jumpstarter-driver-pyserial/pyproject.toml

Comment thread python/packages/jumpstarter-driver-shell/pyproject.toml
Comment thread PR_DESCRIPTION.md Outdated

@mangelajo mangelajo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a couple of tiny comments. Thanks @jtligon !

Comment thread python/packages/jumpstarter-driver-opendal/pyproject.toml Outdated
Comment thread python/packages/jumpstarter-driver-shell/pyproject.toml
Comment thread PR_DESCRIPTION.md Outdated
- Revert jumpstarter-driver-opendal entry point back to jumpstarter.adapters
- Update driver template to use Python 3.12+ (was 3.11)
- Remove PR_DESCRIPTION.md file

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/packages/jumpstarter-driver-opendal/pyproject.toml`:
- Line 18: Add the missing entry point group for the driver so the Opendal
driver is discoverable: in the pyproject.toml for the jumpstarter-driver-opendal
package, add a [project.entry-points."jumpstarter.drivers"] section that
registers the Opendal driver class (the concrete driver symbol used in this
package) alongside or in addition to the existing
[project.entry-points."jumpstarter.adapters"] registration; alternatively, if
the package intentionally does not expose a driver, add a short comment or
README note in the package explaining why no
[project.entry-points."jumpstarter.drivers"] entry exists so maintainers know
this is deliberate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f56550fc-29ec-425d-9816-eec8940497ea

📥 Commits

Reviewing files that changed from the base of the PR and between 9b320c1 and cb5f521.

📒 Files selected for processing (2)
  • python/__templates__/driver/pyproject.toml.tmpl
  • python/packages/jumpstarter-driver-opendal/pyproject.toml
✅ Files skipped from review due to trivial changes (1)
  • python/templates/driver/pyproject.toml.tmpl

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@python/packages/jumpstarter-driver-opendal/pyproject.toml`:
- Line 18: Add the missing entry point group for the driver so the Opendal
driver is discoverable: in the pyproject.toml for the jumpstarter-driver-opendal
package, add a [project.entry-points."jumpstarter.drivers"] section that
registers the Opendal driver class (the concrete driver symbol used in this
package) alongside or in addition to the existing
[project.entry-points."jumpstarter.adapters"] registration; alternatively, if
the package intentionally does not expose a driver, add a short comment or
README note in the package explaining why no
[project.entry-points."jumpstarter.drivers"] entry exists so maintainers know
this is deliberate.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f56550fc-29ec-425d-9816-eec8940497ea

📥 Commits

Reviewing files that changed from the base of the PR and between 9b320c1 and cb5f521.

📒 Files selected for processing (2)
  • python/__templates__/driver/pyproject.toml.tmpl
  • python/packages/jumpstarter-driver-opendal/pyproject.toml
✅ Files skipped from review due to trivial changes (1)
  • python/templates/driver/pyproject.toml.tmpl
🛑 Comments failed to post (1)
python/packages/jumpstarter-driver-opendal/pyproject.toml (1)

18-18: ⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check entry point registration patterns across all driver packages

# Find all driver package pyproject.toml files and show their entry points
fd -t f 'pyproject.toml' 'python/packages/jumpstarter-driver-*' --exec sh -c '
  echo "=== {} ==="
  rg -A2 "project.entry-points" {} || echo "No entry-points found"
  echo
'

Repository: jumpstarter-dev/jumpstarter

Length of output: 195


Fix missing jumpstarter.drivers entry point in jumpstarter-driver-opendal

  • python/packages/jumpstarter-driver-opendal/pyproject.toml (line 18) registers only [project.entry-points."jumpstarter.adapters"] and has no corresponding [project.entry-points."jumpstarter.drivers"], despite this being a driver package.
  • Either add the missing jumpstarter.drivers entry point so the Opendal driver is discoverable (while keeping adapter registration if needed), or explicitly document why this package intentionally does not use jumpstarter.drivers.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@python/packages/jumpstarter-driver-opendal/pyproject.toml` at line 18, Add
the missing entry point group for the driver so the Opendal driver is
discoverable: in the pyproject.toml for the jumpstarter-driver-opendal package,
add a [project.entry-points."jumpstarter.drivers"] section that registers the
Opendal driver class (the concrete driver symbol used in this package) alongside
or in addition to the existing [project.entry-points."jumpstarter.adapters"]
registration; alternatively, if the package intentionally does not expose a
driver, add a short comment or README note in the package explaining why no
[project.entry-points."jumpstarter.drivers"] entry exists so maintainers know
this is deliberate.

Source: Coding guidelines

@jtligon jtligon requested a review from mangelajo June 9, 2026 12:42
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.

3 participants