Problem/Motivation

With both core and contrib modules, stability can vary and a site builders tolerance or requirements can vary about the minimum allowed stability.

For example, some organizations don't allow anther other than stable modules in production, while others are fine with being on the bleeding edge with alpha quality modules.

With core, the experimental module process results in non-stable code being in branches, and contrib stability can vary wildly.

Right now, the stability is manually enforced by the site builder.

Proposed resolution

1. Introduce a new $setting:

$settings['min_module_stability'] = 'stable'; // or 'beta', 'alpha', 'dev'.

For BC, default it to 'dev'.

2. Extended the .info.yml schema to add an optional stability key; mark all core current non-experimental module as 'stable' and experiementals to their current state.

Remaining tasks

Discuss edge cases and impact on contrib.

User interface changes

API changes

Data model changes

CommentFileSizeAuthor
#3 experimental-notices.png55.59 KBSKAUGHT
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

mpdonadio created an issue. See original summary.

catch’s picture

We can (have to) default this to dev, but we could also potentially set it to stable or beta for new installs by writing it to settings.php in the installer.

SKAUGHT’s picture

FileSize
55.59 KB

#2870295: Concerns about beta and RC contrib without security coverage

Is this not suppose to be for the notice you get while activation modules, not actually 'allowed to install'? Also the (notice) message seen should reflect that 'min_module_stability' setting.

issue title should reworked. "..allowed before Activation Notice would be shown"

mpdonadio’s picture

#3, this idea is a little different. With this setting, this would prevent modules from ever showing up in the list. So, if it is set to 'stable', you wouldn't see the experimentals in the UI at all and you couldn't enable them. This would be similar to how the $settings['extension_discovery_scan_tests'] works; that defaults to FALSE, but if I set it to TRUE, I can install the core test modules.

pfrenssen’s picture

What is the intended use case? Site builders / site owners that can log in to a running Drupal site with an account that has permissions to enable modules, but having no access to the file system?

That seems like a very limited use case, because if you can control the setting, then you can also control which modules are available on the website.

So in practice this would boil down to being a setting that will allow or prevent users from enabling the core experimental modules. Or maybe some optional alpha / beta modules that are included in distributions but not enabled by default.

I think this is not going to be useful for a large number of users. If you don't trust your site builders in their ability to enable modules they should not enable, then either don't give them the permission to enable modules, or simply make sure that disallowed modules are not present in the codebase.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.6.x-dev » 8.7.x-dev

Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.7.x-dev » 8.8.x-dev

Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.1.x-dev

Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 9.1.x-dev » 9.2.x-dev

Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 10.1.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.