Commit Graph

28065 Commits

Author SHA1 Message Date
Fabien Potencier
53b55fca36 minor #20424 [HttpKernel] Removed forgotten setCacheVersionInfo() (ro0NL)
This PR was squashed before being merged into the 3.2-dev branch (closes #20424).

Discussion
----------

[HttpKernel] Removed forgotten setCacheVersionInfo()

| Q             | A
| ------------- | ---
| Branch?       | "master"
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no-ish
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License       | MIT
| Doc PR        | reference to the documentation PR, if any

Forgotten in #14351

Commits
-------

8e70193 [HttpKernel] Removed forgotten setCacheVersionInfo()
2016-11-06 10:43:42 -08:00
Roland Franssen
8e70193e99 [HttpKernel] Removed forgotten setCacheVersionInfo() 2016-11-06 10:43:40 -08:00
Fabien Potencier
a8967ba625 fixed deprecation notices 2016-11-06 08:27:54 -08:00
Fabien Potencier
38bf11939b fixed test 2016-11-06 08:25:04 -08:00
Fabien Potencier
832686b7a2 Merge branch '3.1'
* 3.1:
  fixed CS
  Properly format value in UniqueEntityValidator
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  Remove double use Statement
  Improved the design of the metrics in the profiler
  [Yaml] set arguments depending on the PHP version
  [Console] Fix infinite loop on missing input
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:24:48 -08:00
Fabien Potencier
0255cb143f Merge branch '2.8' into 3.1
* 2.8:
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  Remove double use Statement
  Improved the design of the metrics in the profiler
  [Console] Fix infinite loop on missing input
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:23:47 -08:00
Fabien Potencier
a66e9ff77e Merge branch '2.7' into 2.8
* 2.7:
  [Translation][fallback] add missing resources in parent catalogues.
  removed a deprecation notice
  [Form] Fix show float values as choices values in ChoiceType
  [HttpFoundation][Session] memcached connection should not be closed
2016-11-06 08:21:30 -08:00
Fabien Potencier
ba8a12a898 fixed CS 2016-11-06 08:20:57 -08:00
Fabien Potencier
a42973ee36 bug #20287 Properly format value in UniqueEntityValidator (alcaeus)
This PR was merged into the 3.1 branch.

Discussion
----------

Properly format value in UniqueEntityValidator

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

This PR fixes a small issue introduced in #15279. Having an array in a field considered for a unique check causes an array to string conversion error in the translator. This can be avoided by formatting the value parameter with `formatValue`.

Commits
-------

9043a55 Properly format value in UniqueEntityValidator
2016-11-06 08:15:28 -08:00
Fabien Potencier
8668aec34e minor #20421 Twig deprecation removal (fabpot)
This PR was merged into the 2.7 branch.

Discussion
----------

Twig deprecation removal

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

Commits
-------

eb0d6c9 removed a deprecation notice
2016-11-06 08:13:45 -08:00
Fabien Potencier
b06c00edcd bug #20422 [Translation][fallback] add missing resources in parent catalogues. (aitboudad)
This PR was merged into the 2.7 branch.

Discussion
----------

[Translation][fallback] add missing resources in parent catalogues.

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

Commits
-------

27c91e5 [Translation][fallback] add missing resources in parent catalogues.
2016-11-06 08:10:50 -08:00
Fabien Potencier
94d9bfbc1d bug #20378 [Form] Fixed show float values as choice value in ChoiceType (yceruto)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fixed show float values as choice value in ChoiceType

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

There is a closed [issue][1] related to this before Symfony 2.7 (when choice value still was the key from the `array`). This issue already happened in 2.7+ but now inside Symfony core.

Information
-----------

[This method][3] checks whether the given choices can be cast to strings without generating duplicates (3ab8189080 in #16705):

```php
private function castableToString(array $choices, array &$cache = array())
{
    foreach ($choices as $choice) {
        if (is_array($choice)) {
            if (!$this->castableToString($choice, $cache)) {
                return false;
            }

            continue;
        } elseif (!is_scalar($choice)) {
            return false;
        } elseif (isset($cache[$choice])) {  // <---- red breakpoint
            return false;
        }

        $cache[$choice] = true; // <---- red breakpoint
    }

    return true;
}
```

So it should to keep [scalar values (integer, float, string or boolean)][2] as choice values always (unless have duplicates values).

The Problem
-----------

But in this situation it doesn't happen:

```php
$form = $this->createFormBuilder()
    ->add('foo', ChoiceType::class, [
        'choices' => [
            'Min' => 0.5,
            'Mid' => 1.0,
            'Max' => 1.5,
        ]
    ])
    ->getForm();
```

**Output:**

```html
<select id="form_foo" name="form[foo]">
  <option value="0">Min</option>
  <option value="1">Mid</option>
  <option value="2">Max</option>
</select>
```

[**Why?**][5]

If the key of the array is a float number, it's interpreted as integer automatically:

```php
// ...

$cache[$choice] = true;

// when $choice = 0.5: $cache = [0 => true]
// when $choice = 1.0: $cache = [0 => true, 1 => true]
```

Then, when `$choice = 1.5` [this sentence][4] `isset($cache[1.5])` returns `true` because really checks `isset($cache[1])` and this key already exists, so `castableToString()` returns `false` (detected as duplicate) and the choices values are generated incrementing integers as values.

The PR's Effect
-------------

**Before:**

```html
<select id="form_foo" name="form[foo]">
  <option value="0">Min</option>
  <option value="1">Mid</option>
  <option value="2">Max</option>
</select>
```

**After:**

```html
<select id="form_foo" name="form[foo]">
  <option value="0.5">Min</option>
  <option value="1">Mid</option>
  <option value="1.5">Max</option>
</select>
```

  [1]: https://github.com/symfony/symfony/issues/13817
  [2]: http://php.net/manual/en/function.is-scalar.php
  [3]: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php#L228
  [4]: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php#L239
  [5]: https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php#L243

Commits
-------

3564228 [Form] Fix show float values as choices values in ChoiceType
2016-11-06 08:03:54 -08:00
Andreas Braun
9043a551b2
Properly format value in UniqueEntityValidator 2016-11-06 10:18:09 +01:00
Abdellatif Ait boudad
27c91e514e [Translation][fallback] add missing resources in parent catalogues. 2016-11-06 08:07:39 +00:00
Fabien Potencier
2dd77a6b9b feature #20416 [Bridge\Monolog][FrameworkBundle] Add & wire a DebugProcessor (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[Bridge\Monolog][FrameworkBundle] Add & wire a DebugProcessor

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

As identified in #20370, collecting the log records for the profiler should happen before any processor.
The only way to do so is by registering a processor to do exactly that.
Since the last added processor is called first, this one is wired in a compiler pass that is called after other processors are registered.

The DebugHandler class being now useless, it is deprecated.
If this approach is accepted, I'll send a PR on monolog bundle & silex to leverage it.

Commits
-------

7572a53 [Bridge\Monolog][FrameworkBundle] Add & wire a DebugProcessor
2016-11-06 00:17:03 -07:00
Fabien Potencier
eb0d6c94ca removed a deprecation notice 2016-11-05 23:09:07 -07:00
Fabien Potencier
5bd3a000d8 bug #20415 [DI][Serializer] Add missing deprecations (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DI][Serializer] Add missing deprecations

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

Commits
-------

90ba197 [DI][Serializer] Add missing deprecations
2016-11-05 22:52:53 -07:00
Yonel Ceruto
35642288fa [Form] Fix show float values as choices values in ChoiceType 2016-11-05 14:02:34 -04:00
Nicolas Grekas
7572a53b84 [Bridge\Monolog][FrameworkBundle] Add & wire a DebugProcessor 2016-11-05 10:30:35 +01:00
Nicolas Grekas
90ba197cef [DI][Serializer] Add missing deprecations 2016-11-04 22:11:55 +01:00
Fabien Potencier
3dcbdfdd39 minor #20414 [Console] Fix double use Statement (Jan Emrich)
This PR was merged into the 2.8 branch.

Discussion
----------

[Console] Fix double use Statement

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

Commits
-------

c3dacbb Remove double use Statement
2016-11-04 11:59:40 -07:00
Fabien Potencier
a55903628a minor #20412 [SecurityBundle] consistent "not authenticated" output in WDT (xabbuh)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[SecurityBundle] consistent "not authenticated" output in WDT

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

This makes the output in the toolbar when no token is present consistent
with what it looks like when there is a token.

**Before**:

<img width="335" alt="before" src="https://cloud.githubusercontent.com/assets/1957048/20016982/0841bde2-a2c2-11e6-8ec2-0bea84290e00.png">

**After**:

<img width="278" alt="after" src="https://cloud.githubusercontent.com/assets/1957048/20016981/083f3fae-a2c2-11e6-9ac0-0ad35b816411.png">

Commits
-------

1b05650 consistent "not authenticated" output in WDT
2016-11-04 11:18:25 -07:00
Christian Flothmann
1b05650962 consistent "not authenticated" output in WDT
This makes the output in the toolbar when no token is present consistent
with what it looks like when there is a token.
2016-11-04 19:04:00 +01:00
Jan Emrich
c3dacbb9a1 Remove double use Statement
Syntax Error in Helper/QuestionHelper.php
2016-11-04 18:49:05 +01:00
Fabien Potencier
8fd97217e7 bug #20294 Improved the design of the metrics in the profiler (javiereguiluz)
This PR was squashed before being merged into the 2.8 branch (closes #20294).

Discussion
----------

Improved the design of the metrics in the profiler

| Q | A |
| --- | --- |
| Branch? | 2.8 |
| Bug fix? | yes |
| New feature? | no |
| BC breaks? | no |
| Deprecations? | no |
| Tests pass? | yes |
| Fixed tickets | - |
| License | MIT |
| Doc PR |  |
- Performance panel now displays Sub-Requests a bit separated from the normal metrics
- Singular/plural: when there is 1 sub-request, we don't display "sub-request**s**" anymore
### Before

![before_subrequests](https://cloud.githubusercontent.com/assets/73419/19680261/5289fd26-9aa5-11e6-8702-1ac50997da78.png)
### After

![after_subrequests](https://cloud.githubusercontent.com/assets/73419/19680272/57324b44-9aa5-11e6-8d85-44cc089bd9f4.png)
- Add bottom margin to metrics so they are correctly displayed when the screen is very small.
### Before & After

![metrics-small-screens](https://cloud.githubusercontent.com/assets/73419/19680259/4f826654-9aa5-11e6-9ed8-1ffe9a3db8bf.png)

Commits
-------

d030a9d Improved the design of the metrics in the profiler
2016-11-04 08:17:22 -07:00
Javier Eguiluz
d030a9d403 Improved the design of the metrics in the profiler 2016-11-04 08:17:21 -07:00
Fabien Potencier
f37ac131e1 bug #20375 [HttpFoundation][Session] Fix memcache session handler (klandaika)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation][Session] Fix memcache session handler

| Q             | A
| ------------- | ---
| Branch?       | 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 3.0, 3.1, master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commit 0216e05605 removed the opening of connection to memcached server on call to `open()`, because it's assumed that connection is already opened. However, `close()` still closes the connection. As a result no more read/write calls can be made if session got closed, as the connection does not get reestablished.

Basically MemcacheSessionHandler should follow same logic as Memcache**d**SessionHandler, which is exactly what this MR acomplishes.

Commits
-------

0423d894 [HttpFoundation][Session] memcached connection should not be closed
2016-11-04 08:14:52 -07:00
Fabien Potencier
8d5c56348c Merge branch '2.7' into 2.8
* 2.7:
  [Console] Fix infinite loop on missing input
2016-11-04 08:10:10 -07:00
Fabien Potencier
74e65e1631 bug #20377 [Console] Fix infinite loop on missing input (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix infinite loop on missing input

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #20277
| License       | MIT
| Doc PR        | n/a

This fixes the infinite loop occurring when no input is provided for a question which has a validator and no max attempts (`null`), e.g. when using `SymfonyStyle::ask()` which automatically adds a validator.

Commits
-------

e64de1e [Console] Fix infinite loop on missing input
2016-11-04 08:09:28 -07:00
Fabien Potencier
79259aad3f minor #20410 [DI] Add missing deprecation in ContainerBuilder::addCompilerPass (nicolas-grekas)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DI] Add missing deprecation in ContainerBuilder::addCompilerPass

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

ping @Ener-Getick

Commits
-------

c0e880e [DI] Add missing deprecation in ContainerBuilder::addCompilerPass
2016-11-04 08:02:22 -07:00
Fabien Potencier
3625a6efc1 minor #20405 [SecurityBundle] Display firewall in debug bar even if not authenticated (chalasr)
This PR was squashed before being merged into the 3.2-dev branch (closes #20405).

Discussion
----------

[SecurityBundle] Display firewall in debug bar even if not authenticated

| Q             | A
| ------------- | ---
| Branch?       | master
| Tests pass?   | yes
| License       | MIT

Before:
![before](http://image.prntscr.com/image/897d1f2b43d64c5a8e15a95bf927a01c.png)

After:
![after](http://image.prntscr.com/image/4491a3aea6fe44dd8ca24a2b25a37596.png)

I will take any input to improve the result, I feel it not optimal.

Commits
-------

d81da79 [SecurityBundle] Display firewall in debug bar even if not authenticated
2016-11-04 08:00:34 -07:00
Robin Chalas
d81da793d3 [SecurityBundle] Display firewall in debug bar even if not authenticated 2016-11-04 08:00:33 -07:00
Fabien Potencier
fc557db841 minor #20407 [SecurityBundle] FirewallConfig's user_checker should be mandatory (chalasr)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[SecurityBundle] FirewallConfig's user_checker should be mandatory

| Q             | A
| ------------- | ---
| Branch?       | master
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/20404#issuecomment-258395500
| License       | MIT

Commits
-------

6754af2 [SecurityBundle] FirewallConfig's user_checker should be mandatory
2016-11-04 07:59:30 -07:00
Robin Chalas
6754af242b [SecurityBundle] FirewallConfig's user_checker should be mandatory 2016-11-04 15:30:10 +01:00
Fabien Potencier
172d0a4c08 minor #20408 [Yaml] set arguments depending on the PHP version (xabbuh)
This PR was merged into the 3.1 branch.

Discussion
----------

[Yaml] set arguments depending on the PHP version

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

Commits
-------

ad54d83 [Yaml] set arguments depending on the PHP version
2016-11-04 07:26:25 -07:00
Fabien Potencier
48ff2bd8a8 minor #20409 [SecurityBundle] Make the FirewallConfig class final (ogizanagi)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[SecurityBundle] Make the FirewallConfig class final

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

I suggest to make the `FirewallConfig` class final. This value object is only built by the `SecurityExtension` from the `SecurityBundle` and is not meant to be an extension point.

ping @chalasr

Commits
-------

5963627 [SecurityBundle] Make the FirewallConfig class final
2016-11-04 07:00:04 -07:00
Fabien Potencier
706d92541c minor #20404 [Security] improve some firewall config comments (xabbuh)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[Security] improve some firewall config comments

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

Commits
-------

cb6c703 [Security] improve some firewall config comments
2016-11-04 06:59:19 -07:00
Nicolas Grekas
c0e880e277 [DI] Add missing deprecation in ContainerBuilder::addCompilerPass 2016-11-04 14:53:25 +01:00
Maxime STEINHAUSSER
5963627d06 [SecurityBundle] Make the FirewallConfig class final 2016-11-04 13:57:00 +01:00
Christian Flothmann
ad54d83c90 [Yaml] set arguments depending on the PHP version 2016-11-04 11:57:19 +01:00
Christian Flothmann
cb6c7035ff [Security] improve some firewall config comments 2016-11-04 11:34:59 +01:00
Fabien Potencier
9e2ad932e9 feature #20232 [DependencyInjection] fixed ini file values conversion (fabpot)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[DependencyInjection] fixed ini file values conversion

| Q | A |
| --- | --- |
| Branch? | master |
| Bug fix? | yes |
| New feature? | no |
| BC breaks? | no-ish |
| Deprecations? | no |
| Tests pass? | yes |
| Fixed tickets | n/a |
| License | MIT |
| Doc PR | n/a |

When using the ini format to load parameters in the Container, the parameter values were converted by PHP directly (`'true'` => `1` for instance). But when using the YAML or XML format, the conversions are much broader and more precise (`'true'` => `true` for instance). This PR fixed fixes this discrepancy by using the same rules as XML (we could use `INI_SCANNER_TYPED` for recent versions of PHP but the rules are not exactly the same, so I prefer consistency here).

One might argue that this is a new feature and that this should be merged into master, which I can accept as well. In master, the `XmlUtils::phpize()` method should be deprecated and replaced by a more generic phpize class.

ping @symfony/deciders

Commits
-------

4ccfce6 [DependencyInjection] fixed ini file values conversion
2016-11-03 16:44:20 -07:00
Fabien Potencier
4ccfce6106 [DependencyInjection] fixed ini file values conversion 2016-11-03 16:43:19 -07:00
Fabien Potencier
44595988dc minor #20397 Tweaked the new firewall config in the security profiler panel (javiereguiluz)
This PR was merged into the 3.2-dev branch.

Discussion
----------

Tweaked the new firewall config in the security profiler panel

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

All these options can be `null` ... so maybe we should take care of that edge case.

### Before

![before](https://cloud.githubusercontent.com/assets/73419/19962832/cfc1a1ca-a1b9-11e6-852c-4c7e4065eb37.png)

### After

![after](https://cloud.githubusercontent.com/assets/73419/19962835/d2bd113e-a1b9-11e6-92ae-f93d4592473c.png)

Commits
-------

cdbbd9d Tweaked the new firewall config in the security profiler panel
2016-11-03 10:12:00 -07:00
Robin Chalas
e64de1eac6 [Console] Fix infinite loop on missing input
[Console] Use console exception for missing input

Backport Console RuntimeException in 2.7
2016-11-03 09:51:57 +01:00
Javier Eguiluz
cdbbd9da36 Tweaked the new firewall config in the security profiler panel 2016-11-03 09:36:43 +01:00
Nicolas Grekas
31d5fffc3c minor #20396 [SecurityBundle] Fix case sensitive use (ogizanagi)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[SecurityBundle] Fix case sensitive use

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

Commits
-------

310e31d [SecurityBundle] Fix case sensitive use
2016-11-03 09:25:26 +01:00
Maxime STEINHAUSSER
310e31dd47 [SecurityBundle] Fix case sensitive use 2016-11-03 09:22:19 +01:00
Nicolas Grekas
7e766dae4a erge branch '3.1'
* 3.1:
  Remove trailing space
  CS fixes
  Remove trailing space
  CS: apply rules
  [Yaml] Clean some messages + add test case
  [Console] simplified code
  [Form] Fix UrlType transforms valid protocols
  [SecurityBundle] Changed encoder configuration example to bcrypt
2016-11-03 09:11:03 +01:00
Nicolas Grekas
73013029fb Merge branch '2.8' into 3.1
* 2.8:
  Remove trailing space
2016-11-03 09:05:19 +01:00