261 Commits

Author SHA1 Message Date
Nicolas Grekas
acafeba6d7 [Messenger] Allow configuring the service reset interval in the messenger:consume command via the --no-reset option 2026-03-16 09:53:28 +01:00
Nicolas Grekas
ffb12b47cc [Messenger] Add MessageExecutionStrategyInterface and refactor Worker to use it 2026-03-16 09:25:23 +01:00
Nicolas Grekas
ccd4924b96 [Messenger] Add a --fetch-size option to the messenger:consume command to control how many messages are fetched per iteration 2026-03-16 08:45:09 +01:00
Nicolas Grekas
ee4ab46d5d Merge branch '8.0' into 8.1
* 8.0: (26 commits)
  Fix merge
  [RateLimiter] Fix retryAfter when consuming exactly all remaining tokens in FixedWindow and TokenBucket
  [RateLimiter] Fix retryAfter value on last token consume (SlidingWindow)
  [RateLimiter] Fix reservations outside the second fixed window
  [Filesystem] makePathRelative with existing files, remove ending /
  [Config][Routing] Fix exclude option being ignored for non-glob and PSR-4 resources
  [Serializer][Validator] Fix propertyPath in ConstraintViolationListNormalizer with MetadataAwareNameConverter
  [Messenger][Amqp] Don't use retry routing key when sending to failure transport
  [Messenger] Fix re-sending failed messages to a different failure transport
  [DependencyInjection] Fix #[AsTaggedItem] discovery through multi-level decoration chains
  [Config] Fix ArrayShapeGenerator required keys with deep merging
  [Validator] Add a guard when `Parser::IGNORE_UNKNOWN_VARIABLES` is not defined
  [Validator] Correctly handle null `allowedVariables` in `ExpressionSyntaxValidator`
  [DependencyInjection] Fix PriorityTaggedServiceTrait not discovering #[AsTaggedItem] on decorated services
  [Mailer] Clarify the purpose of SentMessage's "message id" concept
  [ObjectMapper] fix nested mapping with class-level transform
  [TwigBridge] Fix Bootstrap 4 form error layout
  [Form] Fix merging POST params and files when collection entries have mismatched indices
  [Validator] Fix type error for non-array items when Unique::fields is set
  [HttpKernel] Fix default locale ignored when Accept-Language has no enabled-locale match
  ...
2026-02-25 18:08:26 +01:00
Nicolas Grekas
54751d50b8 Merge branch '7.4' into 8.0
* 7.4: (25 commits)
  [RateLimiter] Fix retryAfter when consuming exactly all remaining tokens in FixedWindow and TokenBucket
  [RateLimiter] Fix retryAfter value on last token consume (SlidingWindow)
  [RateLimiter] Fix reservations outside the second fixed window
  [Filesystem] makePathRelative with existing files, remove ending /
  [Config][Routing] Fix exclude option being ignored for non-glob and PSR-4 resources
  [Serializer][Validator] Fix propertyPath in ConstraintViolationListNormalizer with MetadataAwareNameConverter
  [Messenger][Amqp] Don't use retry routing key when sending to failure transport
  [Messenger] Fix re-sending failed messages to a different failure transport
  [DependencyInjection] Fix #[AsTaggedItem] discovery through multi-level decoration chains
  [Config] Fix ArrayShapeGenerator required keys with deep merging
  [Validator] Add a guard when `Parser::IGNORE_UNKNOWN_VARIABLES` is not defined
  [Validator] Correctly handle null `allowedVariables` in `ExpressionSyntaxValidator`
  [DependencyInjection] Fix PriorityTaggedServiceTrait not discovering #[AsTaggedItem] on decorated services
  [Mailer] Clarify the purpose of SentMessage's "message id" concept
  [ObjectMapper] fix nested mapping with class-level transform
  [TwigBridge] Fix Bootstrap 4 form error layout
  [Form] Fix merging POST params and files when collection entries have mismatched indices
  [Validator] Fix type error for non-array items when Unique::fields is set
  [HttpKernel] Fix default locale ignored when Accept-Language has no enabled-locale match
  [FrameworkBundle] Make `ConfigDebugCommand` use its container to resolve env vars
  ...
