`needs` documentation is wrong
Problem to solve
The needs
related documentation https://docs.gitlab.com/ee/ci/yaml/#requirements-and-limitations says:
For self-managed users, the feature must be turned on using the ci_dag_support feature flag. The ci_dag_limit_needs option, if set, will limit the number of jobs that a single job can need to 50. If unset, the limit is 5.
This seems to be wrong:
-
ci_dag_support
defaults totrue
and does not need to be enabled manually$ git grep ci_dag_support app/models/ci/build.rb: if Feature.enabled?(:ci_dag_support, project, default_enabled: true) && needs.exists? app/services/ci/process_pipeline_service.rb: return false unless Feature.enabled?(:ci_dag_support, project, default_enabled: true) app/services/ci/process_pipeline_service.rb: if Feature.enabled?(:ci_dag_support, project, default_enabled: true)
-
ci_dag_limit_needs
logic is reverse (and matches the expected semantic of this flag): when set it limits the number of jobs to 5. Else it is (un)limited to 50. It defaults totrue
too and must be explicitly set tofalse
to allow more than 5 jobs.
And please describe, how these feature flags can be set. When searching for "feature flag", google returns only hits about the EE feature but nothing which leads to the
Feature::disable(:ci_dag_limit_needs)
in gitlab-rails console
.