Opened 12 years ago

Last modified 11 years ago

#19737 closed Cleanup/optimization

Deprecate and then remove "shell" management command — at Version 1

Reported by: Carl Meyer Owned by: nobody
Component: Core (Management commands) Version: 1.4
Severity: Normal Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Carl Meyer)

The only benefit of the "shell" management command is that it saves you from having to set the DJANGO_SETTINGS_MODULE env var, and instead automatically use the one set in manage.py. This is a pretty minor benefit; it's not hard to use your favorite technique (alias, script, whatever) to reduce the number of characters you need to type to run DJANGO_SETTINGS_MODULE=someproj.settings python, with the added advantage that you can easily use any python REPL you like without having to patch "shell" to explicitly support it.

The downside of having "shell" in Django is that it's a non-trivial maintenance burden to decide which REPLs to support, add support for them, and then update/fix that support through the years. We've already seen a steady stream of tickets related to various edge-cases in IPython startup, not to mention the major API changes in recent IPython versions. There's no reason for Django to have to be maintaining code related to IPython.

Change History (1)

comment:1 by Carl Meyer, 12 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top