Adyen / Adyen/adyen-python-api-library

chore: consolidate package metadata into pyproject.toml (PEP 621)

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

Nobody has claimed this yet.

do not stale
Dominant language
Python
Stars
68
Forks
49
Avg merge
2h 3m
Merged PRs (30d)
2

Description

Context

Raised as a follow-up from PR #468.

Currently, package metadata (version, dependencies, etc.) is duplicated across setup.py and pyproject.toml, which led to the inconsistency fixed in PR #468 where pydantic>=2.0 was missing from setup.py.

Proposed Change

Consolidate all package metadata into pyproject.toml as the single source of truth, following modern Python packaging standards (PEP 621).

Steps:

  1. Move package discovery logic into pyproject.toml via a [tool.setuptools.packages.find] section
  2. Simplify setup.py to just from setuptools import setup; setup()
  3. Update build-system.requires in pyproject.toml to setuptools>=61.0.0

Example configuration:

[build-system]
requires = ["setuptools>=61.0.0", "wheel"]

[tool.setuptools.packages.find]
include = ["Adyen*"]
exclude = ["tests", "tests.*"]

Benefit

Prevents metadata from becoming out of sync in the future.

Contributor guide

Open the contributing guide

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 comparing the metadata and package discovery in setup.py and pyproject.toml, then review the proposed [tool.setuptools.packages.find] and build-system changes. Done means pyproject.toml is the single source of package metadata, setup.py only delegates to setuptools, and the Adyen package remains included while tests are excluded.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.