v8.0.6
2026-02-25 17:59:43 +01:00
Nicolas Grekas
01e9d568ca Merge branch '6.4' into 7.4
* 6.4:
  [RateLimiter] Fix retryAfter when consuming exactly all remaining tokens in FixedWindow and TokenBucket
  [RateLimiter] Fix retryAfter value on last token consume (SlidingWindow)
  [RateLimiter] Fix reservations outside the second fixed window
  [Filesystem] makePathRelative with existing files, remove ending /
  [Config][Routing] Fix exclude option being ignored for non-glob and PSR-4 resources
  [Serializer][Validator] Fix propertyPath in ConstraintViolationListNormalizer with MetadataAwareNameConverter
  [Messenger][Amqp] Don't use retry routing key when sending to failure transport
  [Messenger] Fix re-sending failed messages to a different failure transport
  [DependencyInjection] Fix #[AsTaggedItem] discovery through multi-level decoration chains
  [DependencyInjection] Fix PriorityTaggedServiceTrait not discovering #[AsTaggedItem] on decorated services
  [Mailer] Clarify the purpose of SentMessage's "message id" concept
  [TwigBridge] Fix Bootstrap 4 form error layout
  [Form] Fix merging POST params and files when collection entries have mismatched indices
  [Validator] Fix type error for non-array items when Unique::fields is set
  [HttpKernel] Fix default locale ignored when Accept-Language has no enabled-locale match
  [FrameworkBundle] Make `ConfigDebugCommand` use its container to resolve env vars
  [Console] Fix various completion edge cases
  [Messenger][AmazonSqs] Add test for default queue_name when not set in DSN path or options
v7.4.6
2026-02-25 17:50:00 +01:00
Nicolas Grekas
71b5f9c08f [Messenger] Route decode failures through failure handling 2026-02-24 16:12:54 +01:00
Alexey Deriyenko
ac9b31a905 [Messenger][AmazonSqs] Add test for default queue_name when not set in DSN path or options v6.4.34 2026-02-23 16:24:20 +01:00
Nicolas Grekas
a365ef0c11 Merge branch '7.4' into 8.0
* 7.4:
  bump symfony/type-info dependency
  remove usages of the deprecated any() invoked count expectation
  [Console] Fix profiling commands that use #[Ask]
  remove usages of the deprecated any() invoked count expectation
  [Serializer] Fix constructor parameter type override when property type extractor returns a different type
  Minor: Fix Portuguese (pt) translations for validators
  [Serializer] Fix passing context option to property-info
  [CssSelector] Add LRU cache to CssSelectorConverter
2026-02-17 14:07:04 +01:00
Christian Flothmann
4b96c5b017 Merge branch '6.4' into 7.4
* 6.4:
  remove usages of the deprecated any() invoked count expectation
  Minor: Fix Portuguese (pt) translations for validators
  [Serializer] Fix passing context option to property-info
  [CssSelector] Add LRU cache to CssSelectorConverter
2026-02-17 08:53:42 +01:00
Christian Flothmann
5d92de029c remove usages of the deprecated any() invoked count expectation 2026-02-16 21:44:03 +01:00
Nicolas Grekas
ceba81013f Merge branch '7.4' into 8.0
* 7.4:
  [Console] Fix ProgressBar %remaining% and %estimated% placeholder guards
  [Validator] Fix missing null type in ValidatorInterface::validate() phpdoc
  use PHPUnit 13 on PHP 8.4+
  [PropertyInfo] Prioritize property type over is/has/can accessors
