When should the lifecycle switch from experimental to stable?

Created on 22 April 2024, about 2 months ago
Updated 23 April 2024, about 2 months ago

A new module under development will often have its lifecycle property in the info.yml file set to experimental. When it is in full release, it will be set to stable. I have not been able to find any documentation which clearly specifies when it should switch from experimental to stable.

Should it still be experimental when it is a release candidate, switching only for the full release? My feeling is that it should switch to stable when the first alpha is released. This is because, while it is not a full release, neither is it still experimental. I don't think stable needs to imply a full release.

At the practical level, there is a warning on the status page when it is set to experimental. If something is an alpha, I don't think it warrants that sort of warning. If it does, that warning should appear for all alpha-level modules, not just those that have set the lifecycle property.

So, when should lifecycle move from experimental to stable?

πŸ’¬ Support request
Status

Active

Version

11.0 πŸ”₯

Component
ExtensionΒ  β†’

Last updated 3 days ago

No maintainer
Created by

πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

  • Issue created by @Liam Morland
  • πŸ‡¬πŸ‡§United Kingdom catch

    We only really use this for core modules - in these cases we switch modules to stable once we don't anticipate further blocking issues for them to be fully stable (which can be any time during a core minor release cycle, but obviously they only get released as 'stable' once that minor release hits beta/rc/stable itself).

    For contrib modules I personally wouldn't rely on lifecycle for the entire project because that can be communicated with version numbers - alpha/beta/rc etc. However if you had a submodule in a project, and you wanted that to be available but with a warning, then the lifecycle: experimental could work for that in the same way as it does for core.

  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    Should it be documented then that lifecycle should not be set for the top-level module in a contrib project? Should core be changed so that it does not display anything on the status page for the top-level module in a contrib project?

    This came up for me in [#search_api_saved_searches]. Until its recent full release, there was a warning on the status page about this module, even when it was beta and the RC.

    I feel it should be clearly documented when this should be used and how.

  • πŸ‡³πŸ‡ΏNew Zealand quietone New Zealand

    Perhaps info could be added to Creating modules β†’ ? And I found the related Change Record, https://www.drupal.org/node/3215042 β†’ which has details.

  • πŸ‡¨πŸ‡¦Canada Liam Morland Ontario, CA πŸ‡¨πŸ‡¦

    Yes, that change record has some information but it is not explicit about when something switches from experimental to stable.

Production build 0.69.0 2024