mirror of
https://github.com/fsecada01/Pygentic-AI.git
synced 2026-05-11 19:54:59 +00:00
BREAKING CHANGE: Removed pip-style requirements files
Migration Details:
- Removed core_requirements.{in,txt} and dev_requirements.in
- Consolidated all dependencies into pyproject.toml
- Added platform markers for Windows-specific packages:
- pywin32>=311 (sys_platform == 'win32')
- win32-setctime>=1.2.0 (sys_platform == 'win32')
- hypercorn (Windows ASGI server)
- gunicorn (Unix WSGI server)
CI/CD Changes:
- Updated .github/workflows/test.yml to use 'uv sync --group test'
- Simplified installation: no more manual pip install steps
- Uses 'uv run pytest' for test execution with PYTHONPATH
Benefits:
- ✅ Fixes pywin32 installation failure on Ubuntu CI runners
- ✅ Single source of truth for dependencies (pyproject.toml)
- ✅ Faster resolution with uv lockfile
- ✅ Modern Python packaging (PEP 621)
- ✅ Proper dependency groups (dev, test)
- ✅ Platform-aware installation
New Workflow:
- Production: uv sync
- With tests: uv sync --group test
- With dev tools: uv sync --group dev
- All groups: uv sync --all-groups
Added MIGRATION_UV.md with full migration guide for developers.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
Migration to uv + pyproject.toml
Date: 2026-02-04 Status: ✅ Completed
What Changed
Migrated from pip-style requirements.txt/requirements.in files to modern uv + pyproject.toml dependency management.
Old Approach (Deprecated)
# Old way - DO NOT USE
uv pip install -r core_requirements.txt
uv pip install -r dev_requirements.txt
New Approach (Current)
# Production dependencies
uv sync
# With test dependencies
uv sync --group test
# With development dependencies
uv sync --group dev
# All groups
uv sync --all-groups
Files Removed
- ❌
core_requirements.in - ❌
core_requirements.txt - ❌
dev_requirements.in
Files Updated
- ✅
pyproject.toml- All dependencies now defined here - ✅
.github/workflows/test.yml- CI usesuv sync --group test
Platform-Specific Dependencies
The following dependencies are now properly marked with platform markers:
Windows Only
pywin32>=311(sys_platform == 'win32')win32-setctime>=1.2.0(sys_platform == 'win32')hypercorn>=0.18.0(sys_platform == 'win32')
Unix Only
gunicorn>=25.0.1(sys_platform != 'win32')
This fixes the CI installation failure where pywin32 was being installed on Ubuntu runners.
Benefits
- Single source of truth: All dependencies in
pyproject.toml - Platform awareness: Proper platform markers prevent installation failures
- Faster resolution:
uvlockfile (uv.lock) ensures reproducible installs - Modern tooling: Aligned with Python packaging standards (PEP 621)
- Dependency groups: Separate dev/test dependencies cleanly
For Developers
First Time Setup
# Install uv if not already installed
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone and setup
git clone <repo>
cd strategiq
uv sync --all-groups
Running Tests
uv run pytest
Adding Dependencies
# Add to [project] dependencies in pyproject.toml
# Then sync
uv sync
CI/CD
GitHub Actions now uses:
- name: Install dependencies
run: uv sync --group test
- name: Run tests
run: uv run pytest --cov=src
No more manual pip install steps!