Skip to content

Conversation

@LeWimbes
Copy link
Contributor

Motivation

The existing Dockerfiles were hardcoded to use the minimum supported Python version (3.10), preventing users from easily running CORE with newer Python versions. This PR keeps the minimum supported Python version (3.10) for building CORE packages while providing the newest supported Python Version (3.12) for the Rocky Linux and Ubuntu runtime images.

Changes

Python Version Management

  • Adopted uv throughout: uv was already used in Dockerfile.build. Since it provides great Python version management independent of system packages, I extended its use to all Dockerfiles.
  • Added PYTHON_VERSION ARG: All Dockerfiles now accept a Python version argument (defaults: 3.10 for build, 3.12 for runtime).
  • Tested Python 3.10, 3.11, 3.12: Python 3.10-3.12 seem fully functional. Python 3.13+ are incompatible due to pyproj 3.6.1 dependency.

Base Image Updates

  • Ubuntu 22.04 -> 24.04: Latest LTS with EMANE 1.5.3 support.
  • Rocky 8.10 -> 9: Latest major version with EMANE 1.5.3 support.

EMANE Updates

  • EMANE 1.5.1/2 -> 1.5.3: Latest stable release.
  • protoc 3.19.6 -> 28.3: Newer protoc versions generate code incompatible with protobuf 5.29.3.
  • Pinned setuptools<81: pkg_resources has been marked as deprecated, but is still in use by EMANE.

Other Changes

  • Removed curl (uv now copied from official image).
  • Removed system Python packages.
  • Improved consistency across Dockerfiles.
  • Updated README.md and install.md Python requirement to reflect actual compatibility.

@LeWimbes LeWimbes mentioned this pull request Dec 23, 2025
@LeWimbes LeWimbes marked this pull request as draft December 23, 2025 18:12
- Add uv-based Python management across all Dockerfiles for version flexibility
- Upgrade base images to Ubuntu 24.04 and Rocky Linux 9 (latest EMANE-supported versions)
- Update EMANE to 1.5.3 with protoc 28.3 (compatible with protobuf 5.x)
- Add PYTHON_VERSION ARG to all Dockerfiles (defaults: 3.10 for build, 3.12 for runtime)
- Pin setuptools<81 to avoid pkg_resources deprecation warnings
- Remove unnecessary dependencies (curl, system python packages)
- Improve Dockerfile consistency
@LeWimbes LeWimbes force-pushed the improve-docker-python-management branch from ffe62a4 to 79c2bfa Compare December 23, 2025 23:28
@LeWimbes LeWimbes marked this pull request as ready for review December 23, 2025 23:28
@bharnden
Copy link
Contributor

bharnden commented Jan 6, 2026

Thanks for the effort, was looking into eventually adjusting the build process. I will look to pull this in after looking over in detail and making some of the other adjustments renaming I had in mind.

@bharnden bharnden self-assigned this Jan 6, 2026
@bharnden bharnden merged commit 43f2753 into coreemu:develop Jan 6, 2026
@LeWimbes LeWimbes deleted the improve-docker-python-management branch January 6, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants