Conversation
| RUN python -m pip install uv --root-user-action=ignore | ||
| RUN uv sync --no-default-groups --extra server --frozen | ||
| ENV PATH="/cellpack/.venv/bin:$PATH" |
There was a problem hiding this comment.
initially I used pip install ".[server]", but that resolves fresh from PyPI on each build which means rebuilds could pick up different versions. Switching to uv sync keeps the install pinned to uv.lock, giving us more consistent builds.
There was a problem hiding this comment.
just tried running this locally and it worked perfectly!
There was a problem hiding this comment.
Pull request overview
This PR removes legacy, autogenerated per-platform requirements.txt artifacts in favor of using uv.lock/uv sync for pinned dependency installation (notably for the ECS Docker image), and formalizes the web server dependency as an optional extra.
Changes:
- Deleted per-platform
requirements.txtfiles and removed the GitHub workflow that generated them. - Added a
serveroptional dependency (aiohttp) and updateduv.lockaccordingly. - Updated
docker/Dockerfile.ecsto install dependencies viauv sync(frozen + pinned) and adjusted docs to no longer reference the removed requirements files.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
uv.lock |
Adds aiohttp (and transitive deps) plus server extra metadata to keep installs pinned via uv sync. |
pyproject.toml |
Introduces [project.optional-dependencies].server and removes requirements from build source include. |
docker/Dockerfile.ecs |
Switches ECS image dependency installation from requirements+pip to uv sync --frozen --extra server. |
docs/CONTRIBUTING.md |
Removes the requirements install step from contributor setup instructions. |
README.md |
Updates install steps to rely on pyproject.toml/pip install -e . rather than per-OS requirements files. |
.github/workflows/make-requirements.yml |
Removes the workflow that exported and opened PRs for requirements files. |
requirements/linux/requirements.txt |
Deleted (previously autogenerated export). |
requirements/macos/requirements.txt |
Deleted (previously autogenerated export). |
requirements/windows/requirements.txt |
Deleted (previously autogenerated export). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| cd cellpack/ | ||
| pip install -r requirements/linux/requirements.txt | ||
| pip install -e .[dev] | ||
| uv sync |
There was a problem hiding this comment.
to address copilot's review comment(slightly out of scope): pip install -e .[dev] has been silently failing on main since the dev lives in [dependency-groups] and pip's [extra] syntax can't read. Switched the contributor setup to use uv sync instead.


Problem
closes #459
Solution
requirements.txtfiles and the workflow that generates themDockerfile.ecsto useuv syncagainstuv.lock, so dependency versions stay pinned[dependency-groups].server = ["aiohttp"]group to declare the web-server dependencyType of change
Steps to Verify:
uv sync --group server, it should resolve and installaiohttpalong with the rest of the deps fromuv.lockdocker build -f docker/Dockerfile.ecs -t cellpack-ecs, the image should builddocker run -p 80:80 cellpack-ecsthen go tohttp://0.0.0.0:80/hello, should returnHello from the cellPACK server