`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_supportdefaults totrueand 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_needslogic 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 totruetoo and must be explicitly set tofalseto 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.