-
-
Notifications
You must be signed in to change notification settings - Fork 28
Description
Is your feature request related to a problem? Please describe.
Previously, we relied on setup-*.py files to publish individual rfswarm components to PyPi. This method is now considered as outdated. The modern standard format to describe package metadata and publish them to PyPi is pyproject.toml file.
https://peps.python.org/pep-0621/
https://python-poetry.org/docs/repositories/#publishable-repositories
We can implement multiple Poetry pyproject.toml files for each rfswarm components. They will share the same version, author, readme file, etc. but will contain different dependencies, descriptions, etc.. The project dependencies are handled by poetry automatically based on the defined Python version criteria.
https://python-poetry.org/docs/pyproject/
Additionally, Poetry offers plenty of tools for advanced package management (such as: dependency grouping). Because of that we can use this tool in the regression tests environment instead of using three different requirements.txt files for each component tests. The current tests environment has already complicated dependency tree and as we already have experienced it can led to unwanted instability. In pyproject.toml file we can specify current python versions scope and poetry will define dependencies version that are the most compatible with each other in predefined python versions bounds that we are currently supporting.
Since the dependency versions are strictly specified by Poetry we will install the most suitable versions for our current environment requirements instead of downloading the most recent ones as we mostly were doing right now.
https://python-poetry.org/docs/managing-dependencies/
Describe the solution you'd like
All of the possible dependency fields and package publish processes are handled by Poetry.