90 lines
2.3 KiB
Bash
Executable File
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"
|