-
-
Notifications
You must be signed in to change notification settings - Fork 9.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Console] Fix color support check on non-Windows platforms #52940
Conversation
Hey! To help keep things organized, we don't allow "Draft" pull requests. Could you please click the "ready for review" button or close this PR and open a new one when you are done? Note that a pull request does not have to be "perfect" or "ready for merge" when you first open it. We just want it to be ready for a first review. Cheers! Carsonbot |
The referenced issue mentioned 5.4, should this PR target 5.4 too? |
Ah indeed, my bad I forgot 5.4 is still supported. |
Yo @carsonbot not cool |
thanks @xabbuh ❤️ |
This PR was merged into the 5.4 branch. Discussion ---------- Refactor hyper check location | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | no | New feature? | no | Deprecations? | no | Issues | None | License | MIT Extracted from #52940 to reduce the noise of that PR. There is no logic change, only a potentially a performance (I assume non-existent given it's a if check of a constant). If it is a concern however, this could be checked _before_ the windows specific checks. Commits ------- 9c09e16 refactor: hyper check
d82e498
to
285518d
Compare
Thank you @theofidry. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [symfony/console](https://symfony.com) ([source](https://togithub.com/symfony/console)) | `6.4.1` -> `6.4.2` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fconsole/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fconsole/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fconsole/6.4.1/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fconsole/6.4.1/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [symfony/process](https://symfony.com) ([source](https://togithub.com/symfony/process)) | `6.4.0` -> `6.4.2` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fprocess/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fprocess/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fprocess/6.4.0/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fprocess/6.4.0/6.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>symfony/console (symfony/console)</summary> ### [`v6.4.2`](https://togithub.com/symfony/console/releases/tag/v6.4.2) [Compare Source](https://togithub.com/symfony/console/compare/v6.4.1...v6.4.2) **Changelog** (symfony/console@v6.4.1...v6.4.2) - bug [symfony/symfony#52940](https://togithub.com/symfony/symfony/issues/52940) \[Console] Fix color support check on non-Windows platforms ([@​theofidry](https://togithub.com/theofidry)) - bug [symfony/symfony#52941](https://togithub.com/symfony/symfony/issues/52941) \[Console] Fix xterm detection ([@​theofidry](https://togithub.com/theofidry)) </details> <details> <summary>symfony/process (symfony/process)</summary> ### [`v6.4.2`](https://togithub.com/symfony/process/releases/tag/v6.4.2) [Compare Source](https://togithub.com/symfony/process/compare/v6.4.0...v6.4.2) **Changelog** (symfony/process@v6.4.1...v6.4.2) - bug [symfony/symfony#52864](https://togithub.com/symfony/symfony/issues/52864) \[HttpClient]\[Mailer]\[Process] always pass microseconds to usleep as integers ([@​xabbuh](https://togithub.com/xabbuh)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Lendable/composer-license-checker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… if the output (theofidry) This PR was merged into the 5.4 branch. Discussion ---------- [Console] Only execute additional checks for color support if the output is a TTY | Q | A | ------------- | --- | Branch? | 5.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Issues | Fix #53460 | License | MIT As reported in #53460, the modifications done in #52940 are incorrect as it results in detecting that the stream can support colors despite not being a TTY. Rather than doing a simple revert which would re-introduce the pre-existing issue that #52940 attempted to fix, this PR checks if the output is a TTY based on Composer's code and does this check before anything else. Indeed a TTY only means that colors _may_ be supported, so the various checks that we were doing do make sense to be done but should be done after this TTY (so `Hyper` is not an exception, it can be a TTY or not). Commits ------- 2e96b22 [Console] Only execute additional checks for color support if the output is a TTY
I may have encountered a bug in my application that seems to be related to this PR. The "short version" of the issue is that I have CLI commands who's output get piped to other commands. And this has stopped working when updating to v6.4.2. From what I can tell debugging the commands output with In both the before and after, the text will print in green (info) colors. However with 6.4.1 the text pipes to subsequent commands fine. But in 6.4.2 the text has color codes embedded to it which breaks subsequent commands.
In my environment I'm on a Mac, using iTerm.
Ultimately I'm wondering if this is expected in my environment after this change, or if this is a new bug/regression? If this is expected, how can I continue to use the |
@mallardduck Can you check if the behaviour you experience vanishes with #53576? |
@xabbuh - thanks for that, applying that patch manually to the vendor files fixes it. |
Just updated the composer and noticed the missing colors. I'm using Kitty(cyd01) with termtype set to tmux-256color. |
@tamr this would require more information. If you do please open an issue with the required information to fix it 🙏 |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [symfony/console](https://symfony.com) ([source](https://togithub.com/symfony/console)) | `6.4.4` -> `7.0.4` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fconsole/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fconsole/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fconsole/6.4.4/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fconsole/6.4.4/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [symfony/process](https://symfony.com) ([source](https://togithub.com/symfony/process)) | `6.4.4` -> `7.0.4` | [![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fprocess/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fprocess/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fprocess/6.4.4/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fprocess/6.4.4/7.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>symfony/console (symfony/console)</summary> ### [`v7.0.4`](https://togithub.com/symfony/console/releases/tag/v7.0.4) [Compare Source](https://togithub.com/symfony/console/compare/v7.0.3...v7.0.4) **Changelog** (symfony/console@v7.0.3...v7.0.4) - bug [symfony/symfony#54009](https://togithub.com/symfony/symfony/issues/54009) \[Console] Fix display of vertical Table on Windows OS ([@​VincentLanglet](https://togithub.com/VincentLanglet)) - bug [symfony/symfony#54001](https://togithub.com/symfony/symfony/issues/54001) \[Console] Fix display of Table on Windows OS ([@​VincentLanglet](https://togithub.com/VincentLanglet)) - bug [symfony/symfony#53707](https://togithub.com/symfony/symfony/issues/53707) \[Console] Fix color support for TTY output ([@​theofidry](https://togithub.com/theofidry)) - bug [symfony/symfony#53711](https://togithub.com/symfony/symfony/issues/53711) \[Console] Allow false as a $shortcut in InputOption ([@​jayminsilicon](https://togithub.com/jayminsilicon)) ### [`v7.0.3`](https://togithub.com/symfony/console/releases/tag/v7.0.3) [Compare Source](https://togithub.com/symfony/console/compare/v7.0.2...v7.0.3) **Changelog** (symfony/console@v7.0.2...v7.0.3) - bug [symfony/symfony#53516](https://togithub.com/symfony/symfony/issues/53516) \[Console] Allow '0' as a $shortcut in InputOption.php ([@​lawsonjl-ornl](https://togithub.com/lawsonjl-ornl)) - bug [symfony/symfony#53576](https://togithub.com/symfony/symfony/issues/53576) \[Console] Only execute additional checks for color support if the output ([@​theofidry](https://togithub.com/theofidry)) ### [`v7.0.2`](https://togithub.com/symfony/console/releases/tag/v7.0.2) [Compare Source](https://togithub.com/symfony/console/compare/v7.0.1...v7.0.2) **Changelog** (symfony/console@v7.0.1...v7.0.2) - bug [symfony/symfony#52940](https://togithub.com/symfony/symfony/issues/52940) \[Console] Fix color support check on non-Windows platforms ([@​theofidry](https://togithub.com/theofidry)) - bug [symfony/symfony#52941](https://togithub.com/symfony/symfony/issues/52941) \[Console] Fix xterm detection ([@​theofidry](https://togithub.com/theofidry)) ### [`v7.0.1`](https://togithub.com/symfony/console/releases/tag/v7.0.1) [Compare Source](https://togithub.com/symfony/console/compare/v7.0.0...v7.0.1) **Changelog** (symfony/console@v7.0.0...v7.0.1) - no significant changes ### [`v7.0.0`](https://togithub.com/symfony/console/releases/tag/v7.0.0) [Compare Source](https://togithub.com/symfony/console/compare/v6.4.4...v7.0.0) **Changelog** (symfony/console@v7.0.0-RC2...v7.0.0) - no significant changes </details> <details> <summary>symfony/process (symfony/process)</summary> ### [`v7.0.4`](https://togithub.com/symfony/process/releases/tag/v7.0.4) [Compare Source](https://togithub.com/symfony/process/compare/v7.0.3...v7.0.4) **Changelog** (symfony/process@v7.0.3...v7.0.4) - bug [symfony/symfony#54006](https://togithub.com/symfony/symfony/issues/54006) \[Process] Fix the `command -v` exception (@​kayw-geek) - bug [symfony/symfony#53821](https://togithub.com/symfony/symfony/issues/53821) \[Process] Fix Inconsistent Exit Status in proc_get_status for PHP Versions Below 8.3 ([@​Luc45](https://togithub.com/Luc45)) ### [`v7.0.3`](https://togithub.com/symfony/process/releases/tag/v7.0.3) [Compare Source](https://togithub.com/symfony/process/compare/v7.0.2...v7.0.3) **Changelog** (symfony/process@v7.0.2...v7.0.3) - bug [symfony/symfony#53481](https://togithub.com/symfony/symfony/issues/53481) \[Process] Fix executable finder when the command starts with a dash ([@​kayw-geek](https://togithub.com/kayw-geek)) ### [`v7.0.2`](https://togithub.com/symfony/process/releases/tag/v7.0.2) [Compare Source](https://togithub.com/symfony/process/compare/v7.0.0...v7.0.2) **Changelog** (symfony/process@v7.0.1...v7.0.2) - bug [symfony/symfony#52864](https://togithub.com/symfony/symfony/issues/52864) \[HttpClient]\[Mailer]\[Process] always pass microseconds to usleep as integers ([@​xabbuh](https://togithub.com/xabbuh)) ### [`v7.0.0`](https://togithub.com/symfony/process/releases/tag/v7.0.0) [Compare Source](https://togithub.com/symfony/process/compare/v6.4.4...v7.0.0) **Changelog** (symfony/process@v7.0.0-RC2...v7.0.0) - no significant changes </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/Lendable/composer-license-checker). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMjAuMiIsInVwZGF0ZWRJblZlciI6IjM3LjIyMC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Currently checking the color support based on
ANSICON
,ConEmuANSI=ON
orTERM=xTerm
is done only for Widows. I could not find any reason as to why and it does not make much sense as it is. Especially if we consider thatTERM=xTerm
is a term check and we do another one (not Widows specific) which isTERM_PROGRAM=Hyper
.This potentially fixes #45917.
This also looks more in line with the intent (based on the title) of #27831 and #27794.