Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.6k
[Messenger] Filter out non-consumable receivers when registeringConsumeMessagesCommand
#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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
carsonbot commentedDec 12, 2024
Hey! I see that this is your first PR. That is great! Welcome! Symfony has acontribution 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 |
carsonbot commentedDec 12, 2024
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.phpShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
8cdd3dc
to8e4e241
CompareThere 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 OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php OutdatedShow resolvedHide resolved
Uh oh!
There was an error while loading.Please reload this page.
dbef091
todd686d9
Compare@dkarlovi How can I change the wrong milestone? Should be |
dkarlovi commentedDec 16, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
@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 leaveis_consumable
, but switch the default to keep BC as you suggested.
Keepingis_consumable
is OK because it's future proof, you might want to make other receivers non-consumable in the future, not just sync ones.
Friendly up@wazum |
ConsumeMessagesCommand
0425c3f
to734723f
CompareI 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
to34c7e6f
CompareThank you@wazum. |
f4081a4
intosymfony:6.4Uh oh!
There was an error while loading.Please reload this page.
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)[CompareSource](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 fieldattributes ([@​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 defaultCSRF 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)[CompareSource](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)[CompareSource](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)[CompareSource](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 therebase/retry checkbox.🔕 **Ignore**: Close this PR and you won't be reminded about theseupdates again.---- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, checkthis box---This PR was generated by [Mend Renovate](https://mend.io/renovate/).View the [repository joblog](https://developer.mend.io/github/Runroom/archetype-symfony).<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Uh oh!
There was an error while loading.Please reload this page.
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 theSymfony project, so please let me know what I can improve.