Skip to content

Conversation

@dusktreader
Copy link

Summary:
This commit converts the project to use uv for project management. This includes management of dependencies, virtual environments, and python versions.

Migrating to uv required:

  • Updating the pyproject.toml file for uv
  • Migrating dependencies from the requirements folder to pyproject.toml
  • Moving the inbox folder into a src folder to meet best practices
  • Adding a uv lockfile
  • Updating Dockerfile to use uv to build the virtual environment
  • Removing the /src entry in .gitignore
  • Minor changes to source files to support the move to /src
  • Updates to the github actions to use uv
  • Updates to the dependabot config for github to use uv

This change also introduces some changes to make it easier to run the app with docker compose. These changes included:

  • Creating a simplified Dockerfile-dev to use for non-prod deployments
  • Updating docker-compose.yml including a new service just for tests
  • Adding a healthcheck to the mysql app that can be used by tests and app
  • Creating new config and secrets files for docker compose in /etc
  • Allowing the app to run as root for non-prod deployments

Finally, some other work was done including:

  • Significant updates to README including docker compose guide
  • Migrating pytest.ini to pyproject.toml
  • Removing unneeded setup.cfg
  • Dropping typing_extensions dependency; ParamSpec is available in 3.12

Test Plan:
The changes were tested by running unit tests and verifying that I was able to:

  • Bring up the app in docker-compose
  • Initialize the database
  • Add my own user
  • Start the API
  • Verify that my user is present in the API

Reviewers:

This commit converts the project to use uv for project management. This
includes management of dependencies, virtual environments, and python
versions.

Migrating to uv required:

* Updating the pyproject.toml file for uv
* Migrating dependencies from the requirements folder to pyproject.toml
* Moving the inbox folder into a src folder to meet best practices
* Adding a uv lockfile
* Updating Dockerfile to use uv to build the virtual environment
* Removing the /src entry in .gitignore
* Minor changes to source files to support the move to /src
* Updates to the github actions to use uv
* Updates to the dependabot config for github to use uv

This change also introduces some changes to make it easier to run the
app with docker compose. These changes included:

* Creating a simplified Dockerfile-dev to use for non-prod deployments
* Updating docker-compose.yml including a new service just for tests
* Adding a healthcheck to the mysql app that can be used by tests and app
* Creating new config and secrets files for docker compose in /etc
* Allowing the app to run as root for non-prod deployments

Finally, some other work was done including:

* Significant updates to README including docker compose guide
* Migrating pytest.ini to pyproject.toml
* Removing unneeded setup.cfg
* Dropping typing_extensions dependency; ParamSpec is available in 3.12
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.

1 participant