Skip to content

Add dev container configuration - #736

Open
a18rhodes wants to merge 1 commit into
Blosc:mainfrom
a18rhodes:add-devcontainer
Open

a18rhodes wants to merge 1 commit into
Blosc:mainfrom
a18rhodes:add-devcontainer

Conversation

@a18rhodes

@a18rhodes a18rhodes commented Oct 16, 2026 •

Copy link
Copy Markdown

Adding a dev container configuration to make developing in the project more portable.

The container created by the config provides a stable, known-good environment to start development. It is purely additive, and folks who do not want to use it can simply ignore it.

What's included

The container:

  • is built on one of Microsoft's Python 3.12 images, to match the Python version of the main CI job
  • includes uv and pandoc as added features (pandoc is required for nbsphinx doc builds)
  • installs the dev, test, and doc groups with uv sync when the container is created
  • installs the pre-commit git hooks
  • keeps the venv outside the checkout, so it doesn't clash with the host's .venv

devcontainer-lock.json pins the versions of each feature for reproducibility

Added a new section to README_DEVELOPERS.md.

Notes

  • There is no Dockerfile to maintain; that is managed by the Microsoft image.
  • Updates mean bumping the image tag when the Python version in CI moves, and occasionally regenerating the lockfile.
  • uv.lock is not tracked or ignored in .gitignore; this means every user who uses the dev container will get the uv.lock file and it will be untracked. This is true today for anyone who currently runs uv sync anyway. I will follow up with a future PR on adding the uv.lock to version control or ignoring it based on the maintainer's preferences.

Testing

I tested on Windows 11 via WSL2 and Docker Desktop in VS Code. After rebasing onto main, import was successful, pytest ran successfully, docs can be built, and pre-commit runs as expected.

I did not test macOS or Apple Silicon, GitHub Codespaces, or other editors. The image includes arm64 builds, but I did not test that.

AI disclosure

I used AI to help build out the dev container and to help with phrasing the new sections in the README and in this PR. I fact-checked every point and understand the full intent of the dev container file.

Dev container docs

This branch has not been deployed

No deployments
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