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:50 UTC

(superset) branch codespaces_setup created (now 1ad286b680)

This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a change to branch codespaces_setup
in repository https://gitbox.apache.org/repos/asf/superset.git


      at 1ad286b680 feat(codespaces): auto-setup Python venv with dependencies

This branch includes the following new commits:

     new 1ad286b680 feat(codespaces): auto-setup Python venv with dependencies

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(superset) 01/01: feat(codespaces): auto-setup Python venv with dependencies

Posted by ma...@apache.org.
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