Skip to content
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] Allow false as a $shortcut in InputOption #53711

Merged
merged 1 commit into from Feb 1, 2024

Conversation

jayminsilicon
Copy link
Contributor

@jayminsilicon jayminsilicon commented Jan 31, 2024

Q A
Branch? 5.4
Bug fix? yes
New feature? no
Deprecations? no
Issues Fix #53702
License MIT

This change is needed for laravel 8.x installation to allow running kernel and module based architecture. Right now our deployments are suddenly stopped since morning all saying "An option shortcut cannot be empty" and root cause for this is $shortcut is coming as false from laravel modules feature library.

@carsonbot
Copy link

Hey!

I see that this is your first PR. That is great! Welcome!

Symfony has a contribution guide which I suggest you to read.

In short:

  • Always add tests
  • Keep backward compatibility (see https://symfony.com/bc).
  • Bug fixes must be submitted against the lowest maintained branch where they apply (see https://symfony.com/releases)
  • Features and deprecations must be submitted against the 7.1 branch.

Review the GitHub status checks of your pull request and try to solve the reported issues. If some tests are failing, try to see if they are failing because of this change.

When two Symfony core team members approve this change, it will be merged and you will become an official Symfony contributor!
If this PR is merged in a lower version branch, it will be merged up to all maintained branches within a few days.

I am going to sit back now and wait for the reviews.

Cheers!

Carsonbot

@carsonbot

This comment was marked as resolved.

@stof
Copy link
Member

stof commented Jan 31, 2024

the signature for the method is saying string|null as values for shortcuts. false has never been a value covered by our contract (and it is a TypeError in Symfony 6.4 and 7).

So -1 for that PR. You should instead fix the code to properly use null or an empty string to represent the absence of shortcut.

@nicolas-grekas
Copy link
Member

We used to use empty() on this line so it's fair to me to not break existing behaviors, especially when bool is allowed by the signature.

I'm fine with the change but a test case would be nice.

@nicolas-grekas nicolas-grekas changed the title [Console] Allow 'false' as a $shortcut in InputOption.php [Console] Allow false as a $shortcut in InputOption.php Feb 1, 2024
@nicolas-grekas nicolas-grekas changed the title [Console] Allow false as a $shortcut in InputOption.php [Console] Allow false as a $shortcut in InputOption Feb 1, 2024
@derrabus
Copy link
Member

derrabus commented Feb 1, 2024

I'm also fine with this change, if we ignore it on the merge-up to 6.4.

@jayminsilicon
Copy link
Contributor Author

jayminsilicon commented Feb 1, 2024

@derrabus Yes, that would be helpful for everyone who was using 5.4 as stable version for their repo.

@stof
Copy link
Member

stof commented Feb 1, 2024

Well, as things were working before (due to implementation details), I'm OK patching that in 5.4, but I'm not OK up-merging it to 6.4 where false is a TypeError.
And maybe we should trigger a deprecation when passing false.

@derrabus
Copy link
Member

derrabus commented Feb 1, 2024

@jayminsilicon Can you add a test for your scenario and look into @stof's proposal of triggering a deprecation?

@nicolas-grekas
Copy link
Member

No new deprecations on 5.4, our policies don't allow it (as they don't allow new features on older branches)

@derrabus
Copy link
Member

derrabus commented Feb 1, 2024

Okay, so only a test then. 🙂

@jayminsilicon
Copy link
Contributor Author

@stof @derrabus Testcase added in PR. Now all should good to merge this PR.

@nicolas-grekas
Copy link
Member

Thank you @jayminsilicon.

@nicolas-grekas nicolas-grekas merged commit f0a9916 into symfony:5.4 Feb 1, 2024
8 of 9 checks passed
@jayminsilicon
Copy link
Contributor Author

@nicolas-grekas Should we create release tag v 5.4.36 ?

@nicolas-grekas
Copy link
Member

We do new releases once a month so this will be tagged in ~4 weeks.
We do faster sometimes but I'm not sure this needs an emergency fix.
At least if it does, I'd expect libraries that call this wrong to be able to also fix this on their side before.

@jayminsilicon
Copy link
Contributor Author

@nicolas-grekas Oh, I get it. However this particular fix can solve our CI/CD deployments who are using this laravel-modules library. As many other people faces same issue since yesterday : nWidart/laravel-modules#1728. I will try to check on their side if they can fix but if they cant we need to just wait for either once as we are stuck in our deployments.
Thank you for your help so far !

@suryakaritva
Copy link

Hi, our deployments for all projects are stuck with "nwidart/laravel-modules": "^7.0", all CI/CD laravel deployments are throwing An option shortcut cannot be empty error
`> Illuminate\Foundation\ComposerScripts::postAutoloadDump

@php artisan package:discover --ansi

An option shortcut cannot be empty.

Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
`

Any quick advise you have for us to fix our CI/CD ?
thanks

@yivi
Copy link
Contributor

yivi commented Feb 1, 2024

@suryakaritva just skip this release of symfony/console: https://stackoverflow.com/a/77920770/1426539

@derrabus
Copy link
Member

derrabus commented Feb 1, 2024

{
    "require": {
        "symfony/console": "~5.4.36@dev"
    }
}

@jayminsilicon
Copy link
Contributor Author

Thank you @yivi and @derrabus both workaround works well for now !

@yivi
Copy link
Contributor

yivi commented Feb 1, 2024

@jayminsilicon the only problem with Derrabus approach, is that you would need to manually remove that require later in the future, so you are not "locked" to that version.

With the "conflict" approach, as soon as a new version is released you'd get it without doing anything.

@jayminsilicon
Copy link
Contributor Author

@yivi Yes that is correct ! :)

