This PR was merged into the 4.4 branch.
Discussion
----------
Refractor AbstractBrowserTest to assertSame
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix #...instead -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
As mentioned by @nicolas-grekas at https://github.com/symfony/symfony/pull/38596#discussion_r508461764 the AbstractBrowserTest should be refractored to use `assertSame` instead of `assertEquals` to compare string.
Commits
-------
3f320c8d51 Refractor AbstractBrowserTest to assertSame
* 3.4:
[Form] Sync translations
Added dutch translations for new invalid messages
Don't skip Doctrine tests on php 8.
Bump APCu to 5.1.19 on Travis.
[WebProfilerBundle] Hide debug toolbar in print view
indexBy does not refer to attributes, but to column names
Fix Reflection file name with eval()\'d code
[HttpFoundation] Fix Range Requests
* 5.1:
Don't skip Doctrine tests on php 8.
Stop using set-env in GitHub actions.
Allow setting AMQP option "login"
Bump igbinary to v3.1.6
Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
Reference the correct interface in the RegistryInterface deprecation in upgrade notes
Add myself to CODEOWNERS for Security and Console
Add wouterj as codeowner for Security related packages
* 4.4:
Don't skip Doctrine tests on php 8.
Stop using set-env in GitHub actions.
Bump igbinary to v3.1.6
Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
Reference the correct interface in the RegistryInterface deprecation in upgrade notes
Add myself to CODEOWNERS for Security and Console
Add wouterj as codeowner for Security related packages
This PR was merged into the 5.x branch.
Discussion
----------
[HttpClient] Parameterize list of retryable methods
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | /
| License | MIT
| Doc PR | TODO
Retrying non-idempotent methods is not always acceptable for user. This PR adds an easy way to configure this behavior.
The `RetryDeciderInterface::shouldRetry()` now take the exception in parameter, in order to let decider not retrying the request when the methods should never by retried.
With #38420, this code would belongs to the RetryStrategy implementation, and would return an `NeverRetryDecider` when method is not allowed.
Commits
-------
56809d1b91 Parameterize list of retryed Http methods
This PR was merged into the 3.4 branch.
Discussion
----------
[Form] Sync translations
| Q | A
| ------------- | ---
| Branch? | 3.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<!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | n/a
Commits
-------
280a27fc16 [Form] Sync translations
This PR was squashed before being merged into the 5.x branch.
Discussion
----------
[RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38489
| License | MIT
| Doc PR | todo
After discussing #38489 with @wouterj, he agreed we should add `Limit::getLimit()` but this method name was unfortunate. We decided to rename the `Limit` object to `RateLimit` which, IMO, is a better name for the object and is inline with how this concept is described in the [RateLimit Header Fields for HTTP RFC](https://tools.ietf.org/id/draft-polli-ratelimit-headers-00.html).
Commits
-------
c5361cfc58 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()
This PR was squashed before being merged into the 5.x branch.
Discussion
----------
[Form] Add missing invalid_message translations
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Some invalid messages were missed in #30931 (probably because of the old age of that PR). This PR adds all missing translation keys and a missing invalid message for the new WeekType.
I've also added the dutch translations (might be up for improvement, but it's a start). We should probably initiate another community initiative to translate these new messages (only a couple languages include the new invalid messages yet).
Commits
-------
86c78b6302 Added dutch translations for new invalid messages
301f0aa0db Added missing invalid messages
This PR was merged into the 4.4 branch.
Discussion
----------
Enable Doctrine tests on php 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
Continuation of #38636 on 4.4.
Commits
-------
c65c6ea75d Don't skip Doctrine tests on php 8.
This PR was merged into the 3.4 branch.
Discussion
----------
Enable Doctrine tests on php 8
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
Following doctrine/dbal#4347, this PR enables all Doctrine tests on php 8.
Commits
-------
f4a99b2361 Don't skip Doctrine tests on php 8.
This PR was merged into the 5.1 branch.
Discussion
----------
[Messenger][Doctrine] Avoid early db access for pgsql detection
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37069
| License | MIT
| Doc PR | -
Keeps the connection lazy using an instanceof check on the DBAL driver instead.
Commits
-------
c4cc4a338b [Messenger][Doctrine] Avoid early db access for pgsql detection
This PR was merged into the 3.4 branch.
Discussion
----------
Bump APCu to 5.1.19 on Travis
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This PR reverts one of the hack we had to apply to the Travis configuration in order to get the CI to work with PHP 8. Since we did not have a compatible stable APCu release we pulled a snapshot from GitHub. APCu 5.1.19 should be compatible now, so let's use it.
I've bumped to that release for our PHP 7 build as well because why not. 😃
Commits
-------
5d9d62cf4c Bump APCu to 5.1.19 on Travis.
This PR was merged into the 3.4 branch.
Discussion
----------
[DoctrineBridge] indexBy does not refer to attributes, but to column names
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37982
| License | MIT
| Doc PR |
Commits
-------
af1a6208ec indexBy does not refer to attributes, but to column names
This PR was merged into the 5.x branch.
Discussion
----------
[DoctrinBridge] make Uid types stricter
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Reviewing #38600 made me realize we don't need to deal with converting strings to db values.
We should only support converting actual `AbstractUid` instances in the DB.
Also, the binary types should *not* extend `GuidType`.
Commits
-------
ba31d0ee59 [DoctrinBridge] make Uid types stricter
This PR was merged into the 3.4 branch.
Discussion
----------
[WebProfilerBundle] Hide debug toolbar in print view
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
The debug toolbar is intended to be hidden when printed. This was accomplished in 2.8 with [this PR](https://github.com/symfony/symfony/pull/23460). Since then, additional JavaScript code was added which results in `display: block` being applied directly to the toolbar element. This overrides the print style, which causes the toolbar to show up in the print view. I fixed this by adding `!important` to the print CSS display rule.
A few notes:
1. I hesitated to solve this with `!important` but couldn't come up with another way to make this work with the existing JavaScript code. Also, `profiler.css.twig` already has some `!important` styles, so I figured this was acceptable.
2. I wasn't sure how to write a test for this, but I am open to ideas.
Commits
-------
fb305160ca [WebProfilerBundle] Hide debug toolbar in print view
This PR was squashed before being merged into the 5.x branch.
Discussion
----------
[DoctrineBridge] Convert values to Rfc4122 before inserting them into the database
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#38599
| License | MIT
This PR formats the ULID into RFC4211 before inserting it into the database to avoid insertion failure on Postgres due to not recognized formating.
Commits
-------
fd3a6e8a0a [DoctrineBridge] Convert values to Rfc4122 before inserting them into the database
This PR was squashed before being merged into the 5.x branch.
Discussion
----------
[RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
While Javier wrote documentation for this new component, we found a couple of confusing elements that might need some tweaks:
* The `Limiter` class (previously called `LimiterFactory`) has imho a bit strange name, as it's not a limiter and it doesn't implement `LimiterInterface`. It can only new limiters. I believe `LimiterFactory` - like `LockFactory` - would be the most clear, but as that was rejected before, here is another proposal using `RateLimiter`.
* `reserve()` was now only part of the token bucket implementation. That made it a bit less useful. I think I've found a way to also allow reserving future hits in the fixed window implementation, so I've moved it to the `LimiterInterface`.
Commits
-------
cd34f21254 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter
This PR was merged into the 5.x branch.
Discussion
----------
[Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services
I| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | yes
| Tickets | /
| License | MIT
| Doc PR | todo
The `lock` service and aliases have been deprecated in #38576. This PR also deprecate the `lock.store` service and aliases.
People should always inject the factory into their services, except for one scenario: When they want building the `Lock` manually because they want to keep the key.
This scenario require declaring `lock.store` service and `PersisingStoreInterface` aliases.
This could be avoided if people had a method to create a lock from a given key.
This PR adds a `LockFactory::createFromKey()` method and deprecate all `lock.store` services
I also updated the Semaphore component for consistency, and helping people to only inject the SemahoreFactory.
nb: use cases for serializing the keys:
- Netflix allows only 5 users of the same family at the same time.
- An holiday apartment rental avoid users putting the same apartment in the basket
- ...
Commits
-------
91fa3e311d Deprecate lock.store aliases
This PR was merged into the 4.4 branch.
Discussion
----------
[Doctrine] Reference the correct interface in the RegistryInterface deprecation …
…in upgrade notes
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38281
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
Commits
-------
d019d38220 Reference the correct interface in the RegistryInterface deprecation in upgrade notes