apache / apache/opendal

bug: devcontainers uses an old debian version with no non-EOL python header libs

Open
#6,992 11 comments 1 reaction 0 assignees View on GitHub
bindings/python bug
Dominant language
Rust
Stars
5.4k
Forks
825
Avg merge
1d 14m
Merged PRs (30d)
127

Description

### Describe the bug

The devcontainers config cannot be used for python development. `mcr.microsoft.com/devcontainers/rust:bullseye` is based on debian bullseye, which only has libpython*-dev up to v3.9, [which is EOL](https://devguide.python.org/versions/). Microsoft provides a rust devcontainer image for bookworm, but that isn't much better, only going up to 3.11. However, this may be workable because the python bindings use the abi3-py311 target. If so, the uv config needs to be updated to lock the python version used in the dev environment, as currently it installs the latest (3.14).

### Steps to Reproduce

- Create a fresh devcontainer
- `cd bindings/python`
- `just setup` (installs python 3.14)
- `uv run just test`: fails to generate type stubs due to missing header libraries

### Expected Behavior

The devcontainer should include all tools necessary for development.

### Additional Context

Changing the base image of the devcontainer could cause problems across many other regions of the monorepo and needs thorough testing.

### Are you willing to submit a PR to fix this bug?

- [ ] Yes, I would like to submit a PR.

Contributor guide

Open the contributing guide

Research direction

Start with the devcontainer configuration and reproduce the failure from bindings/python using just setup followed by uv run just test. Check the Rust image and Python version used by the environment; done means a fresh devcontainer provides the required Python header libraries and the Python binding tests complete successfully without disrupting the monorepo.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python, rust
Domain
developer-experience, devops, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.