#10 Conversion to UV build system, Python 3.13, Mise, Devcont#11
Conversation
|
|
|
I'm totally down for this, but you need to do the CLA first. |
wrigjl
left a comment
There was a problem hiding this comment.
Does UV only work with python 3.13?
| with: | ||
| python-version: ${{ matrix.python-version }} | ||
| version: "0.10.9" | ||
| python-version: "3.13" |
There was a problem hiding this comment.
One thing we lose by doing this is the matrix build (testing both 3.12 and 3.13). I'm not sure I'm ok with losing that.
There was a problem hiding this comment.
I can convert it to 3.12, and keep this.
|
|
||
| **Python 3.10–3.13 is required.** | ||
| **Python 3.13 is required.** Dependencies and the environment are managed with | ||
| [uv](https://docs.astral.sh/uv/). |
There was a problem hiding this comment.
Ok, so why are we forcing python 3.13? It is what we ship in the docker container, true.
There was a problem hiding this comment.
not necessarily forcing 3.13, but i can convert it to 3.12. But yes, everything is shipping with all of the dependencies. One of the nice things about UV is that you don't have to have python installed, UV installs whatever version of python you need to run the project.
There was a problem hiding this comment.
not necessarily forcing 3.13, but i can convert it to 3.12. But yes, everything is shipping with all of the dependencies. One of the nice things about UV is that you don't have to have python installed, UV installs whatever version of python you need to run the project.
Making it 3.13 isn't the point. The point it that I used to be able to say that it was tested with two versions (3.12 and 3.13) and that's not true any more. By removing the matrix tests, it's forced down to a single version. Ultimately, we're going to -ship- one version in the docker to ghcr, but I can't say anything about compatibility with other python versions unless they are tested.
There was a problem hiding this comment.
Understood, I’ll add the matrix tests back in this evening
Docker conversion to building a wheel for testing and deployment Python 3.13 and UV for dependency management and wheel building DevContainer created for local development and future workflow deploy Mise for future proofing in the Devcontainer
0dce685 to
b83bc27
Compare
|
@ryancraigdavis I think the only thing that's left is the CLA. Thanks for all of the work! I'm anxious to play with uv now =) |
This pull request modernizes the project's Python packaging, dependency management, and development workflow by migrating to a PEP 517/518-compliant structure using uv, and reorganizes the source code into a proper package. It also updates CI/CD, Docker, and deployment scripts to match the new structure. The most important changes are:
Packaging and Dependency Management:
pyproject.tomlwith project metadata, dependencies, dev dependencies, and build configuration for uv's build backend, replacingrequirements.txtandrequirements-dev.txt. Python 3.13 is now required. [1] [2] [3]Source Code Reorganization:
src/quantumsolver/package, updating imports accordingly and removing the oldapp/and top-level module files. [1] [2] [3] [4] [5] [6] [7] [8]quantumsolver.app:appfor Gunicorn). [1] [2]Docker and Deployment:
Dockerfileto use uv's official Python 3.13 image, build a wheel, and install it system-wide, following best practices for modern Python packaging.uv syncfor dependency management and clarified how runtime directories are provisioned. [1] [2]Documentation and Developer Experience:
README.mdto document the new workflow with uv, clarify development and production server usage, and update instructions for running, testing, and linting the project..dockerignoreto exclude development and build artifacts from Docker builds.These changes bring the project up to date with modern Python packaging standards, simplify development and deployment, and make the codebase easier to maintain.Docker conversion to building a wheel for testing and deployment Python 3.13 and UV for dependency management and wheel building DevContainer created for local development and future workflow deploy Mise for future proofing in the Devcontainer