Replace automatic option enable/disable with a list of requirements #101
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.
This may be somewhat of a UX regression, as we no longer enable/disable options automatically, but instead dynamically change whether an item is active or not. We could still reintroduce the automatic requirement selection (which I think may be slightly confusing), but that is a tricky problem to solve now, especially if options get into a requires-requires not cycle.
I'm slightly worried about the regression, because now if we have exclusive options, those don't deselect each other, but the user has to manually toggle them. This also means that the "neither one selected" must be a valid option, although even the previous method didn't handle "option A enables option B enables option C" recursive cases so maybe this is just trading limitations.
The goal of this PR is to enable "Allow unstable HAL features" and "Allow unstable dependencies" options.
After this, we could probably perma-hide features that are not available on the current chip. Having an option suggests it can be enabled somehow.