development-hub/scripts/dev-setup.sh

90 lines
2.3 KiB
Bash
Executable File

#!/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"