Made DeprecationDisplayTest more robust
Oops.
Fixed #21701 -- Improved testing doc titles and added testing/tools.txt.

Thanks cjerdonek for the suggestion.
Turned django.db.models.app_cache_ready back into a method.

Thanks Anssi for noticing this mistake in a refactoring.
Fleshed out release notes for app loading.

Fixed #21715.
Fixed #19395 -- Added a simple example logging config.

Thanks ken.nelson at maclaren.com.
Small style cleanup.
Fixed #21716 -- Only passed arguments supported by ogrinspect

Thanks Marco Badan for the report.
Removed an obsolete unicity check.

It doesn't account for app configs.

Refs #21679.
Checked unicity of app config names when populating the app registry.

This check will miss duplicates until the check for duplicate labels is
added.

Refs #21679.
Made it possible to change an application's label in its configuration.

Fixed #21683.
Enforced unicity of app labels.

Fixed #21679.
Renamed AppConfig.setup to ready.

Thanks Jannis and Marc for the feedback.

Fixed #21717.
Fixed #21714 -- Moved logging configuration to global setup()

Thanks Aymeric Augustin for the report and the review.
Fixed #21484 -- Documented that SQL logging does not include "framework level" queries.
Fixed #21581 -- Fixed a number of issues with collectstatic.

When STATIC_ROOT wasn't set, collectstatic --clear would delete
every files within the current directory and its descendants.

This patch makes the following changes:

Prevent collectstatic from running if STATIC_ROOT isn't set.

Fixed an issue that prevented collectstatic from displaying the
destination directory.

Changed the warning header to notify when the command is run
in dry-run mode.
Django sees more than 1mm hits per hour

Disqus regularly does 40-50k/s
Properly assigned app_label to GIS test models.

Used abstract inheritance to cut down on code repetition.
Fixed a few issues in previous commit.
Readded field unadvertantly removed in fedfd5030