@derrabus
Copy link
Member

derrabus commented Feb 1, 2024

With the "conflict" approach, as soon as a new version is released you'd get it without doing anything.

Yeah, but you wouldn't know if the next release will actually fix the issue for you until it happens. 🤷

This was referenced Feb 27, 2024
github-merge-queue bot pushed a commit to Lendable/composer-license-checker that referenced this pull request Feb 29, 2024
[![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.3` -> `6.4.4` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fconsole/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fconsole/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fconsole/6.4.3/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fconsole/6.4.3/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
| [symfony/process](https://symfony.com)
([source](https://togithub.com/symfony/process)) | `6.4.3` -> `6.4.4` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/symfony%2fprocess/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/symfony%2fprocess/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/symfony%2fprocess/6.4.3/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/symfony%2fprocess/6.4.3/6.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>symfony/console (symfony/console)</summary>

### [`v6.4.4`](https://togithub.com/symfony/console/releases/tag/v6.4.4)

[Compare
Source](https://togithub.com/symfony/console/compare/v6.4.3...v6.4.4)

**Changelog**
(symfony/console@v6.4.3...v6.4.4)

- bug
[symfony/symfony#54009](https://togithub.com/symfony/symfony/issues/54009)
\[Console] Fix display of vertical Table on Windows OS
([@&#8203;VincentLanglet](https://togithub.com/VincentLanglet))
- bug
[symfony/symfony#54001](https://togithub.com/symfony/symfony/issues/54001)
\[Console] Fix display of Table on Windows OS
([@&#8203;VincentLanglet](https://togithub.com/VincentLanglet))
- bug
[symfony/symfony#53707](https://togithub.com/symfony/symfony/issues/53707)
\[Console] Fix color support for TTY output
([@&#8203;theofidry](https://togithub.com/theofidry))
- bug
[symfony/symfony#53711](https://togithub.com/symfony/symfony/issues/53711)
\[Console] Allow false as a $shortcut in InputOption
([@&#8203;jayminsilicon](https://togithub.com/jayminsilicon))

</details>

<details>
<summary>symfony/process (symfony/process)</summary>

###
[`v6.4.4`](https://togithub.com/symfony/process/compare/v6.4.3...v6.4.4)

[Compare
Source](https://togithub.com/symfony/process/compare/v6.4.3...v6.4.4)

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjIxMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
github-merge-queue bot pushed a commit to Lendable/composer-license-checker that referenced this pull request Mar 2, 2024
[![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
([@&#8203;VincentLanglet](https://togithub.com/VincentLanglet))
- bug
[symfony/symfony#54001](https://togithub.com/symfony/symfony/issues/54001)
\[Console] Fix display of Table on Windows OS
([@&#8203;VincentLanglet](https://togithub.com/VincentLanglet))
- bug
[symfony/symfony#53707](https://togithub.com/symfony/symfony/issues/53707)
\[Console] Fix color support for TTY output
([@&#8203;theofidry](https://togithub.com/theofidry))
- bug
[symfony/symfony#53711](https://togithub.com/symfony/symfony/issues/53711)
\[Console] Allow false as a $shortcut in InputOption
([@&#8203;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
([@&#8203;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 ([@&#8203;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
([@&#8203;theofidry](https://togithub.com/theofidry))
- bug
[symfony/symfony#52941](https://togithub.com/symfony/symfony/issues/52941)
\[Console] Fix xterm detection
([@&#8203;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 (@&#8203;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 ([@&#8203;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
([@&#8203;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 ([@&#8203;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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants