id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 27682 Add more dependencies to extras_require (eg sqlparse, PyYAML) Ed Morley Ed Morley "There are several optional Django features that require third-party Python packages that (intentionally) aren't specified as `install_requires` dependencies in setup.py, since not everyone would want them installed. For example: * PyYAML for the yaml serializer * sqlparse for multi-line SQL statements for migrations `RunSQL` * Database drivers Adding these as `extras_require` [*] entries has the following advantages: 1) The reason for the packages is now self-documenting. eg: {{{ Django[sqlparse,yaml] }}} ...instead of: {{{ Django # Required by Django's migration system for RunSQL commands. sqlparse # Required by Django's YAML serializer. PyYAML }}} 2) Django could in the future manage the preferred package for a particular feature in cases where there is a choice (eg mysqlclient vs MySQL-python). Users can still override by not using the `extras_require` alias (or there could even be multiple aliases). 3) If a new major version of Django stops requiring a particular `extras_require` dependency, users will know to remove it from their requirements files, since pip will warn there is no such extra listed. [*] http://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies" Cleanup/optimization closed Packaging dev Normal duplicate cdosborn@… Someday/Maybe 0 0 0 0 0 0