Closed YannickJadoul closed 1 year ago
Hi @YannickJadoul yes, if you have time go ahead isolate the development dependencies in a dev
extras_require
. It's time to go back to allowing a minimal-dependency install for projects that need / want it. Nothing presumptive about the recommendation; you make a good argument to allow other projects to treat Abjad as something close to a library.
I have noticed I'm not the first one to bring it up, but
install_requires
contains a number of dependencies used for the development of abjad (i.e., Sphinx and extensions, pytest and extensions, isort, black, ...), but unnecessary to simply use the library.I've found this being addressed and solved in #468, but it seems it was reverted again in #1295 and 3b6d36fcbb0822a6c7c621cee9e4f20b2b2a7c0e. So I was wondering if there was any explicit reason these changes got reverted over the years?
I'm bringing this up because we were considering to depend on abjad for a new Python library we're developing, but then I suddenly noticed my development tools being updated when installing abjad. A few reasons for that:
install_requires
seems just by its name to be the wrong location for this, as these are not runtime dependencies (setuptools says: "where a package declares its core dependencies, without which it won’t be able to run.")? It seems Python packages typically userequirements.txt
orextras_require
(see for example here or here)So, TL;DR: would you accept a PR (I'm happy to create it) that would take the non-runtime, development dependencies out of
setup.py
'sinstall_requires
and intorequirements.txt
or back into adev
extras_require
? Without trying to arrogantly tell you how your Python project should be organized (people have different ways of working and you're doing all the work and making the library freely available, after all!), it would be nice to be able to install and use abjad without installing or affecting the versions of my development tools.