I would emphasize that setup.py is the way to go.  Requirements.txt was only 
ever intended to be a way for a developer to provide a dependency chain so that 
other developers could duplicate the environment if necessary.  Today's common 
usage was never originally intended.

The `extras_require` that you have discovered is an excellent way of 
segregating non-installation-required dependencies.  On some of my projects, I 
have built up the following "standard" extras:

    * all - this is programmatically defined as every dependency including the 
package itself
    * dev - this is programmatically defined as every dependency excluding the 
packge itself
    * test - all testing dependencies  (i.e pytest, coverage, etc.)
    * docs - all documentation dependences (i.e. sphinx)

For onboarding, I typically just then tell someone to use `-e .[all]` for 
setting up a development environment.
--
Distutils-SIG mailing list
distutils-sig@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/JVNSAKVYP2VASPP66M4TCLQVIDMTH5P2/

Reply via email to