python --version (should show 3.11.x)python -c "import asyncio; asyncio.timeout(1.0)"git clone https://github.com/yourusername/piper-morgan-platform.git
cd piper-morgan-platform
python --version # Should show Python 3.11.x
cat .python-version # Should show 3.11
python -m venv venv
source venv/bin/activate # Linux/macOS
# OR venv\Scripts\activate # Windows
pip install -r requirements.txt
python -c "import asyncio; asyncio.timeout(1.0); print('✅ Python 3.11 ready')"
pytest tests/ -v
docker-compose build
docker-compose up -d
pip install pre-commit
pre-commit install
pre-commit install --hook-type pre-push
pre-commit run --all-files
Note: --hook-type pre-push installs the release notes enforcement hook for production pushes.
python main.py
# Should start without Python version errors
docker-compose exec app python --version # Should show 3.11.x
python -m pytest tests/ --tb=short
python -c "
import asyncio
async def test_timeout():
async with asyncio.timeout(1.0):
await asyncio.sleep(0.1)
asyncio.run(test_timeout())
print('✅ AsyncIO.timeout works correctly')
"
black --check .
isort --check-only .
flake8 . --count --exit-zero --max-line-length=100
git add .
git commit -m "Initial setup"
git push origin main
git checkout -b feature/your-first-feature
For Windows developers, we recommend WSL2 for the best experience.
WSL2 provides a native Linux environment on Windows, making development seamless:
# 1. Run as Administrator
wsl --install
wsl --set-default-version 2
wsl --install -d Ubuntu-22.04
# 2. Inside Ubuntu terminal
sudo apt update && sudo apt upgrade -y
sudo apt install python3.11 python3.11-venv python3.11-pip git
# 3. Clone and setup (same as Linux)
git clone https://github.com/mediajunkie/piper-morgan-product.git
cd piper-morgan-product
python3.11 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 4. Verify setup
pytest tests/ -v
Why WSL2?
\ vs / confusion)If you prefer not to use WSL2:
pytest tests\unit\test_file.pySee Windows Setup Guide for detailed setup instructions.
source venv/bin/activate.\venv\Scripts\Activate.ps1tests\unit\test_file.py"tests/unit/test_file.py": < > " | ? *)Python Version Issues:
# If you see: AttributeError: module 'asyncio' has no attribute 'timeout'
python --version # Check if < 3.11
# Solution: Install and activate Python 3.11
Docker Issues:
# If containers fail to build
docker-compose build --no-cache
docker-compose exec app python --version # Verify 3.11.x
Test Failures:
# If tests fail with version errors
python -W error::DeprecationWarning -m pytest tests/
# Check for Python 3.11 compatibility issues
Windows-Specific Issues:
If using native Windows (not WSL2):
# PowerShell execution policy error? Run as Administrator:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# Rename file to use dashes instead of colons/quotes
# Example: "file (10:30).txt" → "file-1030.txt"
git add .
git commit -m "Rename file"
# Use backslashes
pytest tests\unit\test_file.py
# Or quote with forward slashes
pytest "tests/unit/test_file.py"
Recommendation: If Windows issues persist, use WSL2 (see Windows Developer Setup above).
You’re successfully onboarded when:
Once you’ve completed this checklist, you’re ready to contribute to Piper Morgan Platform. The Python 3.11 migration (PM-055) ensures a modern, consistent development environment for all team members.
Key Benefits of Python 3.11:
asyncio.timeout() functionality