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 (
add
andup
) only enable it when explicitly requested via--interactive
or whenpreferInteractive
is set totrue
, which most users forget to do since it isn't the default.In addition, whenpreferInteractive
is set totrue
, these commands are interactive even outside TTYs, which is unintended (can be checked by runningyarn add lodash
in our repository).Extracted to #6419.
How did you fix it?
Made interactivity the default, by defaulting
preferInteractive
totrue
, 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:
--interactive
is passed? Is there a use case for it? Or should the CI check override everything else just like the TTY onenpmHttpUtils
respect all of this? Do we forwardstdout
as a parameter everywhere or is there a better option? 🤔Checklist