mirror of
https://github.com/harvard-edge/cs249r_book.git
synced 2026-05-01 10:09:18 -05:00
78 lines
2.5 KiB
Bash
Executable File
78 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# MLSysBook Setup Script
|
|
# This script sets up the development environment for new contributors
|
|
|
|
set -e # Exit on any error
|
|
|
|
echo "🚀 Setting up MLSysBook development environment..."
|
|
|
|
# Check if Python is installed
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "❌ Python 3 is required but not installed. Please install Python 3.9+ first."
|
|
exit 1
|
|
fi
|
|
|
|
# Check Python version
|
|
python_version=$(python3 -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
|
|
echo "✅ Python $python_version detected"
|
|
|
|
# Create virtual environment if it doesn't exist
|
|
if [ ! -d ".venv" ]; then
|
|
echo "📦 Creating virtual environment..."
|
|
python3 -m venv .venv
|
|
fi
|
|
|
|
# Activate virtual environment
|
|
echo "🔧 Activating virtual environment..."
|
|
source .venv/bin/activate
|
|
|
|
# Upgrade pip
|
|
echo "⬆️ Upgrading pip..."
|
|
pip install --upgrade pip
|
|
|
|
# Install dependencies
|
|
echo "📚 Installing dependencies..."
|
|
pip install -r tools/dependencies/requirements.txt
|
|
|
|
# Install pre-commit hooks
|
|
echo "🔗 Installing pre-commit hooks..."
|
|
pre-commit install
|
|
|
|
# Check for GitHub CLI
|
|
echo "🔍 Checking for GitHub CLI..."
|
|
if ! command -v gh &> /dev/null; then
|
|
echo "📦 Installing GitHub CLI..."
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
# macOS
|
|
if command -v brew &> /dev/null; then
|
|
brew install gh
|
|
else
|
|
echo "❌ Homebrew is required to install GitHub CLI on macOS"
|
|
echo " Install Homebrew first: https://brew.sh"
|
|
echo " Then run: brew install gh"
|
|
fi
|
|
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
# Linux
|
|
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
|
sudo apt update
|
|
sudo apt install gh
|
|
else
|
|
echo "⚠️ Please install GitHub CLI manually: https://cli.github.com/"
|
|
fi
|
|
else
|
|
echo "✅ GitHub CLI already installed"
|
|
fi
|
|
|
|
echo ""
|
|
echo "🎉 Setup complete! Your development environment is ready."
|
|
echo ""
|
|
echo "📋 Next steps:"
|
|
echo " 1. Activate the virtual environment: source .venv/bin/activate"
|
|
echo " 2. Authenticate with GitHub: gh auth login"
|
|
echo " 3. Run pre-commit checks: pre-commit run --all-files"
|
|
echo " 4. Start developing!"
|
|
echo ""
|
|
echo "📚 For more information, see DEPENDENCIES.md"
|