Developer Onboarding Checklist

Prerequisites

Environment Setup

Development Workflow

Validation

Code Quality Tools

CI/CD Integration

Documentation Review

Next Steps

Windows Developer Setup

For Windows developers, we recommend WSL2 for the best experience.

Quick Start (Windows with WSL2)

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?

Alternative: Native Windows Setup

If you prefer not to use WSL2:

  1. Install Python 3.11: https://www.python.org/downloads/
    • IMPORTANT: Check “Add Python to PATH” during installation
  2. Follow steps in “Environment Setup” above
  3. Use PowerShell for all terminal commands
  4. Use backslashes in file paths: pytest tests\unit\test_file.py

See Windows Setup Guide for detailed setup instructions.

Cross-Platform Notes

Troubleshooting

Common Issues

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):

  1. Virtual environment activation fails:
    # PowerShell execution policy error? Run as Administrator:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  2. Pre-commit hook blocks commit (illegal filename characters):
    # Rename file to use dashes instead of colons/quotes
    # Example: "file (10:30).txt" → "file-1030.txt"
    git add .
    git commit -m "Rename file"
    
  3. Path errors in tests (backslash vs forward slash):
    # 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).

Getting Help

  1. Check this onboarding guide for common solutions
  2. Review troubleshooting guide in docs/development/troubleshooting-guide.md
  3. Check PM-055 implementation package for Python 3.11 details
  4. Ask the team in GitHub Issues or team chat
  5. Review CI/CD logs if GitHub Actions fail

Success Criteria

You’re successfully onboarded when:

Welcome to the Team! 🎉

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: