I am trying to build good habits when developing my python applications and organize them as if they will always be used by others in the future. One crucial part of that is the packaging aspect.
I have read a certain amount of posts, discussions and the pep 517/518. However, I still don't fully understand how to properly organize my files for packaging.
I have decided to follow the setup.cfg path instead of the pyproject.toml path. That thing is clear. I shall identify the runtime necessary package in the setup.cfg.
I am also using virtualenv and I understood that development related package (black, pytest,...) should be defined in a separate file from setup.cfg, usually one called requirements.txt. One thing that is not clear: should setup.cfg be a subset of requirements.txt and therefore repeat some information? This seems bad practice and will at some point definitely become disconnected and hard to maintain.
I have tried to find an answer to that question. I found this article but I don't understand how adding this
--index-url https://pypi.python.org/simple/
-e .
in the requirements.txt helps avoid the issue or even handle the development dependencies.
I am even more lost when he presents the following possibility:
--index-url https://pypi.python.org/simple/
-e https://github.com/foo/bar.git#egg=bar
-e .
What does this achieve?
Finally, is the setup.cfg way compatible with the building of wheels package?