feat: Begin tracking per-VCS features #5976
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
what
Add code and documentation to track which features are available on which VCSs.
why
Right now, we often implement new features, whether or not gated by a flag, for some VCSs and not others (typically github, sometimes gitlab). We have no canonical way of tracking which features are present for which VCSs, which means it's hard to tell which VCSs are feature complete. This documentation will help us demonstrate where the gaps are.
In addition, this moves us towards resolving #5574, so that configuration is always general per VCS, and we just document which support it and which don't.
The impact on the code itself is currently minimal; we log a warning if you specify a flag associated with a feature unsupported on a VCS you have configured. Additionally, we hard fail if you specify a flag that is unusable on all VCSs you've configured. We could consider loosening that to just logging an error
tests
references
Partially addresses: #5574