feat!: enable interactivity by default when possible #5562
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's the problem this PR addresses?
Interactivity can lead to a more user-friendly experience and we have quite a lot of interactive commands, but some of them (
addandup) only enable it when explicitly requested via--interactiveor whenpreferInteractiveis set totrue, which most users forget to do since it isn't the default.In addition, whenpreferInteractiveis set totrue, these commands are interactive even outside TTYs, which is unintended (can be checked by runningyarn add lodashin our repository).Extracted to #6419.
How did you fix it?
Made interactivity the default, by defaulting
preferInteractivetotrue, except on CI.Also made it so that Yarn is never interactive outside of TTY environments since that can never work.Now there are a few questions remaining:
--interactiveis passed? Is there a use case for it? Or should the CI check override everything else just like the TTY onenpmHttpUtilsrespect all of this? Do we forwardstdoutas a parameter everywhere or is there a better option? 🤔Checklist