Commit Graph

44029 Commits

Author SHA1 Message Date
Nicolas Grekas a2f46664a7 Merge branch '4.3' into 4.4
* 4.3:
  bumped Symfony version to 4.3.5
  Sort components on CI
  fix parameter type declaration and make fabbot happy
  Upgraded CI Composer
  updated VERSION for 4.3.4
  updated CHANGELOG for 4.3.4
  bumped Symfony version to 3.4.32
  updated VERSION for 3.4.31
  update CONTRIBUTORS for 3.4.31
  updated CHANGELOG for 3.4.31
2019-08-27 09:26:16 +02:00
Nicolas Grekas 28f4c09e2d Merge branch '3.4' into 4.3
* 3.4:
  Sort components on CI
  fix parameter type declaration and make fabbot happy
  Upgraded CI Composer
  bumped Symfony version to 3.4.32
  updated VERSION for 3.4.31
  update CONTRIBUTORS for 3.4.31
  updated CHANGELOG for 3.4.31
2019-08-27 09:25:30 +02:00
Fabien Potencier c08b42aacb minor #33349 [Form] fix parameter type declaration and make fabbot happy (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] fix parameter type declaration and make fabbot happy

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

19b292893a fix parameter type declaration and make fabbot happy
2019-08-27 08:45:10 +02:00
Fabien Potencier aa0152e76b minor #33348 Upgraded CI Composer (GrahamCampbell)
This PR was merged into the 3.4 branch.

Discussion
----------

Upgraded CI Composer

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

