Fixed #19737 -- Deprecated the shell management command.
I think the release notes for this should explain the pain in keeping it - if we claim this is "all it does", then why not keep it?
here's the text from the ticket, would you edit it at all?
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 and fix that support through the years. We've 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.
I might say something along the lines of:
Historically, Django has aimed to maintain compatibility with the various python REPLs. There have been a number of awkward edge cases, in particular with IPython, and the maintenance burden is much greater than the benefit offered.
Personally, I can see the argument for deprecating it, but you are asking basically every django user to change something they probably use every single day, not to mention is exceedingly well documented in tutorials everywhere. IMO, if the maintenance is the problem, drop iPython/bPython support and just leave a simple shell command. This may be worth a discussion on -dev I think. It's not a deprecation to be taken lightly.
I think the removal of the shell hurts people who work on many different Django applications. At the moment you can change into any project and run ./manage.py shell, and you'll get an interactive shell relevant to that project. With the shell removed, you will have to fiddle around finding the application name and setting the environment variable before being able to run the Python interpreter and get some work done.
I imagine that if you only have 1 project to work on moving the process into a singular command is convenient, but for those of us with multiple, it's going to be a lot of hassle for little benefit (from the end-user's perspective, I realise the contributors are annoyed with tickets being created surrounding it).
Yes, it's definately a handy tool i use it every day to fast check models and settings on different dev, test and production environments.
For sure it can be replaced by scripts and such, but i find it very convenient imho.
Closed ticket as "won't fix."