Update dependencies and modernize dependency management#50
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates the project’s Python dependency management (moving from Poetry to uv), bumps dependency versions for Python 3.13, and modernizes local/dev workflows (Docker, Compose, bootstrap tooling) to simplify setup and address dependency/security alerts.
Changes:
- Migrates dependency management from Poetry to
uv(pyproject.toml+uv.lock) and removespoetry.lock. - Updates container/build tooling (Dockerfile targets, GitHub Actions) to use
uvfor installs and test runs. - Adds local MySQL bootstrap workflow via Docker Compose plus a
bootstrap_db.pyseeding script and sample CSV.
Reviewed changes
Copilot reviewed 14 out of 17 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Moves to PEP 621 project metadata and uv dependency groups. |
uv.lock |
New lockfile capturing resolved dependency set for Python 3.13. |
Dockerfile |
Reworks multi-stage build to install/run via uv (test + production targets). |
docker-compose.yml |
Adds local MySQL + bootstrap job and updates API service wiring. |
bootstrap_db.py |
New script to seed a DB from tests/sample_data.csv. |
tests/sample_data.csv |
Seed data used by bootstrap script. |
gunicorn_config.py |
Adds defaults + logs to stdout/stderr for container friendliness. |
app/config.py |
Sets LOG_LEVEL default and normalizes casing. |
app/routes.py |
Adds Bandit suppression annotation on Markup(...) return path. |
README.md |
Documents uv usage and new local + Docker workflows. |
env.example |
Example environment variable template. |
.github/workflows/code-analysis.yml |
Switches analysis workflow from Poetry to uv. |
.github/workflows/compatability-matrix.yml |
Switches compatibility workflow from Poetry to uv. |
.dockerignore |
Expands ignore list for uv/pytest/ruff caches and local data. |
.gitignore |
Adds .data/ ignore and removes Poetry-specific comments. |
.python-version |
Removes pinned local Python version file. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This comment was marked as resolved.
This comment was marked as resolved.
RvanB
left a comment
There was a problem hiding this comment.
This looks very good! Just not sure if we planned on using the compatibility matrix workflows or if they were an experiment that can be removed. I'll defer to @cscollett .
|
Great, yeah, my read on them was they weren't relevant if we were pinning versions, but happy to restore them if they were serving another purpose! |
What's in this PR?
This PR updates Python dependencies and lightly modernizes the build process to align better with
zephir-contrib-weband Docker best practices. This should also address all open Dependabot alerts.Dependency upgrades
uvuvandDocker.Other changes
README.mdDockerfile(cleaner stages, run tests with CMD rather than RUN)bootstrap_db.pyscript that creates tables and populates them with test data (extracted from the existing sqlite test database).venvfrom Vulture scansenv.templateHow to test
Related tickets