#!/bin/bash # Development setup script for development-hub # # This script installs all interdependent projects as editable packages, # allowing you to develop them in parallel without reinstalling. # # Usage: # ./scripts/dev-setup.sh # Full setup with venv creation # ./scripts/dev-setup.sh --deps # Just reinstall editable deps (faster) set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" PROJECTS_ROOT="$(dirname "$PROJECT_DIR")" # Colors for output GREEN='\033[0;32m' BLUE='\033[0;34m' NC='\033[0m' # No Color log() { echo -e "${BLUE}==>${NC} $1" } success() { echo -e "${GREEN}==>${NC} $1" } # Check if we're just updating deps DEPS_ONLY=false if [ "$1" = "--deps" ]; then DEPS_ONLY=true fi cd "$PROJECT_DIR" if [ "$DEPS_ONLY" = false ]; then # Create venv if it doesn't exist if [ ! -d ".venv" ]; then log "Creating virtual environment..." python3 -m venv .venv fi fi # Activate venv log "Activating virtual environment..." source .venv/bin/activate if [ "$DEPS_ONLY" = false ]; then # Upgrade pip log "Upgrading pip..." pip install --upgrade pip fi # Install editable packages in dependency order (base packages first) # Using --no-deps to avoid git URL conflicts, then installing other deps log "Installing cmdforge (base layer)..." pip install -e "$PROJECTS_ROOT/CmdForge" --no-deps pip install PyYAML requests PySide6 NodeGraphQt setuptools log "Installing ramble..." pip install -e "$PROJECTS_ROOT/ramble" --no-deps log "Installing artifact-editor..." pip install -e "$PROJECTS_ROOT/artifact-editor" --no-deps pip install QScintilla log "Installing orchestrated-discussions[gui]..." pip install -e "$PROJECTS_ROOT/orchestrated-discussions[gui]" --no-deps pip install dearpygui sounddevice numpy urwid log "Installing development-hub..." pip install -e "$PROJECT_DIR" --no-deps pip install pyte if [ "$DEPS_ONLY" = false ]; then # Install dev dependencies log "Installing dev dependencies..." pip install pytest pytest-qt pytest-cov fi success "Development environment ready!" echo "" echo "Installed packages (editable):" pip list | grep -E "(cmdforge|ramble|artifact-editor|orchestrated-discussions|development-hub)" | sed 's/^/ /' echo "" echo "To activate: source .venv/bin/activate" echo "To run: development-hub"