a790eeefa0 Upgraded CI Composer
2019-08-27 08:44:31 +02:00
Fabien Potencier e1e5a4601d bumped Symfony version to 4.3.5 2019-08-27 08:04:16 +02:00
Nicolas Grekas 55517636b7 Sort components on CI 2019-08-27 07:15:48 +02:00
Christian Flothmann 19b292893a fix parameter type declaration and make fabbot happy 2019-08-26 22:15:52 +02:00
Graham Campbell a790eeefa0
Upgraded CI Composer 2019-08-26 19:51:50 +01:00
Fabien Potencier f1edae020d
Merge pull request #33345 from fabpot/release-4.3.4
released v4.3.4
2019-08-26 18:48:03 +02:00
Fabien Potencier c94ad9e449 updated VERSION for 4.3.4 2019-08-26 18:47:42 +02:00
Fabien Potencier ca43156460 updated CHANGELOG for 4.3.4 2019-08-26 18:47:28 +02:00
Fabien Potencier afe2f0c511 bumped Symfony version to 3.4.32 2019-08-26 18:46:48 +02:00
Fabien Potencier 944e048081
Merge pull request #33344 from fabpot/release-3.4.31
released v3.4.31
2019-08-26 18:36:53 +02:00
Fabien Potencier d92fb4e8ba updated VERSION for 3.4.31 2019-08-26 18:36:29 +02:00
Fabien Potencier 10bf628655 update CONTRIBUTORS for 3.4.31 2019-08-26 18:36:24 +02:00
Fabien Potencier e5922a8dcf updated CHANGELOG for 3.4.31 2019-08-26 18:36:15 +02:00
Nicolas Grekas c1bca297cf Merge branch '4.3' into 4.4
* 4.3:
  [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
  [Messenger] Stop worker when it should stop
2019-08-26 18:27:46 +02:00
Nicolas Grekas 43e1c8eccf Merge branch '3.4' into 4.3
* 3.4:
  [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
2019-08-26 18:27:33 +02:00
Nicolas Grekas 3debf910fb minor #33343 [ErrorHandler] make DebugClassLoader turn multi-types declarations to "object" (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] make DebugClassLoader turn multi-types declarations to "object"

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

When `@return Foo|Bar` is found, this makes DebugClassLoader generate an `object` return type.
When all classes in the combo type contain `Iterator`, it generates an `iterable` type instead.

Commits
-------

0abd2712e9 [ErrorHandler] make DebugClassLoader turn multi-types declarations to "object"
2019-08-26 18:09:07 +02:00
Fabien Potencier a5d776d51d bug #33335 [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases (pdommelen)
This PR was squashed before being merged into the 3.4 branch (closes #33335).

Discussion
----------

[DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | maybe
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33307
| License       | MIT
| Doc PR        | -

Changed the getServiceIds implementation in the Container base class to include aliases. Modified existing tests. Added test which uses the PhpDumper.
Fixes https://github.com/symfony/symfony/issues/33307

Without this patch the implementations of the container are inconsistent in whether or not they return aliases (see issue). Fixing this could be considered a BC break for the affected Container class.

As an alternative to keep the behaviour in Container unchanged, the dumped container could be patched instead. And then only apply this version of the patch to master. This however keeps the inconsistency between Container and ContainerBuilder.

Commits
-------

834d5cbce2 [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
2019-08-26 18:07:57 +02:00
pdommelen 834d5cbce2 [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases 2019-08-26 18:07:49 +02:00
Nicolas Grekas 0abd2712e9 [ErrorHandler] make DebugClassLoader turn multi-types declarations to "object" 2019-08-26 18:02:12 +02:00
Fabien Potencier 113fa0bc50 bug #33298 [Messenger] Stop worker when it should stop (tienvx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Stop worker when it should stop

| Q             | A
| ------------- | ---
| Branch?       | 4.3 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | NA   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | NA <!-- required for new features -->

<!--
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):
 - 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.
-->

There are 2 things about this PR:
* This PR fix the bug when using `limit`, `memory-limit`, `time-limit` options with command `messenger:consume`, these options does not work if the receiver return multiple messages
* This PR is the continue work of https://github.com/symfony/symfony/pull/32783

Commits
-------

5c1f3a2414 [Messenger] Stop worker when it should stop
2019-08-26 17:58:46 +02:00
Nicolas Grekas 6dd9d24e50 minor #33236 Add return-types with help from DebugClassLoader in the CI (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Add return-types with help from DebugClassLoader in the CI

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33228
| License       | MIT
| Doc PR        | -

I've spent a great deal of time on this PR, experimenting with adding return types to the codebase.

TL;DR: my conclusion is that we cannot make it for 5.0.

There are two reasons for this:
1. The burden this will put on the community is immense, especially when considering that third party libs must also be updated for any apps to work at all on a return-typed 5.0. Symfony must add them last, not first.
2. We need return type covariance, yet this won't be available before PHP 7.4, while 5.0 supports 7.2.

What's attached?
- ~a draft patching logic in `DebugClassLoader` to add return-type where it discovers this should be done~
- return types added automatically thanks to #33283
- ~manual fixes for situations not handled (yet, if possible at all) by that logic in `DebugClassLoader`~ #33332

What's achieved? Tests are green \o/

At this stage, I think we have to acknowledge we won't add return-types in 5.0 but prepare a serious plan to add them in 6.0.

This plan could be:
- [x] make DebugClassLoader able to automate adding return types.
- [x] in 4.4: add all possible return types that don't break BC, e.g. in `Tests` and in generated code
- [x] spot and fix places where annotations aren't accurate, add more annotations where possible.
- [x] ensure `DebugClassLoader` triggers the best possible deprecations that encourage ppl to add return-types in their libs/apps. This means we could decide to disable the current ones (see #33235) and to re-enable them in 5.1. This will also give us the time to fine-tune the tooling (item 1. on this list)

Ideally, we could reach a point where we could test branch 4.4 *with* return-types: we'd use the tooling to add them automatically in the CI job, then we'd run tests and they should be green. Let's do this?

Help Wanted, here is how:

*With PHP 7.4*, run `php .github/patch-types.php`. This will add return types everywhere possible.

Then run tests, e.g. `./phpunit src/Symfony/Component/HttpFoundation --exclude-group legacy,issue-32995`

Here are the components that fail with return types added, please help me check them all with a PR on [my fork](https://github.com/nicolas-grekas/symfony/tree/eh-return-types):
 - [x] src/Symfony/Bridge/Doctrine
 - [x] src/Symfony/Bridge/Monolog
 - [x] src/Symfony/Bridge/PhpUnit
 - [x] src/Symfony/Bridge/ProxyManager
 - [x] src/Symfony/Bridge/Twig
 - [x] src/Symfony/Bundle/DebugBundle
 - [x] src/Symfony/Bundle/FrameworkBundle
 - [x] src/Symfony/Bundle/SecurityBundle
 - [x] src/Symfony/Bundle/TwigBundle
 - [x] src/Symfony/Bundle/WebProfilerBundle
 - [x] src/Symfony/Bundle/WebServerBundle
 - [x] src/Symfony/Component/Asset
 - [x] src/Symfony/Component/BrowserKit
 - [x] src/Symfony/Component/Cache
 - [x] https://github.com/nicolas-grekas/symfony/pull/28 src/Symfony/Component/Config
 - [x] src/Symfony/Component/Console
 - [x] src/Symfony/Component/CssSelector
 - [x] src/Symfony/Component/Debug
 - [x] https://github.com/nicolas-grekas/symfony/pull/28 src/Symfony/Component/DependencyInjection
 - [x] src/Symfony/Component/DomCrawler
 - [x] src/Symfony/Component/Dotenv
 - [x] src/Symfony/Component/ErrorHandler
 - [x] src/Symfony/Component/ErrorRenderer
 - [x] https://github.com/nicolas-grekas/symfony/pull/24 src/Symfony/Component/EventDispatcher
 - [x] src/Symfony/Component/ExpressionLanguage
 - [x] src/Symfony/Component/Filesystem
 - [x] src/Symfony/Component/Finder
 - [x] src/Symfony/Component/Form
 - [x] src/Symfony/Component/HttpClient
 - [x] src/Symfony/Component/HttpFoundation
 - [x] src/Symfony/Component/HttpKernel
 - [x] src/Symfony/Component/Inflector
 - [x] src/Symfony/Component/Intl
 - [x] src/Symfony/Component/Ldap
 - [x] src/Symfony/Component/Lock
 - [x] src/Symfony/Component/Mailer
 - [x] src/Symfony/Component/Messenger
 - [x] src/Symfony/Component/Mime
 - [x] src/Symfony/Component/OptionsResolver
 - [x] src/Symfony/Component/Process
 - [x] src/Symfony/Component/PropertyAccess
 - [x] src/Symfony/Component/PropertyInfo
 - [x] https://github.com/nicolas-grekas/symfony/pull/25 src/Symfony/Component/Routing
 - [x] https://github.com/nicolas-grekas/symfony/pull/26 src/Symfony/Component/Security
 - [x] src/Symfony/Component/Security/Core
 - [x] src/Symfony/Component/Security/Guard
 - [x] src/Symfony/Component/Security/Http
 - [x] https://github.com/nicolas-grekas/symfony/pull/29 src/Symfony/Component/Serializer
 - [x] src/Symfony/Component/Security/Csrf
 - [x] src/Symfony/Component/Stopwatch
 - [x] src/Symfony/Component/Templating
 - [x] https://github.com/nicolas-grekas/symfony/pull/27 src/Symfony/Component/Translation
 - [x] src/Symfony/Component/Validator
 - [x] src/Symfony/Component/VarDumper
 - [x] src/Symfony/Component/VarExporter
 - [x] src/Symfony/Component/WebLink
 - [x] src/Symfony/Component/Workflow
 - [x] src/Symfony/Component/Yaml
 - [x] src/Symfony/Contracts

Commits
-------

11149a1fbb Add return-types with help from DebugClassLoader in the CI
2019-08-26 15:38:09 +02:00
Nicolas Grekas 11149a1fbb Add return-types with help from DebugClassLoader in the CI 2019-08-26 15:31:28 +02:00
Yonel Ceruto db9549d775 minor #33336 [HttpKernel] do not mock removed getPublicDir() method (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] do not mock removed getPublicDir() method

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

54cb471 do not mock removed getPublicDir() method
2019-08-26 09:25:46 -04:00
Christian Flothmann 54cb4713b2 do not mock removed getPublicDir() method 2019-08-26 15:05:55 +02:00
Nicolas Grekas d887a0d941 feature #33283 [ErrorHandler] make DebugClassLoader able to add return type declarations (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] make DebugClassLoader able to add return type declarations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33236
| License       | MIT
| Doc PR        | -

This is the current state of the patching logic I'm using in `DebugClassLoader`.
I run it after a `composer i -o` with the excluded classes emptied.
It's not perfect, it requires manual changes/review, but it did the job so far.

Patching is enabled with the `SYMFONY_PATCH_TYPE_DECLARATIONS` env var.
The value of the env var is an URL-encoded array, with the following parameters as of now:
- `force=0/1/docblock`:
  - `0` adds return types only to non-BC breaking places: internal/final/test methods;
  - `1` adds return types everywhere possible, potentially breaking BC with child classes that didn't declare the return types before;
  - `docblock` adds `@return` annotations to opt-out from deprecation notices that `DebugClassLoader` trigger otherwise - the annotation meaning: "I know a return type should be used here instead of an annotation, but I can't add it for BC reasons for now".
- `php71-compat=0/1`: to prevent using the `object` type when the code must be compatible with PHP 7.1

Commits
-------

72f6a970fc [ErrorHandler] make DebugClassLoader able to add return type declarations
2019-08-26 13:32:03 +02:00
Nicolas Grekas a6e75fd84d Merge branch '4.3' into 4.4
* 4.3:
  [Bridge/Doctrine] fix review
2019-08-26 13:29:32 +02:00
Nicolas Grekas 861b483d83 Merge branch '3.4' into 4.3
* 3.4:
  [Bridge/Doctrine] fix review
2019-08-26 13:29:20 +02:00
Nicolas Grekas 0a00af2b77 [Bridge/Doctrine] fix review 2019-08-26 13:01:58 +02:00
Nicolas Grekas 72f6a970fc [ErrorHandler] make DebugClassLoader able to add return type declarations 2019-08-26 11:53:50 +02:00
Nicolas Grekas 123fc624e5 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
  fix merge
2019-08-26 11:32:48 +02:00
Nicolas Grekas 97832ec5cd fix merge 2019-08-26 11:28:48 +02:00
Nicolas Grekas 5a6558b7fa fix merge 2019-08-26 11:20:32 +02:00
Nicolas Grekas 089097046b Merge branch '4.3' into 4.4
* 4.3: (23 commits)
  fix merge
  [SecurityBundle] fix return type declarations
  [BrowserKit] fix return type declarations
  [PropertyInfo] fix return type declarations
  [Bridge/Doctrine] fix return type declarations
  [Form] fix return type declarations
  [Console] fix return type declarations
  [Intl] fix return type declarations
  [Templating] fix return type declarations
  [DomCrawler] fix return type declarations
  [Validator] fix return type declarations
  [Process] fix return type declarations
  [Workflow] fix return type declarations
  [Cache] fix return type declarations
  [Serializer] fix return type declarations
  [Translation] fix return type declarations
  [DI] fix return type declarations
  [Config] fix return type declarations
  [HttpKernel] Fix return type declarations
  [Security] Fix return type declarations
  ...
2019-08-26 11:00:56 +02:00
Nicolas Grekas 9e154e7728 fix merge 2019-08-26 10:55:16 +02:00
Nicolas Grekas 74b2802197 Merge branch '3.4' into 4.3
* 3.4: (21 commits)
  [SecurityBundle] fix return type declarations
  [BrowserKit] fix return type declarations
  [PropertyInfo] fix return type declarations
  [Bridge/Doctrine] fix return type declarations
  [Form] fix return type declarations
  [Console] fix return type declarations
  [Intl] fix return type declarations
  [Templating] fix return type declarations
  [DomCrawler] fix return type declarations
  [Validator] fix return type declarations
  [Process] fix return type declarations
  [Workflow] fix return type declarations
  [Cache] fix return type declarations
  [Serializer] fix return type declarations
  [Translation] fix return type declarations
  [DI] fix return type declarations
  [Config] fix return type declarations
  [HttpKernel] Fix return type declarations
  [Security] Fix return type declarations
  [Routing] Fix return type declarations
  ...
2019-08-26 10:26:39 +02:00
Nicolas Grekas e9886e4e4c minor #33332 [3.4] Fix return types declarations (nicolas-grekas, derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Fix return types declarations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This is the subset of #33236 that applies to branch 3.4.
This PR ensures return types are correctly declared, and adjust some implementations that return incorrect types.

Commits
-------

2ceb453ee5 [SecurityBundle] fix return type declarations
c1d7a88b57 [BrowserKit] fix return type declarations
07405e2c60 [PropertyInfo] fix return type declarations
5f3b4b616b [Bridge/Doctrine] fix return type declarations
8706f18ea8 [Form] fix return type declarations
a32a713045 [Console] fix return type declarations
523e9b9feb [Intl] fix return type declarations
73f504c94a [Templating] fix return type declarations
2b8ef1d6d7 [DomCrawler] fix return type declarations
2ea98bb4a1 [Validator] fix return type declarations
6af0c80342 [Process] fix return type declarations
28646c7f9b [Workflow] fix return type declarations
5f9aaa743c [Cache] fix return type declarations
5072cfc7f8 [Serializer] fix return type declarations
70feaa407e [Translation] fix return type declarations
ca1fad471e [DI] fix return type declarations
9c63be489e [Config] fix return type declarations
05fe553666 [HttpKernel] Fix return type declarations
e0d79f71ed [Security] Fix return type declarations
c1b7118d7c [Routing] Fix return type declarations
ef5ead0005 [HttpFoundation] fix return type declarations
2019-08-26 10:20:21 +02:00
Nicolas Grekas 2ceb453ee5 [SecurityBundle] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas c1d7a88b57 [BrowserKit] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 07405e2c60 [PropertyInfo] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 5f3b4b616b [Bridge/Doctrine] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 8706f18ea8 [Form] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas a32a713045 [Console] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 523e9b9feb [Intl] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 73f504c94a [Templating] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 2b8ef1d6d7 [DomCrawler] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 2ea98bb4a1 [Validator] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas 6af0c80342 [Process] fix return type declarations 2019-08-26 09:52:58 +02:00