Change record status: 
Project: 
Introduced in branch: 
9.3.x
Introduced in version: 
9.3.0
Description: 

Info files can now convey the stability of a module using the new lifecycle and lifecycle_link keys.

Supported values for lifecycle are as follows:

experimental
Something new and not finalized. Warnings if you try to install them, but it works.
stable
The default. Stable Drupal extensions with no special warnings or behavior.
deprecated
Something on the way out. You can still install it, but there are warnings if it's installed on your site.
obsolete
Really gone. You should uninstall it. If it's already installed, you see warnings. New installations are prohibited.

For deprecated and obsolete lifecycle states, a lifecycle_link is required which specifies a URL to the documentation to display to users. This helps orient site builders as to what do.

Example usage

name: Some core module
type: module
description: '...'
package: Core
version: VERSION
core: 9.x.x
hidden: true
lifecycle: [experimental|stable|deprecated|obsolete] 
lifecycle_link: 'https://www.drupal.org/about/core/policies/core-change-policies/deprecated-and-obsolete-modules-and-themes#s-entity-reference'

New exception

\Drupal\Core\Extension\Exception\ObsoleteExtensionException is thrown when someone tries to install an 'obsolete' extension

New constants

\Drupal\Core\Extension\ExtensionStatus final class has constants to enumerate the valid status values.

Impacts: 
Site builders, administrators, editors
Module developers
Themers
Distribution developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done