Skip to content

Feature/uv dependency management#16

Merged
lihuacai168 merged 21 commits intomasterfrom
feature/uv-dependency-management
Jun 28, 2025
Merged

Feature/uv dependency management#16
lihuacai168 merged 21 commits intomasterfrom
feature/uv-dependency-management

Conversation

@lihuacai168
Copy link
Owner

No description provided.

- Replace UV installation with standard pip approach in main Dockerfile
- Remove pyproject.toml dependency and use requirements.txt instead
- Fix multi-arch Docker build issues caused by UV not being available
- Simplify container startup command to use direct uvicorn call
- This resolves the 'uv: not found' error in CI Docker builds
… and workflows

- Update all Dockerfiles to use UV for dependency management with proper PATH setup
- Remove requirements.txt in favor of pyproject.toml across entire project
- Update GitHub Actions workflows to install and use UV
- Modify CI cache keys to use pyproject.toml instead of requirements.txt
- Update Makefile and README to use UV commands
- Disable legacy dependency-update workflow (replaced by UV's built-in features)
- Ensure all Docker containers use UV venv for consistent Python environments

This completes the full migration from pip to UV package manager while fixing
the Docker build issues by properly installing UV in all container environments.
…tion

- Fix UV installation in Dockerfile.ci and Dockerfile.pip by using full paths
- Update all GitHub Actions workflows to use UV instead of pip
- Update documentation files (TESTING.md, GITHUB_ACTIONS.md) to reference UV
- Remove all references to requirements.txt across the codebase
- Ensure all Docker builds work correctly with UV package manager

This completes the migration from pip to UV for faster, more reliable builds.
- Use proper cargo env sourcing instead of manual PATH export
- Add /root/.local/bin to PATH for UV installation
- Remove full path references now that PATH is properly set
- Use multi-stage build with ghcr.io/astral-sh/uv:latest
- Eliminate manual UV installation and PATH issues
- Use UV sync for proper dependency management
- Optimize build caching with mount cache
- Cleaner separation between build and runtime stages
Add --no-build flag to avoid README.md validation during Docker build
- Remove complex multi-stage build that was causing issues
- Install UV via pip which is simpler and more reliable
- Keep all UV benefits without Docker complexity
Comment out readme field to avoid Docker build failures when README.md is missing
Use 'uv pip install -e .[test]' to install all test dependencies including pytest
- Create appuser before installing dependencies
- Install UV packages as appuser so they're accessible
- Fix pytest availability in CI container
Remove user switching in CI Dockerfile for simplicity and reliability
Point docker-compose.ci.yml to correct Dockerfile for CI testing
- Update test dependencies in pyproject.toml to match current versions
- Remove requirements-dev.txt in favor of pyproject.toml optional dependencies
- Fix pytest version conflict that prevented CI test installation
…nd install pytest

- Migrate Dockerfile.ci to multi-stage build using official UV image
- Add test dependencies installation with --extra test flag
- Include detailed logging for pytest verification during build
- Update CI test script with comprehensive debugging output
- Add fallback pytest installation if not found in container
- Set proper PATH environment variable for .venv/bin access
- Update uv.lock file using official PyPI to resolve download errors
- Add gcc and python3-dev as build dependencies for psutil compilation
- Implement fallback strategy for uv sync commands (locked -> unlocked)
- Copy lock file before dependency installation to avoid mount issues
- Update pytest from v7.4.4 to v8.4.1 and add pytest-mock

These changes should resolve the pytest availability issue in CI.
…ronments

- Replace python -m pip with uv pip in Dockerfile.ci verification steps
- Update CI script to use uv pip list instead of python -m pip list
- Fix manual pytest installation to use uv pip install instead of pip install
- Resolves "No module named pip" error in uv-managed virtual environments

UV virtual environments don't include pip by default, but uv provides pip commands.
- Copy /bin/uv from builder stage to final runtime stage
- Resolves "uv: executable file not found" error in CI scripts
- Enables uv pip commands to work in the running container
- All CI tests now pass successfully

The uv binary is needed in runtime for package management operations
used in CI debugging and potential package installation.
- Update Dockerfile.pip to use multi-stage build with official UV image
- Add proper PATH environment variable for .venv/bin access
- Include build dependencies (gcc, python3-dev) for native extensions
- Copy uv binary to runtime stage for package management
- Update celery health check to use explicit .venv/bin path
- Use direct python command instead of bash activation
- Upgrade to Python 3.12 for consistency with CI

This resolves "celery: executable file not found" errors in production
by ensuring the virtual environment is properly accessible.
- Replace main Dockerfile with production-ready UV-based version
- Update docker-compose.yml to use main Dockerfile instead of Dockerfile.pip
- Maintain Dockerfile.ci for testing purposes with test dependencies
- Remove confusion between Dockerfile.pip and main Dockerfile

This creates a cleaner project structure:
- Dockerfile: Main production build (UV-based, multi-stage)
- Dockerfile.ci: CI/testing specific (includes test deps + pytest logging)

All production services (app, celery-worker, celery-beat, flower) now use
the unified main Dockerfile, simplifying maintenance and reducing duplication.
- Remove redundant standalone code-quality.yml workflow
- Enhance CI/CD pipeline with comprehensive quality checks:
  * Add pylint and radon complexity analysis
  * Upgrade to Python 3.12 for consistency
  * Generate detailed reports with artifact uploads
  * Include pip-audit for additional security scanning
- Update .github/workflows/README.md:
  * Remove references to deleted code-quality.yml
  * Document modern UV dependency management features
  * Update workflow descriptions and triggers
  * Add troubleshooting for UV-specific issues
  * Include multi-stage Docker build information

This consolidation reduces maintenance overhead while providing
more comprehensive quality checks in a single integrated pipeline.
All code quality, security scanning, and complexity analysis
is now handled within the main CI/CD workflow.
@lihuacai168 lihuacai168 merged commit 7611414 into master Jun 28, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants