This PR was squashed before being merged into the 2.8 branch (closes#16881).
Discussion
----------
Improved the code of the commands that use the new SymfonyStyle class
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16000
| License | MIT
| Doc PR | -
When we updated the commands to use the new SymfonyStyle, I did the mistake of overriding the `$output` variable. Now we use the `$io` variable to wrap the SymfonyStyle and to perform input and output operations.
Commits
-------
c5067da Improved the code of the commands that use the new SymfonyStyle class
This PR was merged into the 2.8 branch.
Discussion
----------
Suggested Process dependency
The `server:run` command requires the Process component.
Commits
-------
7c1231a Suggested Process dependency
This PR was merged into the 2.3 branch.
Discussion
----------
[Process] Fix stopping a process on Windows
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15617
| License | MIT
| Doc PR | -
Commits
-------
80fb51c [Process] Fix stopping a process on Windows
This PR was merged into the 2.8 branch.
Discussion
----------
[PhpUnitBridge] Add weak-verbose mode and match against message instead of test name
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #14475
| License | MIT
| Doc PR | -
This is double a DX bug fix:
- the weak-verbose allows showing messages but exit with 0 (see #14475)
- matching against $class::$method was a mistake of mine: you can already `--filter` in phpunit to get by-test filtering but you can't select which message should be traced without this change. I stumbled upon this limitation while doing a Symfony 3 migration workshop...
Commits
-------
a670ff1 [PhpUnitBridge] Add weak-verbose mode and match against message instead of test name
This PR was merged into the 2.8 branch.
Discussion
----------
[2.8] Added a note about the new requirement iconv
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16778
| License | MIT
| Doc PR | none
When upgrading from 2.7 to 2.8, we need to ensure that `ext-iconv` is present. This PR adds a note about this to the UPGRADE-2.8 file.
Commits
-------
af4f5c5 Added a note about the new requirement iconv.
This PR was merged into the 2.8 branch.
Discussion
----------
[DX][YAML] Improved Deprecation Notices
Show the actual invalid string for the Yaml deprecations to ease the upgrade as you can grep the strings.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Related #16745
Commits
-------
3179407 Improved error messages for Yaml Deprecations
This PR was merged into the 2.3 branch.
Discussion
----------
CS: general fixes
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Commits
-------
d3f671e CS: general fixes
This PR was merged into the 2.3 branch.
Discussion
----------
[MonologBridge] Added a test case for the Logger class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | none
So far, there is no test case that ensures that the `Symfony\Bridge\Monolog\Logger` can be instantiated. Because of this, bug #16837 was not discovered by the tests. This PR adds a simple test case that tests some basic functionality of that particular class.
Commits
-------
78c0a6e Added a test case for the Logger class.
This PR was merged into the 2.8 branch.
Discussion
----------
[Form] Fix choices defined as Traversable
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16792
| License | MIT
| Doc PR | -
Commits
-------
021d93a [Form] Fix choices defined as Traversable
* 2.7:
Set the redraw frequency at least to 1. Setting it to 0 would otherwise produce an error.
[Process] Unset callback after stop to free memory
Improve error message for undefined DIC aliases
[VarDumper] fixed .sf-dump z-index
[DependencyInjection] Validate class names and factory methods
ampq → amqp
Fix typo
CS: remove unneeded parentheses around control statements
[TwigBridge] Clean deps now that 2.8.0 is tagged
This PR was submitted for the 2.8 branch but it was merged into the 2.7 branch instead (closes#16742).
Discussion
----------
[Console][ProgressBar] redrawFrequency should never be 0
Set the redraw frequency at least to 1. Setting it to 0 would otherwise produce a "division by zero" error.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
### why?
I had a piece of code that used a ProgressBar and set the redraw frequency to a calculated value. In some cases this calculated value was 0 (or just smaller than 1, internally a cast to `int` is made). In the `setProgress` the redraw frequency is used for a calculation of the period. There the error happens (and shows that redraw frequency should never be 0).
### Ticket
There is no ticket concerning this issue. I could do one, if you want.
### Tests
This gets tested implicitly in `ProgressBarTest::testNonDecoratedOutputWithoutMax`.
Commits
-------
a1c207c Set the redraw frequency at least to 1. Setting it to 0 would otherwise produce an error.
This PR was merged into the 2.7 branch.
Discussion
----------
[TwigBridge] Clean deps now that 2.8.0 is tagged
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
e6efe7e [TwigBridge] Clean deps now that 2.8.0 is tagged
This PR was merged into the 2.8 branch.
Discussion
----------
[MonologBridge] Monolog Bridge 2.8 is incompatible with HttpKernel 3.0
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16837
| License | MIT
| Doc PR | none
Greetings from the SymfonyCon hackday. I wanted to start my day with an easy PR. 😉
As pointed out by @anlutro in #16837, MonologBridge 2.8 uses a deprecated interface of HttpKernel that has been removed in 3.0. Because of this, MonologBridge 2.8 must not be marked as compatible with HttpKernel 3.0 in composer.json.
Commits
-------
cb8d2c3 Disallow http-kernel 3.x, fixes#16837.
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#16798).
Discussion
----------
[Process] Unset callback after stop to free memory
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
As of yet, a `Process` instance can't free memory.
The built-in callback has a self-reference to the intance not cleared after instance destruction.
I've tried to change both `buildCallback` and https://github.com/symfony/process/blob/v2.7.6/Process.php#L1373 usage to avoid self-referencing, but it can't be done without breaking BC, and the memory issue is still there.
A simple test script (that obiously can't be embedded in unit-tests)
```php
for ($inc = 0; $inc < 10000; $inc++) {
$process = new Symfony\Component\Process\Process('echo 1');
$process->mustRun();
$process->stop();
unset($process);
echo (memory_get_usage(true) / 1000000) . ' MB ' . $inc . PHP_EOL;
}
```
Before:
```
1.572864 MB 0
5.505024 MB 9999
```
After:
```
1.572864 MB 0
1.572864 MB 9999
```
Ok, in this simple scenario 4 MB of RAM is nothing, but in our business app full of IOC where `unset`-ting is hard, our RAM explodes.
After `stop()`, the callback is no longer necessary.
To be clear, the garbage collector in the previous example was already active.
Deactivating it manually, which somewhere is needed to avoid particluar segfaults, obiously leads to worse scenarios:
Before:
```
gc_disable();
1.572864 MB 0
29.360128 MB 9999
```
After:
```
gc_disable();
1.572864 MB 0
1.572864 MB 9999
```
Commits
-------
ec93b9a [Process] Unset callback after stop to free memory
This PR was squashed before being merged into the 2.3 branch (closes#16799).
Discussion
----------
Improve error message for undefined DIC aliases
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | n/a
Additionally, I think the arguments need to be the other way round (`templating` is an alias pointing to `templating.engine.twig`).
Commits
-------
9195cd3 Improve error message for undefined DIC aliases
This PR was merged into the 2.7 branch.
Discussion
----------
[DependencyInjection] Validate class names and factory methods
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Because, you know, people do mistakes... I saw this happening during a workshop: when e.g. the factory tag has no `method` attribute, we generate an container that embeds a parse error.
Commits
-------
b2e3850 [DependencyInjection] Validate class names and factory methods
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#16825).
Discussion
----------
[VarDumper] fix .sf-dump z-index (debug bar conflict)
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #16824
| License | MIT
| Doc PR | -
Just changed the z-index because the twig dump is actually displaying over the debug bar (#16824).
Commits
-------
a72efb9 [VarDumper] fixed .sf-dump z-index
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#16821).
Discussion
----------
[VarDumper] ampq → amqp
| Q | A
| ------------- | ---
| Fixed tickets | #16821
| License | MIT
Fixed typo in code comment.
Commits
-------
717caaa ampq → amqp
This PR was merged into the 2.3 branch.
Discussion
----------
CS: remove unneeded parentheses around control statements
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | ?
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Commits
-------
45d250d CS: remove unneeded parentheses around control statements
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes#16772).
Discussion
----------
Refactoring EntityUserProvider::__construct() to not do work, cause cache warm error
| Q | A
| ------------- | ---
| Bug fix? | "yes"
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | n/a
This fixes a "Database not Found" error when using `doctrine/orm` 2.5 while warming up your cache under certain situations. Basically, if you use the `EntityUserProvider`, then during cache warmup, Twig requires the `security.authorization_checker` which eventually requires this `EntityUserProvider`, which previously caused Doctrine to calculate the metadata for your User class. If no database exists (and you haven't specified the platform), you'll get the error.
More broadly, this simply tries to do less work in the constructor. It's a "bug fix", only kind of, but as it's completely an internal refactoring, it should be quite safe.
Thanks!
Commits
-------
44a2861 Refactoring EntityUserProvider::__construct() to not do work, cause cache warm error