Skip to content

#10 Conversion to UV build system, Python 3.13, Mise, Devcont#11

Merged
wrigjl merged 1 commit into
mainfrom
feature/10-uv-devcontainer-and-mise
Jul 9, 2026
Merged

#10 Conversion to UV build system, Python 3.13, Mise, Devcont#11
wrigjl merged 1 commit into
mainfrom
feature/10-uv-devcontainer-and-mise

Conversation

@ryancraigdavis

Copy link
Copy Markdown

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:

  • Introduced a pyproject.toml with project metadata, dependencies, dev dependencies, and build configuration for uv's build backend, replacing requirements.txt and requirements-dev.txt. Python 3.13 is now required. [1] [2] [3]
  • Switched dependency management in CI and deployment to use uv exclusively, removing pip and virtualenv usage. Dependabot is configured to track uv dependencies. [1] [2] [3]

Source Code Reorganization:

  • Moved all application code into a src/quantumsolver/ package, updating imports accordingly and removing the old app/ and top-level module files. [1] [2] [3] [4] [5] [6] [7] [8]
  • Updated references throughout the codebase and deployment scripts to use the new package/module paths (e.g., quantumsolver.app:app for Gunicorn). [1] [2]

Docker and Deployment:

  • Updated the Dockerfile to use uv's official Python 3.13 image, build a wheel, and install it system-wide, following best practices for modern Python packaging.
  • Adjusted deployment scripts to use uv sync for dependency management and clarified how runtime directories are provisioned. [1] [2]

Documentation and Developer Experience:

  • Revised README.md to document the new workflow with uv, clarify development and production server usage, and update instructions for running, testing, and linting the project.
  • Added a .dockerignore to 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

@ryancraigdavis ryancraigdavis requested review from a team and wrigjl July 7, 2026 03:51
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@wrigjl

wrigjl commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

I'm totally down for this, but you need to do the CLA first.

@wrigjl wrigjl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does UV only work with python 3.13?

Comment thread .github/workflows/main.yaml Outdated
with:
python-version: ${{ matrix.python-version }}
version: "0.10.9"
python-version: "3.13"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can convert it to 3.12, and keep this.

Comment thread README.md Outdated

**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/).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, so why are we forcing python 3.13? It is what we ship in the docker container, true.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
@ryancraigdavis ryancraigdavis force-pushed the feature/10-uv-devcontainer-and-mise branch from 0dce685 to b83bc27 Compare July 9, 2026 04:19
@wrigjl

wrigjl commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

@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 =)

@wrigjl wrigjl merged commit 2f2d7e0 into main Jul 9, 2026
5 of 6 checks passed
@wrigjl wrigjl deleted the feature/10-uv-devcontainer-and-mise branch July 9, 2026 17:14
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.

UV dependency management with devcontainer and Mise for development

3 participants