2026-02-13 10:57:13 +01:00
Christian Flothmann
f9a2fb0b9e use PHPUnit 13 on PHP 8.4+ 2026-02-11 17:03:16 +01:00
Christian Flothmann
0d553b08b6 Merge branch '7.4' into 8.0
* 7.4:
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use createMock() to create non-mock objects
v8.0.4
2026-01-08 09:40:07 +01:00
Christian Flothmann
3ac1498c97 Merge branch '7.3' into 7.4
* 7.3:
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use createMock() to create non-mock objects
v7.4.4
2026-01-08 09:25:11 +01:00
Christian Flothmann
9164152f3c do not use PHPUnit mock objects without configured expectations v7.3.10 2026-01-07 23:25:05 +01:00
Christian Flothmann
181a743a8d Merge branch '7.4' into 8.0
* 7.4: (23 commits)
  fix merge
  fix merge
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  Bump Symfony version to 7.4.4
  Update VERSION for 7.4.3
  Update CHANGELOG for 7.4.3
  Bump Symfony version to 7.3.10
  Update VERSION for 7.3.9
  Update CHANGELOG for 7.3.9
  Bump Symfony version to 6.4.32
  Update VERSION for 6.4.31
  Update CONTRIBUTORS for 6.4.31
  Update CHANGELOG for 6.4.31
  ...
2026-01-02 00:07:29 +01:00
Christian Flothmann
ad2a638434 fix merge 2026-01-01 23:27:41 +01:00
Christian Flothmann
7f959a6447 Merge branch '7.3' into 7.4
* 7.3:
  fix merge
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  Bump Symfony version to 7.3.10
  Update VERSION for 7.3.9
  Update CHANGELOG for 7.3.9
  Bump Symfony version to 6.4.32
  Update VERSION for 6.4.31
  Update CONTRIBUTORS for 6.4.31
  Update CHANGELOG for 6.4.31
  do not use PHPUnit mock objects without configured expectations
2026-01-01 23:13:48 +01:00
Christian Flothmann
72fa52e49a Merge branch '6.4' into 7.3
* 6.4:
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  do not use PHPUnit mock objects without configured expectations
  Bump Symfony version to 6.4.32
  Update VERSION for 6.4.31
  Update CONTRIBUTORS for 6.4.31
  Update CHANGELOG for 6.4.31
  do not use PHPUnit mock objects without configured expectations
2026-01-01 23:03:12 +01:00
Christian Flothmann
67a21871f8 do not use PHPUnit mock objects without configured expectations v6.4.32 2025-12-30 07:20:10 +01:00
Nicolas Grekas
9b494c835f Merge branch '7.4' into 8.0
* 7.4:
  [Messenger] Allow to use custom http client for sqs messenger transport
  [JsonStreamer] Merge `PropertyMetadata` value transformers
  [Mailer] Relax regexp to parse message ids
  [Mailer] Fix parsing message ids in SMTP responses
  Reviewed translations
  [HttpClient] Consider cached responses without expiration as immediately stale
  [Routing] Indicate type of rejected object in CompiledUrlMatcherDumper
  [Workflow] Extract code from the data collector to a dedicated class
  [Messenger] Add `MessageSentToTransportsEvent`
  Add FormFlow for multistep forms management
  [HttpKernel][DebugBundle] Collect dumps when console profiling is enabled
v8.0.0 v8.0.0-RC1 v8.0.0-BETA1
2025-10-24 16:30:40 +02:00
Nicolas Grekas
32f0e029f4 minor #61811 [Messenger] Allow to use custom http client for sqs messenger transport (pavelkirpitsov)
This PR was squashed before being merged into the 7.4 branch.

Discussion
----------

[Messenger] Allow to use custom http client for sqs messenger transport

| Q             | A
| ------------- | ---
| Branch?       | 7.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| License       | MIT

In some scenarios (test cases) we need to pass specific HTTP client to messenger transport.

Commits
-------

