Skip to content

Conversation

@rororowyourboat
Copy link

Closes #653

Summary

This PR adds a dev container configuration to provide a reproducible, standardized development environment for MSML contributors.

Changes

  • ✅ - Dev container configuration
    • Python 3.11 base image
    • Git and GitHub CLI features
    • Pre-configured VS Code extensions (Python, Jupyter, Ruff, GitLens)
    • Automatic Python interpreter detection
  • ✅ Setting up MSML development environment...
    Installing dependencies with uv... - Automated setup script
    • Installs uv package manager
    • Runs for dependencies
    • Installs development tools (ruff, pytest)
  • ✅ - Comprehensive usage guide
    • Getting started instructions
    • GitHub Codespaces integration
    • Customization examples
    • Troubleshooting guide

Benefits

  • Zero-friction onboarding: New contributors ready in minutes
  • Environment consistency: Same setup across all contributors
  • VS Code integration: Pre-configured extensions and settings
  • Codespaces support: Work from browser without local setup
  • Isolated environment: Doesn't affect local system

Usage

VS Code Dev Containers

  1. Install Docker Desktop
  2. Install Dev Containers extension
  3. Open repo in VS Code
  4. → "Dev Containers: Reopen in Container"

GitHub Codespaces

  1. Go to repo on GitHub
  2. Click "Code" → "Codespaces" → "Create codespace"
  3. Wait for automatic setup

Related

- Create .devcontainer/devcontainer.json with Python 3.11 base
- Add setup.sh script for automatic dependency installation
- Include comprehensive README with usage instructions
- Configure VS Code extensions and settings
- Support for VS Code Dev Containers and GitHub Codespaces
- Pre-configure Python, Jupyter, Ruff, and Git extensions
- Addresses issue #653
Copilot AI review requested due to automatic review settings January 22, 2026 16:02
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a comprehensive dev container configuration to provide a standardized, reproducible development environment for MSML contributors. The implementation includes Docker-based containerization with VS Code integration and automated setup.

Changes:

  • Added dev container configuration with Python 3.11, Git, GitHub CLI, and pre-configured VS Code extensions
  • Created automated setup script that installs uv package manager and project dependencies
  • Provided comprehensive documentation covering setup, usage, customization, and troubleshooting

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.devcontainer/devcontainer.json Defines dev container configuration with Python 3.11 base image, VS Code extensions, and editor settings
.devcontainer/setup.sh Automated setup script that installs uv, syncs dependencies, and installs development tools
.devcontainer/README.md Comprehensive documentation covering dev container features, getting started guide, usage examples, and troubleshooting

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


# Install development tools
echo "Installing development tools..."
uv pip install --system ruff pytest pytest-cov
Copy link

Copilot AI Jan 22, 2026

Choose a reason for hiding this comment

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

The --system flag installs packages to the system Python rather than into the virtual environment created by uv sync at .venv/. This is inconsistent with the rest of the setup and the documentation which references using the .venv virtual environment. Consider removing the --system flag so these development tools are installed into the project's virtual environment, or use uv tool install for global tool installation.

Suggested change
uv pip install --system ruff pytest pytest-cov
uv pip install ruff pytest pytest-cov

Copilot uses AI. Check for mistakes.
"tamasfe.even-better-toml",
"eamodio.gitlens"
],
"settings": {
Copy link

Copilot AI Jan 22, 2026

Choose a reason for hiding this comment

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

The Python interpreter path assumes that uv sync creates a virtual environment at .venv/bin/python. However, this path may differ on Windows containers (which would use .venv/Scripts/python.exe). While the Linux base image is being used, consider whether cross-platform compatibility is needed or add a comment documenting the Linux-specific assumption.

Suggested change
"settings": {
"settings": {
// NOTE: This dev container uses a Linux base image; the interpreter path assumes a POSIX .venv/bin layout.

Copilot uses AI. Check for mistakes.
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.

Add Dev Container for MSML Development

2 participants