Initial commit
This commit is contained in:
102
scripts/check-versions.sh
Executable file
102
scripts/check-versions.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
# FastMCP Version Checker
|
||||
# Verifies that FastMCP and dependencies are up to date
|
||||
|
||||
set -e
|
||||
|
||||
echo "======================================"
|
||||
echo "FastMCP Version Checker"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
|
||||
# Colors
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Check if Python is installed
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
echo -e "${RED}✗${NC} Python 3 is not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓${NC} Python $(python3 --version)"
|
||||
echo ""
|
||||
|
||||
# Check Python version
|
||||
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
|
||||
REQUIRED_VERSION="3.10"
|
||||
|
||||
if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then
|
||||
echo -e "${RED}✗${NC} Python $PYTHON_VERSION is too old. FastMCP requires Python $REQUIRED_VERSION or later"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}✓${NC} Python version $PYTHON_VERSION meets requirements"
|
||||
echo ""
|
||||
|
||||
# Check if pip is installed
|
||||
if ! command -v pip3 &> /dev/null; then
|
||||
echo -e "${RED}✗${NC} pip3 is not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Checking package versions..."
|
||||
echo ""
|
||||
|
||||
# Function to check package version
|
||||
check_package() {
|
||||
local package=$1
|
||||
local min_version=$2
|
||||
|
||||
if pip3 show "$package" &> /dev/null; then
|
||||
local installed_version=$(pip3 show "$package" | grep "Version:" | awk '{print $2}')
|
||||
echo -e "${GREEN}✓${NC} $package: $installed_version (required: >=$min_version)"
|
||||
|
||||
# Note: This is a simple check. For production, use more robust version comparison
|
||||
if [ "$installed_version" != "$min_version" ]; then
|
||||
if [ "$(printf '%s\n' "$min_version" "$installed_version" | sort -V | head -n1)" != "$min_version" ]; then
|
||||
echo -e " ${YELLOW}⚠${NC} Installed version is older than minimum required"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo -e "${RED}✗${NC} $package: Not installed (required: >=$min_version)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Check core packages
|
||||
check_package "fastmcp" "2.12.0"
|
||||
check_package "httpx" "0.27.0"
|
||||
check_package "python-dotenv" "1.0.0"
|
||||
check_package "pydantic" "2.0.0"
|
||||
|
||||
echo ""
|
||||
echo "Checking optional packages..."
|
||||
echo ""
|
||||
|
||||
# Check optional packages
|
||||
if pip3 show "psutil" &> /dev/null; then
|
||||
check_package "psutil" "5.9.0"
|
||||
else
|
||||
echo -e "${YELLOW}○${NC} psutil: Not installed (optional, for health checks)"
|
||||
fi
|
||||
|
||||
if pip3 show "pytest" &> /dev/null; then
|
||||
check_package "pytest" "8.0.0"
|
||||
else
|
||||
echo -e "${YELLOW}○${NC} pytest: Not installed (optional, for testing)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
echo "Version check complete!"
|
||||
echo "======================================"
|
||||
echo ""
|
||||
|
||||
# Suggestions
|
||||
echo "Suggestions:"
|
||||
echo " - To update FastMCP: pip install --upgrade fastmcp"
|
||||
echo " - To update all dependencies: pip install --upgrade -r requirements.txt"
|
||||
echo " - To see outdated packages: pip list --outdated"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user