You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2025/07/30 18:25:51 UTC
(superset) 01/01: feat(codespaces): auto-setup Python venv with dependencies
This is an automated email from the ASF dual-hosted git repository.
maximebeauchemin pushed a commit to branch codespaces_setup
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 1ad286b680688e426881673e317930c78d1b3f70
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Wed Jul 30 11:25:18 2025 -0700
feat(codespaces): auto-setup Python venv with dependencies
This enhancement makes Codespaces development-ready out of the box by automatically:
- Creating a Python virtual environment using `uv venv`
- Installing all development dependencies via `uv pip install -r requirements/development.txt`
- Setting up pre-commit hooks with `pre-commit install`
- Configuring the environment to auto-activate the venv in all terminals
Developers no longer need to manually set up their Python environment when creating a new Codespace. The virtual environment is persisted at `/workspaces/{repo}/.venv` and automatically activated through container-level environment variables, eliminating the need to run `source .venv/bin/activate`.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <no...@anthropic.com>
---
.devcontainer/README.md | 11 +++++++++++
.devcontainer/devcontainer.json | 6 ++++++
.devcontainer/setup-dev.sh | 15 +++++++++++++++
3 files changed, 32 insertions(+)
diff --git a/.devcontainer/README.md b/.devcontainer/README.md
index 6b24183edc..e5dda78fe3 100644
--- a/.devcontainer/README.md
+++ b/.devcontainer/README.md
@@ -3,3 +3,14 @@
For complete documentation on using GitHub Codespaces with Apache Superset, please see:
**[Setting up a Development Environment - GitHub Codespaces](https://superset.apache.org/docs/contributing/development#github-codespaces-cloud-development)**
+
+## Pre-installed Development Environment
+
+When you create a new Codespace from this repository, it automatically:
+
+1. **Creates a Python virtual environment** using `uv venv`
+2. **Installs all development dependencies** via `uv pip install -r requirements/development.txt`
+3. **Sets up pre-commit hooks** with `pre-commit install`
+4. **Activates the virtual environment** automatically in all terminals
+
+The virtual environment is located at `/workspaces/{repository-name}/.venv` and is automatically activated through environment variables set in the devcontainer configuration.
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index c73a69e6c4..da5efedeb3 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -37,6 +37,12 @@
// Auto-start Superset on Codespace resume
"postStartCommand": ".devcontainer/start-superset.sh",
+ // Set environment variables
+ "remoteEnv": {
+ "VIRTUAL_ENV": "/workspaces/${localWorkspaceFolderBasename}/.venv",
+ "PATH": "/workspaces/${localWorkspaceFolderBasename}/.venv/bin:${PATH}"
+ },
+
// VS Code customizations
"customizations": {
"vscode": {
diff --git a/.devcontainer/setup-dev.sh b/.devcontainer/setup-dev.sh
index f852118900..7d1eb91ab5 100755
--- a/.devcontainer/setup-dev.sh
+++ b/.devcontainer/setup-dev.sh
@@ -21,6 +21,21 @@ curl -LsSf https://astral.sh/uv/install.sh | sh
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
+# Source the PATH update for the current session
+export PATH="$HOME/.cargo/bin:$PATH"
+
+# Create virtual environment using uv
+echo "🐍 Creating Python virtual environment..."
+uv venv
+
+# Install Python dependencies
+echo "📦 Installing Python dependencies..."
+uv pip install -r requirements/development.txt
+
+# Install pre-commit hooks
+echo "🪝 Installing pre-commit hooks..."
+source .venv/bin/activate && pre-commit install
+
# Install Claude Code CLI via npm
echo "🤖 Installing Claude Code..."
npm install -g @anthropic-ai/claude-code