mollie / mollie/mollie-api-python

Upgrade packaging setup

Open
#275 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
127
Forks
53
PR merge metrics
No merged PRs in 30d

Description

The current setup for packaging is a bit dated, we use setup.py and don't use nide features like extras etc. What we could achieve:

  • Use pyproject.toml for configuring the whole package
  • Use extras to install optional packages: pip install mollie-api-python[examples] would install flask, mollie-api-python[test] would install pytest etc. This is better than using separate requirement.txt files, or write things in documentation.
  • We could setup minimum and maximum versions for dependencies, ensuring that we automatically upgrade a dependency for which a vulnerability was found to a newer version (or trigger a conflict for the vulnerable version).
  • Minimum/maximum version specifiers for dependencies can also be used by @dependabot to inform us automatically about vulnerabilities we're not aware of.
  • Specify supported python versions for the package, helping our users to use the correct package for their environment.

Reference docs: https://packaging.python.org/en/latest/tutorials/packaging-projects/

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing setup.py and the referenced Python packaging guide, then map the current requirement files and supported Python versions. The work is done when packaging is configured through pyproject.toml with optional extras, dependency version bounds, and declared Python support, while the package can still be installed successfully.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.