Description

Simply deprecating and removing the runserver management command entirely may not be desirable. As Loic noted on IRC "even if we use gunicorn, we still need some special handling for the dev server, we run validate() and now there are some migrations checks going as well. So would we really deprecate runserver? rather than just change the underlying webserver it wraps?"

Michael Manfre also expressed concern the gunicorn does not currently work on Windows.

Aymeric suggested: "optional support for gunicorn could be an interesting start."

I envisioned a more transparent integration. I was thinking that if gunicorn is installed, then runserver would use that automatically (passing data to --reload and --bind from the current runserver options). You can always use the full gunicorn integration if you need the other options. Do you think that approach would be too limiting from a user perspective?

I don't see a need for an option to disable it (if you don't have gunicorn installed, it's disabled anyway, right?)

By the way, it seems that ​Windows support is not too far off for gunicorn so let's wait to merge this until that's done. Then we can see if this is comprehensive enough to deprecate the non-gunicorn version.