-
-
Notifications
You must be signed in to change notification settings - Fork 9.6k
[Messenger] Filter out non-consumable receivers when registering ConsumeMessagesCommand
#59198
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
Conversation
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:
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! I am going to sit back now and wait for the reviews. Cheers! Carsonbot |
Hey! Thanks for your PR. You are targeting branch "7.3" but it seems your PR description refers to branch "6.4, 7.1, and 7.2 for bug fixes". Cheers! Carsonbot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can simplify a little bit.
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
Show resolved
Hide resolved
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php
Outdated
Show resolved
Hide resolved
8cdd3dc
to
8e4e241
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Small tweaks.
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php
Outdated
Show resolved
Hide resolved
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php
Outdated
Show resolved
Hide resolved
dbef091
to
dd686d9
Compare
@dkarlovi How can I change the wrong milestone? Should be |
@wazum a Symfony core team member needs to review too. About your
IMO there's no "kind of" about it, the current behavior is faulty since there's no value in offering a sync transport and then immediately crashing when it's selected, this is definitely a bugfix. |
@@ -289,6 +290,9 @@ private function registerReceivers(ContainerBuilder $container, array $busIds): | |||
$failureTransportsMap[$tag['alias']] = $receiverMapping[$id]; | |||
} | |||
} | |||
if (isset($tag['is_consumable']) && $tag['is_consumable']) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the way this is implemented at the moment breaks BC: a receiver should be considered consumable unless specified otherwise (currently it's the other way around)
then all changes on existing test cases should be reverted (the ones adding "is_consumable: true")
maybe the vocabulary needs to be reversed to make it clear? "is_synchronous"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO I'd leave is_consumable
, but switch the default to keep BC as you suggested.
Keeping is_consumable
is OK because it's future proof, you might want to make other receivers non-consumable in the future, not j
8000
ust sync ones.
Friendly up @wazum |
ConsumeMessagesCommand
0425c3f
to
734723f
Compare
I need some help here, I don't quite understand why the tests fail. |
You can ignore the failing tests that are not related to your PR. |
…sumeMessagesCommand`
734723f
to
34c7e6f
Compare
Thank you @wazum. |
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [symfony/framework-bundle](https://symfony.com) ([source](https://redirect.github.com/symfony/framework-bundle)) | `7.2.3` -> `7.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/messenger](https://symfony.com) ([source](https://redirect.github.com/symfony/messenger)) | `7.2.3` -> `7.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/stopwatch](https://symfony.com) ([source](https://redirect.github.com/symfony/stopwatch)) | `7.2.2` -> `7.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | | [symfony/web-profiler-bundle](https://symfony.com) ([source](https://redirect.github.com/symfony/web-profiler-bundle)) | `7.2.3` -> `7.2.4` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>symfony/framework-bundle (symfony/framework-bundle)</summary> ### [`v7.2.4`](https://redirect.github.com/symfony/framework-bundle/releases/tag/v7.2.4) [Compare Source](https://redirect.github.com/symfony/framework-bundle/compare/v7.2.3...v7.2.4) **Changelog** (symfony/framework-bundle@v7.2.3...v7.2.4) - bug [symfony/symfony#59198](https://redirect.github.com/symfony/symfony/issues/59198) \[Messenger] Filter out non-consumable receivers when registering `ConsumeMessagesCommand` (@​wazum) - bug [symfony/symfony#59781](https://redirect.github.com/symfony/symfony/issues/59781) \[Mailer] fix multiple transports default injection ([@​fkropfhamer](https://redirect.github.com/fkropfhamer)) - bug [symfony/symfony#59829](https://redirect.github.com/symfony/symfony/issues/59829) \[FrameworkBundle] Disable the keys normalization of the CSRF form field attributes ([@​sukei](https://redirect.github.com/sukei)) - bug [symfony/symfony#59728](https://redirect.github.com/symfony/symfony/issues/59728) \[Form]\[FrameworkBundle] Use auto-configuration to make the default CSRF token id apply only to the app; not to bundles ([@​nicolas-grekas](https://redirect.github.com/nicolas-grekas)) </details> <details> <summary>symfony/messenger (symfony/messenger)</summary> ### [`v7.2.4`](https://redirect.github.com/symfony/messenger/releases/tag/v7.2.4) [Compare Source](https://redirect.github.com/symfony/messenger/compare/v7.2.3...v7.2.4) **Changelog** (symfony/messenger@v7.2.3...v7.2.4) - bug [symfony/symfony#59198](https://redirect.github.com/symfony/symfony/issues/59198) \[Messenger] Filter out non-consumable receivers when registering `ConsumeMessagesCommand` (@​wazum) </details> <details> <summary>symfony/stopwatch (symfony/stopwatch)</summary> ### [`v7.2.4`](https://redirect.github.com/symfony/stopwatch/releases/tag/v7.2.4) [Compare Source](https://redirect.github.com/symfony/stopwatch/compare/v7.2.2...v7.2.4) **Changelog** (symfony/stopwatch@v7.2.3...v7.2.4) - no significant changes </details> <details> <summary>symfony/web-profiler-bundle (symfony/web-profiler-bundle)</summary> ### [`v7.2.4`](https://redirect.github.com/symfony/web-profiler-bundle/releases/tag/v7.2.4) [Compare Source](https://redirect.github.com/symfony/web-profiler-bundle/compare/v7.2.3...v7.2.4) **Changelog** (symfony/web-profiler-bundle@v7.2.3...v7.2.4) - bug [symfony/symfony#59776](https://redirect.github.com/symfony/symfony/issues/59776) \[WebProfilerBundle] fix rendering notifier message options ([@​xabbuh](https://redirect.github.com/xabbuh)) - bug [symfony/symfony#59033](https://redirect.github.com/symfony/symfony/issues/59033) \[WebProfilerBundle] Fix interception for non conventional redirects ([@​Huluti](https://redirect.github.com/Huluti)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/Runroom/archetype-symfony). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This pull request enhances the
MessengerPass
in the Symfony Framework Bundle to automatically filter out non-consumable receivers when registering theConsumeMessagesCommand
. The key changes are:The FrameworkExtension has been updated to mark the "sync" transport as non-consumable by default, without requiring the user to explicitly set the
is_consumable
attribute.The
MessengerPass
then checks theis_consumable
attribute on themessenger.receiver
tags. If the attribute is set tofalse
, the receiver is considered non-consumable and will not be added to the list of receivers for the consume command.If there is only one consumable receiver, the consume command will automatically use that receiver without prompting the user to select one (I added this as a separate commit if this is too implicit).
These changes improve the user experience by removing unnecessary (and non-functioning) options.
This is my first pull request for the Symfony project, so please let me know what I can improve.