Clarify how block step implicit dependencies work
- Dominant language
- Ruby
- Stars
- 59
- Forks
- 313
- PR merge metrics
- No merged PRs in 30d
Description
Concerning https://buildkite.com/docs/pipelines/block-step, the description of the block step feels ambiguous and could be clarified, especially this part:
> however a block step creates [implicit dependencies](https://buildkite.com/docs/pipelines/dependencies) to the steps before and after it.
Context: Trying to make a block step only available after the steps that comb before.
Which dependencies (`depends_on`) are created implicitly isn't clear for instance if we have:
```
steps:
- key: a
- block
- key: b
```
There seems to be resulting 2 possibilities/interpretations:
1. block depends_on a, b depends_on block
2. b depends_on [a, block]
The difference is that in 1. we can't unblock until a finished, in 2. we can unblock before a finishes. I believe the current behavior is 2. because block steps can be unblocked before previous steps finish.
To get behavior 1. I think this does it:
```
steps:
- key: a
- block
depends_on: a
- key: b
```
Can you confirm is this is correct? Also if that's the case it can you update the doc to make this more obvious maybe include something like the second example here? It would remove some guess work getting block steps to work in different use cases.
Contributor guide
Research direction
Start with the block-step documentation at https://buildkite.com/docs/pipelines/block-step and compare its implicit-dependencies wording with the linked dependencies documentation. Confirm whether the shown block and depends_on examples reflect the behavior, then clarify the explanation and add the second example so the completion condition is unambiguous.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100