Allow `needs: ` to specify a job that can always be started immediately, regardless of stage
Problem to solve
For the MVC of the directed acyclic graph, we're lacking support for defining an empty
needs: array to specify that something has no predecessor. If we supported this, users could mark a job in a second or beyond stage as eligible to start immediately.
Individual contributor automation engineers
Consider the following yaml which has a
build: stage: build script: echo Hello World setup_test_env: stage: test test: stage: test needs: [build, setup_test_env]
With this new keyword, we could allow
setup_test_env as follows to allow it to run as soon as the pipeline starts, but still appear in the
test stage where it makes more logical sense:
setup_test_env: stage: test needs: 
needs:  which will indicate to GitLab that a job, regardless of what stage it's in, can always start immediately.
Permissions and Security
We may need to remove:
It is impossible for now to have needs:  (empty needs), the job always needs to depend on something, unless this is the job in the first stage. However, support for an empty needs array is planned.