This PR was merged into the 4.4 branch.
Discussion
----------
[HttpClient] allow arbitrary JSON values in requests
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | n/a
| License | MIT
| Doc PR | n/a
Allow arbitrary values in the "json" request option. Previously values were
limitated to arrays and objects of type JsonSerializable. This doesn't account
for scalar values and classes with public properties (which don't need to
implement JsonSerializable), [all of which are perfectly acceptable arguments to
json_encode](https://www.php.net/manual/en/function.json-encode.php):
> value
> The value being encoded. Can be any type except a resource.
It seems silly to expect users to add classes implementing JsonSerializable to represent, say, scalar values or an empty object.
I'm not sure if you consider removed exceptional cases a BC break or not. I'm assuming "no" for now.
Commits
-------
e98731aabf [HttpClient] allow arbitrary JSON values in requests
Allow arbitrary values in the "json" request option. Previously values were
limitated to arrays and objects of type JsonSerializable. This doesn't account
for scalar values and classes with public properties (which don't need to
implement JsonSerializable), all of which are perfectly acceptable arguments to
json_encode.
This PR was merged into the 4.4 branch.
Discussion
----------
[FrameworkBundle] allow using secrets when the sodium ext is missing
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
When all secrets are defined as env vars, there is no need for the sodium vault, yet it chokes on instantiation currently.
Commits
-------
326284ae95 [FrameworkBundle] allow using secrets when the sodium ext is missing
This PR was merged into the 4.3 branch.
Discussion
----------
[FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | https://github.com/symfony/symfony/issues/33992
| License | MIT
| Doc PR | -
The cache file name needs to depend on the scanned directories list. Otherwise, when a new directory is added, even if the container is rebuilt and the `FWB Translator` gets the new scanned directories list, the cached catalogue name is still the same and is resolved accordingly.
An alternative would be to make the `Translation Translator` `getCatalogueCachePath()` method and `fallbackLocales` `@internal` and `protected` to just override everything in the `FWB Translator`. The `cacheVary` argument has the benefit to be reusable by all the `Translation` component users.
Note that there is a negative minor performance impact that increases when the list of scanned directories grows.
Commits
-------
6cbee0944c [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change
This PR was merged into the 4.4 branch.
Discussion
----------
Skip validation of services that make the CI fail
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
403fdf4a59 Skip validation of services that make the CI fail
This PR was merged into the 4.3 branch.
Discussion
----------
[Serializer] Use context to compute MetadataAwareNameConverter cache
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
This is a follow up PR to #34035 to address @nicolas-grekas 's [comment](https://github.com/symfony/symfony/pull/34035#issuecomment-549867560)
The static cache has been re-introduced and the context is used to compute the cache key used for denormalization
Commits
-------
0ac5346bf5 [Serializer] Use context to compute MetadataAwareNameConverter cache
This PR was merged into the 4.4 branch.
Discussion
----------
[VarDumper] Mark StubCaster as @final
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? |
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
Looks like it was forgotten in https://github.com/symfony/symfony/pull/33882.
@lyrixx was it intentional?
Commits
-------
d25b60961f [VarDumper] Mark StubCaster as @final
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] fix min version of http-kernel
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Required after #34257 and #34230
Commits
-------
69ba86ba66 [DoctrineBridge] fix min version of http-kernel
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] Reopen DoctrineDataCollector to extensibility
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
DoctrineBundle is using it (0d20a98fb8/DataCollector/DoctrineDataCollector.php (L41)) and we don't want to prevent them from doing it.
Commits
-------
af021248bf [DoctrineBridge] Reopen DoctrineDataCollector to extensibility
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpClient] fix support for NTLM auth
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
A `401` with `WWW-Authenticate: NTLM [...]` is not the final response code when using `auth_ntlm`.
Commits
-------
370c4379a5 [HttpClient] fix support for NTLM auth
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpClient] fix after merge from 4.3
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
3c6dc96ab4 [HttpClient] fix after merge from 4.3
This PR was merged into the 4.3 branch.
Discussion
----------
[Inflector] add support for 'species'
| Q | A
| ------------- | ---
| Branch? | 4.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
This PR improves the inflection of the word 'species'
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/roadmap):
- Always add tests and ensure they pass.
- Never break backward compatibility (see https://symfony.com/bc).
- Bug fixes must be submitted against the lowest maintained branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too.)
- Features and deprecations must be submitted against branch 4.4.
- Legacy code removals go to the master branch.
-->
Commits
-------
cc87e40a8f add species to inflector and inflector tests
This PR was squashed before being merged into the 3.4 branch (closes#34135).
Discussion
----------
[Validator] Add the missing translations for the Hebrew ("he") locale and fix 2 typos
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | Fix#30166
| License | MIT
Ref #30166
Commits
-------
022cf67f19 [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos
This PR was merged into the 4.4 branch.
Discussion
----------
Add handling for delayed message to redis transport
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | WIP
| Fixed tickets | Fixes#31711
| License | MIT
| Doc PR | symfony/symfony-docs#... TODO
Still in WIP: This pull request implements delayed messages for redis transport. It will park the messages in an own sorted set and if the time comes it will push the messages to the stream to make them available for all consumers. Because of a race condition when having multiple consumers it need to be checked if not accidently a message from the future is popped by zpopmin so the add function is called and there is check if the delay is in the present/past and only then add the message to the stream.
Commits
-------
cfece10569 Add handling for delayed message to redis transport
This PR was merged into the 4.4 branch.
Discussion
----------
[Messenger] use events consistently in worker
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#32560, #32614, #33843
| License | MIT
| Doc PR |
The worker had the three ways to handle events
1. $onHandledCallback in `run(array $options = [], callable $onHandledCallback = null)`
2. events dispatched using the event dispatcher
3. hardcoded things inside the worker
This PR refactores the messenger worker to only use event dispatching. So instead of a hardcoded `$onHandledCallback` and worker decorators, we use event listeners and we don't need a `WorkerInterface` at all. The behavior of all the options like `--memory-limit` etc remains the same.
I introduced two new events
- `WorkerStartedEvent`
- `WorkerRunningEvent`
Together with the existing `WorkerStoppedEvent` it's very symmetrical and solves the referenced issues.
Commits
-------
201f159303 [Messenger] use events consistently in worker
This PR was merged into the 4.4 branch.
Discussion
----------
Deprecate things that prevent \Throwable from bubbling down
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes (todo update CHANGELOGS & UPGRADES)
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/32605
| License | MIT
| Doc PR | -
~The goal of this PR is to allow `\Throwable` forwarded from the`ErrorHandler::handleException()` method (cf https://github.com/symfony/symfony/pull/33038) to bubble down in our code base without having to convert them into exceptions.~
~WIP because I'm blocked by 2 things caused by `GetResponseForExceptionEvent::getThrowable()` returning a `\Throwable` instead of an `\Exception`.~
~1. This `\Throwable` end up in `DataCollectorInterface::collect()` (cf `ProfilerListener`). So that looks impossible to support in 4.4. What can we do?~
~2. The second blocker is `ExceptionListener::duplicateRequest()`. We are not gonna rename this method to support `\Throwable` I guess. What can we do?~
Since there are blockers to do it in 4.4, let's prepare for the future and deprecate the things that block us.
Commits
-------
abef506e89 Deprecate things that prevent \Throwable from bubbling down