83a31836de3 [Messenger] Allow to use custom http client for sqs messenger transport
v7.4.0 v7.4.0-RC1 v7.4.0-BETA1
2025-10-24 16:18:34 +02:00
Pavel Kirpitsov
bdcb26d03a [Messenger] Allow to use custom http client for sqs messenger transport 2025-10-24 16:18:28 +02:00
Nicolas Grekas
30b73740f8 Merge branch '7.4' into 8.0
* 7.4:
  [DependencyInjection][Routing] Fix nested config imports when returning PHP arrays
  fix compatibility with Relay 0.12.1
  [TypeInfo] Fix resolving use statements with line breaks
  [FrameworkBundle] Fix normalization of enums in workflow transitions
  Add missing return type for docblock Closure
  don't use a fixed date fixture when assertions depend on relative times
  [FrameworkBundle] Fix secrets:encrypt-from-local
  [Security] Add support for `Sec-Fetch-Site` to `SameOriginCsrfTokenManager`
  [Console] Optimize mostRecentlyEnteredValue() method
  [HttpClient] Add QUERY to the list of retriable HTTP methods
  Update regular expression in URL validator
  [AssetMapper] Fix parsing @import that don't use url()
  [Messenger] Add retry delay on amazon sqs
  [Serializer] CsvEncoder to escape values starting with line feed when escape formulas is enabled
2025-10-16 18:25:44 +02:00
François-Xavier de Guillebon
a10486eaea [Messenger] Add retry delay on amazon sqs 2025-10-07 20:38:44 +02:00
Nicolas Grekas
99c12da5a7 Merge branch '6.4' into 7.3
* 6.4:
  Replace __sleep/wakeup() by __(un)serialize() for throwing and internal usages
v7.3.4
2025-09-11 12:12:26 +02:00
Nicolas Grekas
e9299df3b4 Replace __sleep/wakeup() by __(un)serialize() for throwing and internal usages v6.4.26 2025-09-11 11:57:09 +02:00
Nicolas Grekas
a9d81a103e Merge branch '7.4' into 8.0
* 7.4:
  [Mime] Deprecate implementing `__sleep/wakeup()` on `AbstractPart` implementations
  [Validator] Deprecate implementing `__sleep/wakeup()` on GenericMetadata implementations
  [String] Deprecate implementing `__sleep/wakeup()` on string implementations
  More cleanups related to internal sleep/wakeup usages
  [HttpKernel] Deprecate `__sleep/wakeup()` on kernels and data collectors and make `Profile` final
  [Serializer] Make `AttributeMetadata` and `ClassMetadata` final
  Replace __sleep/wakeup() by __(un)serialize() when BC isn't a concern
  chore: PHP CS Fixer - simplify config
2025-08-14 16:56:53 +02:00
Nicolas Grekas
d3178e7853 Replace __sleep/wakeup() by __(un)serialize() when BC isn't a concern 2025-08-14 11:54:45 +02:00
Nicolas Grekas
b93d9c4997 Merge branch '7.4' into 8.0
* 7.4:
  skip legacy extractor test with symfony/property-info 8.0+
  chore: heredoc indentation as of PHP 7.3
  [Actions] remove dead code from integration-test We can always revisit later if needed.From 2021 its there and not in use
2025-08-12 14:49:34 +02:00
Dariusz Ruminski
4886861221 chore: heredoc indentation as of PHP 7.3
https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
2025-08-10 00:28:14 +02:00
Alexandre Daubois
a56b8796d0 Merge branch '7.4' into 8.0
* 7.4:
  [Form] Fix code style issues
  [SecurityBundle] Add tests for `debug:firewall` command
  Adding more helpful error messages to the Questionhelper
  [Messenger] Allow SQS to handle it's own retry/DLQ
2025-08-06 10:35:25 +02:00
Fabien Potencier
996bc327d8 feature #60754 [Messenger] Allow SQS to handle its own retry/DLQ (maxbaldanza)
This PR was merged into the 7.4 branch.

Discussion
----------

[Messenger] Allow SQS to handle its own retry/DLQ

| Q             | A
| ------------- | ---
| Branch?       | 7.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Issues        | Fix #45104
| License       | MIT

As mentioned on the linked issue this has a number of benefits but mainly

* The consumer no longer needs to be able to send messages into the queue.
* Less chance of message loss

