Skip to content

#2100: Resolve python versions via uv instead of ide-urls#2152

Open
Paras14 wants to merge 3 commits into
devonfw:mainfrom
Paras14:2100-python-not-available-for-mac-x64
Open

#2100: Resolve python versions via uv instead of ide-urls#2152
Paras14 wants to merge 3 commits into
devonfw:mainfrom
Paras14:2100-python-not-available-for-mac-x64

Conversation

@Paras14

@Paras14 Paras14 commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #2100

Implemented changes:

  • Added PythonRepository, a ToolRepository that resolves the list of installable Python versions from uv python list instead of from ide-urls. Python now uses this repository via an override of getToolRepository().
  • PythonUrlUpdater and had no darwin/x64 (Intel Mac) branch. Installable versions (e.g. 3.14.6) were therefore reported as "not found" on Intel Mac. Sourcing versions from uv (the tool that actually installs Python) removes this class of gap, since
    uv only lists versions it can install for the current OS/architecture. Still entries for Intel Macs(darwin/x64), Windows on arm(win32/arm64), and Linux on arm(linux/arm64).
  • Added Uv#parsePythonListJson(...) (defensive JSON parsing of uv python list) and the PythonUvListEntry record, with non-CPython entries (e.g. PyPy) are filtered out.
  • Wired getPythonRepository() into IdeContext and AbstractIdeContext
  • Fixed a bootstrap ordering issue, where version resolution runs before tool dependencies are installed, so fetchUvPythonList() uses the runTool variant that ensures uv is installed before running it.
  • CVE-security and dependency metadata for Python continue to come from ide-urls, which only need the tool folder and
    are unaffected by the per-platform gap.
  • Minor: added Javadoc to UvRepository.

Testing instructions

Automated:

  1. Run PythonRepositoryTest.java and PythonTest.java.

Manual:

  1. On a machine with uv available, you can confirm that uv python list --all-versions --only-downloads --output-format json --no-config lists the expected CPython versions for your platform.
  2. In a fresh IDEasy project where uv is not yet installed, run ide install python 3.14*. Expected: uv is installed first, then uv python list resolves 3.14.6, then Python 3.14.6 is installed successfully. Make sure you do it in a different new folder.
  3. If possible, run step 3 on genuine Intel-Mac hardware, since that is the platform originally reported in Python not available for Mac x64 #2100.

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled with internal
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

@Paras14 Paras14 force-pushed the 2100-python-not-available-for-mac-x64 branch from d7bbc4b to 9e63620 Compare July 13, 2026 09:25
@Paras14 Paras14 self-assigned this Jul 13, 2026
@Paras14 Paras14 moved this from 🆕 New to Team Review in IDEasy board Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Python not available for Mac x64

2 participants