6a5e73c856
Contributors now get a one-click dev environment that mirrors CI exactly: Python 3.11 (middle of the 3.9/3.11/3.13 matrix), ruff pinned to the same >=0.4.0,<0.5 range CI enforces, and pre-commit hooks auto-installed from the existing .pre-commit-config.yaml. Pinning ruff in post-create.sh is the load-bearing piece: pyproject only sets a floor, so without the pin the ruff extension would install 0.15.x and phantom-fail lint against CI's 0.4.x.
22 lines
595 B
Bash
Executable File
22 lines
595 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
echo "=== MemPalace Dev Container Setup ==="
|
|
|
|
pip install -e ".[dev]"
|
|
|
|
# Match CI's ruff pin (pyproject only sets a floor; without this contributors
|
|
# get a newer ruff locally than CI runs, causing phantom lint failures).
|
|
pip install "ruff>=0.4.0,<0.5"
|
|
|
|
pip install pre-commit
|
|
pre-commit install
|
|
|
|
echo ""
|
|
echo "=== Verification ==="
|
|
echo "python: $(python --version)"
|
|
echo "pytest: $(python -m pytest --version 2>&1 | head -1)"
|
|
echo "ruff: $(python -m ruff --version 2>&1 | head -1)"
|
|
echo ""
|
|
echo "Ready. Run: pytest tests/ -v --ignore=tests/benchmarks"
|