Add Internal stage to the Organizations release process

What does this MR do and why?

Adds an Organizations release stage, "Internal", for GitLab team members only. It sits between Experimental and Beta:

Experimental -> Internal -> Beta -> LA 25/50/75/100 -> GA -> Stable

GitLab team members get their own stage to use organization features before opted-in customers see them. Beta's audience narrows to opted-in customers only (it was "GitLab team members and opted-in customers").

  • The stage is backed by a new ops feature flag, org_stage_internal (default off).
  • Internal cascades like Experimental and Beta (CASCADING_STAGE_KEYS = %i[experimental internal beta]), so team members keep every Beta-and-later feature.
  • Internal is optional, like Experimental. Beta stays required.
  • No registry entries change stage.

Files: lib/organizations/release/stage.rb, lib/organizations/release.rb, config/feature_flags/ops/org_stage_internal.yml, config/organizations_release.yml, doc/development/organizations/release_process.md, doc/development/organizations/release_status.md (regenerated), spec/lib/organizations/release_spec.rb.

A second commit refreshes the "Test your feature" section of release_process.md. It described an older stub_organization_release that toggled stage flags. The helper now stubs Organizations::Release.enabled? per flag with keyword arguments.

Rollout after merge

Move the gitlab_team_members feature-group grant from org_stage_beta to org_stage_internal:

/chatops run feature set --feature-group=gitlab_team_members org_stage_internal true

Then remove the gitlab_team_members grant from org_stage_beta.

References

Screenshots or screen recordings

None. This MR has no UI change.

How to set up and validate locally

  1. Run the spec:
    bin/rspec spec/lib/organizations/release_spec.rb
  2. Optionally, in a rails console, confirm internal sits between experimental and beta:
    Organizations::Release.stages.map(&:key)

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

🤖 Generated with Claude Code

Edited by Alex Pooley

Merge request reports

Loading
Loading