Skip to content

Commit

Permalink
Merge pull request #23 from ricardogsilva/5-decide-on-package-manager
Browse files Browse the repository at this point in the history
Add ADR referring to the usage of poetry for python dependency management
  • Loading branch information
francbartoli authored Feb 20, 2024
2 parents 49bdd57 + 200a0d1 commit c0a9f68
Showing 1 changed file with 48 additions and 0 deletions.
48 changes: 48 additions & 0 deletions docs/decisions/0001-use-poetry-for-python-dependency-management.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Use Poetry for Python dependency management

## Context and Problem Statement

We want to use a tool to both manage project Python dependencies and packaging. Given the number of alternatives that
currently exist and the project requirements, which would be an appropriate choice?


## Considered Options

- [poetry](https://python-poetry.org/)
- [pdm](https://pdm-project.org/latest/)
- [pipenv](https://pipenv.pypa.io/en/latest/)
- [rye](https://rye-up.com/)


## Decision Outcome

Chosen option: "poetry", because it meets the needs of the project and introduces minimal friction


### Consequences

- Good, because it is already known by the project development team
- Good, because it covers all relevant use cases related to development and deployment for the project:
- uses pinned versions for dependencies
- allows defining user scripts, for building custom commands
- specify development-only dependencies, which can be kept off the docker image
- allows installing only dependencies if needed, which is good for preserving the docker cache


### pdm

- Good, because it covers project use cases
- Bad, because the development team does not have experience using it


### pipenv

- Good, because it covers project use cases
- Bad, because the development team does not have experience using it


### rye

- Good, because it covers project use cases
- Bad, because the development team does not have experience using it
- Bad, because it is a very new tool, which may not be as stable as desired for the current project

0 comments on commit c0a9f68

Please sign in to comment.