Allow SQS to handle retries rather then handling this by Symfony.
This allows applications to use the retry strategy from SQS rather then Symfony.
The default is for the message to be deleted from SQS at which point Symfony
will handle the retry by then adding back in to the queue.
If `delete_on_rejection` is set to `false` instead it will change the message
visibility of the message on SQS and thus SQS to handle the retry mechanism

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html

Commits
-------

e9b36d90407 [Messenger] Allow SQS to handle it's own retry/DLQ
2025-08-06 08:13:18 +02:00
Nicolas Grekas
9706c5188c Merge branch '7.4' into 8.0
* 7.4:
  replace PHPUnit annotations with attributes
2025-08-04 09:36:47 +02:00
Christian Flothmann
f37ca8d088 replace PHPUnit annotations with attributes 2025-08-04 09:05:15 +02:00
Nicolas Grekas
9980d83b18 Merge branch '7.4' into 8.0
* 7.4:
  run tests using PHPUnit 11.5
  make data provider static
  [Lock] Fix using fractional TTLs on all platforms
  [Lock] Fixes an issue with PostgreSQL when using fractional TTLs
  [Console][Table] Fix unnecessary wrapping
  [DependencyInjection] Deprecate registering a service without a class when its id is a non-existing FQCN
  disable detecting modified indexes with DBAL 4.3
  [cache] RedisTrait::doFetch should use pipeline instead of mget for Relay\Cluster
  relax assertions for forward compatibility with Symfony 7.4
  [Console][Table] Fix invalid UTF-8 due to text wrapping
2025-08-01 18:41:19 +02:00
Christian Flothmann
23f0b6cf55 run tests using PHPUnit 11.5 2025-07-31 11:31:17 +02:00
Nicolas Grekas
62114a2f5e CS fixes v6.4.24 2025-07-10 10:14:14 +02:00
Max Baldanza
773d37a0e1 [Messenger] Allow SQS to handle it's own retry/DLQ
Allow SQS to handle retries rather then handling this by Symfony.
This allows applications to use the retry strategy from SQS rather then Symfony.
The default is for the message to be deleted from SQS at which point Symfony
will handle the retry by deleting and then adding back in to the queue.
If `delete_on_rejection` is set to `false` instead it will change the message
visibility of the message on SQS and thus SQS to handle the retry mechanism
2025-06-16 21:44:29 +01:00
Nicolas Grekas
be0e248da5 Bump Symfony 8 to PHP >= 8.4 2025-06-03 14:29:50 +02:00
Nicolas Grekas
7b31b9c3b5 Allow Symfony ^8.0 2025-06-02 16:13:49 +02:00
Andrii
5405e07be3 [Messenger] Allow to close the transport connection v7.3.0 v7.3.0-RC1 v7.3.0-BETA1 2025-03-05 09:11:51 +01:00
Peter Trebaticky
52dc6849e2 [Messenger] Add options to specify SQS queue attributes and tags 2025-02-21 10:16:05 +01:00
valtzu
cd8b6f9ba0 [Messenger] Extend SQS visibility timeout for messages that are still being processed v7.2.0 v7.2.0-RC1 2024-10-14 18:37:51 +03:00
Nicolas Grekas
d2123d539d Merge branch '7.1' into 7.2
* 7.1:
  Add PR template and auto-close PR on subtree split repositories
v7.2.0-BETA1
2024-09-25 16:21:43 +02:00
Nicolas Grekas
7b4af6d97d Merge branch '6.4' into 7.1
* 6.4:
  Add PR template and auto-close PR on subtree split repositories
v7.1.6
2024-09-25 16:20:29 +02:00
Nicolas Grekas
6706bb3eda Merge branch '5.4' into 6.4
* 5.4:
  Add PR template and auto-close PR on subtree split repositories
v6.4.13
2024-09-25 16:18:03 +02:00
Jérôme Tamarelle
e4f4465452 Add PR template and auto-close PR on subtree split repositories v5.4.45 2024-09-25 16:11:13 +02:00
Alexandre Daubois
5165d1cb1a Remove useless code 2024-08-08 12:05:06 +02:00