This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] [Loco] Simplify namespace
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | ---
Based on https://github.com/symfony/symfony/pull/40945#discussion_r620058173 (`@nicolas`-grekas )
Commits
-------
e6af3c2572 [Translation] [Loco] Simplify namespace
This PR was merged into the 5.3-dev branch.
Discussion
----------
[CI] Sort packages by length to match modified package better
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Given the build error in #40927, I saw that we match "modified packages" wrong. The script things we modified `symfony/translation` rather than the new bridge. This is because we are using a simple [string matchning](18658a29a3/.github/get-modified-packages.php (L24)). If we sort the packages by length, we make sure we match the most detailed (longest) string first.
Commits
-------
f7a0bd1047 [CI] Sort packages by length to match modified package better
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] Use proven DSN class from Notifier and rename package
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | ---
This class is already in use, no need to introduce it as experimental
cc `@welcoMattic`
Commits
-------
a7979c44de [Translation] Use proven DSN class from Notifier
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Builder: Remove typehints and allow for EnvConfigurator
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes -- maybe
| New feature? | no -- maybe =)
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
When [writing documentation](https://github.com/symfony/symfony-docs/pull/15269#discussion_r617887301) we found that we don't really support environment variables in the leaves. Ie, we expect a boolean but you provide `"%env(ENABLE_FOO)%"`
This PR will also introduce `ParamConfigurator` to allow parameters to be passed as config.
The changes to the generated code:
```diff
/**
+ * `@param` bool|ParamConfigurator $value
* `@default` false
* `@return` $this
*/
- public function enabled(bool $value): self
+ public function enabled($value): self
{
$this->enabled = $value;
return $this;
}
```
Commits
-------
59b79d35a7 [Config] Builder: Remove typehints and allow for EnvConfigurator
This PR was merged into the 5.3-dev branch.
Discussion
----------
[PasswordHasher] fix copy paste typos from UserPasswordEncoderInterface
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
Fix typos introduced when extracting the PasswordHasher component from `UserPasswordEncoderInterface` abeb8e4ca9/src/Symfony/Component/Security/Core/Encoder/UserPasswordEncoderInterface.php (L36)
Discovered in 5.3.0BETA1.
Commits
-------
dfc3584fb7 [PasswordHasher] fix copy paste typos from UserPasswordEncoderInterface
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] [CI] Specify terminal width
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
This is an alternative to #40933. It will force to use 121 (120 max) characters as width.
Commits
-------
d51f7f6a75 [Translation] [CI] Specify terminal width
This PR was submitted for the 5.x branch but it was merged into the 5.2 branch instead.
Discussion
----------
[DependencyInjection] Add missing bool type in procesValue()
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| License | MIT
This method is the only one missing `bool` type. Inside the method is used parent call, that has `bool` type already, so nothing else can be used in it.
![image](https://user-images.githubusercontent.com/924196/115951249-0052fb80-a4e0-11eb-8ee5-601b1d90038f.png)
Commits
-------
e0f8fe837d [DependencyInjection] Add missing bool type in procesValue()
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[CI] Make sure to restore default locale
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | F
| License | MIT
| Doc PR |
Whenever we have a test that do `\Locale::setDefault()` we must make sure to restore it to the original value.
Commits
-------
a5afe47ccf [CI] Make sure to restore default locale
* 5.2:
make fabbot happy
use correct spelling when accessing the SMTP php.ini value
Fix issue 40507: Tabs as separators between tokens
[Cache] phpredis: Added full TLS support for RedisCluster
[DependencyInjection][AliasDeprecatedPublicServicesPass] Noop when the service is private
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] make fabbot happy
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
9826c05928 make fabbot happy
This PR was merged into the 5.2 branch.
Discussion
----------
[Mailer] use correct spelling when accessing the SMTP php.ini value
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#40899
| License | MIT
| Doc PR |
Commits
-------
b6f8ed69ec use correct spelling when accessing the SMTP php.ini value
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] Allow tabs as separators between tokens
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#40507
| License | MIT
| Doc PR | None
As described in #40507, the Yaml spec allows tabs as whitespace characters between tokens. However, the Yaml parser crashes on this as it only expects spaces after the colon. https://yaml.org/spec/1.2/spec.html#id2778241
While I'm not a huge fan of it personally, it's an issue when a different linter tells us that a given YAML file with content that we have little control over has valid syntax in an unrelated check, and then our app crashes because it cannot be parsed after all.
Commits
-------
9a130ae93e Fix issue 40507: Tabs as separators between tokens
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Cache] phpredis: Added full TLS support for RedisCluster
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | n/a
This Pr bridges the gap for full TLS support when using phpredis driver implementation of TLS.
Adds the 'ssl' options array for cache configuration when using RedisCluster
https://www.php.net/manual/en/context.ssl.php
Switches directed node commands from using individual \Redis connections to using the recommended implementation from the phpredis documentation:
https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#directed-node-commands
This pr will enable compatibility with Amazon ElastiCache redis cluster mode using In Transit encryption (TLS) using the phpredis driver, Supports tagging & binary data types.
Commits
-------
a1e0408d08 [Cache] phpredis: Added full TLS support for RedisCluster
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] The tests for the Loco bridge require symfony/config
| Q | A
| ------------- | ---
| Branch? | 5.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
The Loco bridge test suite currently fails with the following error message:
```
Loading translations from the Xliff format requires the Symfony Config component.
```
Let's add the config component then.
Commits
-------
f58285d8e7 [Translation] The tests for the Loco bridge require symfony/config
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] Move ProviderFactoryTestCase out of the Tests namespace
| Q | A
| ------------- | ---
| Branch? | 5.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Same as #40911, different class. Sorry, I missed the seconds abstract class. 🙈
Commits
-------
e01499d0b8 [Translation] Move ProviderFactoryTestCase out of the Tests namespace
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] Move ProviderTestCase out of the Tests namespace
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Because the `Tests` namespace is stripped from our distribution packages, the new Loco translation bridge cannot use the abstract `ProviderTestCase` class. This PR suggests to move it into a dedicated `Test` namespace to make it reusable for the Loco bridge and potential future bridges.
Commits
-------
c1ec38fdb8 [Translation] Move ProviderTestCase out of the Tests namespace
This PR was merged into the 5.3-dev branch.
Discussion
----------
[FrameworkBundle] Bump symfony/translation
| Q | A
| ------------- | ---
| Branch? | 5.3
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Our Travis build is currently red because FrameworkBundle tries to use recently added classes from `symfony/translation` that are not present in 5.0 of the translation component.
This PR attempts to fix that problem.
Commits
-------
7b8aa215df [FrameworkBundle] Bump symfony/translation
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Improve exception messages when extension could not be found
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
The error message we currently get if we are using some `AcmeSocialConifg` (bundle is not installed) is currently not perfect. Here are the suggested changes
```diff
In FileLoader.php line 174:
- Could not resolve argument "Symfony\Config\AcmeSocialConfig acmeSocial" for
+ Could not resolve argument "Symfony\Config\AcmeSocialConfig $acmeSocial" for
"app/config/packages/acme_social.php" in app/config/packages/acme_social.php
(which is loaded in resource "app/config/p ackages/acme_social.php").
In PhpFileLoader.php line 124:
- Could not resolve argument "Symfony\Config\AcmeSocialConfig acmeSocial" for
+ Could not resolve argument "Symfony\Config\AcmeSocialConfig $acmeSocial" for
"app/config/packages/acme_social.php".
In PhpFileLoader.php line 167:
There is no extension able to load the configuration for "Symfony\Config\AcmeSocialConfig".
- Looked for namespace "Symfony\Config\AcmeSocialConfig", found "framework",
+ Looked for namespace "acme_social", found "framework",
"sensio_framework_extra","twig", "web_profiler", "monolog ", "debug", "maker", "doctrine",
"doctrine_migrations", "security", "twig_extra", "mercure", "webpack_encore".
```
Commits
-------
187562f385 [Config] Improve exception messages
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Translation] Adding Translation Providers
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | Fix#36543
| License | MIT
| Doc PR | todo
> Follow up of https://github.com/symfony/symfony/pull/37462
This PR refers to the early opened RFC #36543 about adding third party translation SaaS into Symfony.
I worked in collaboration with `@odolbeau` on this first draft.
We have implemented only Loco Provider for now, to validate the main workflow of the feature.
~~We are not very sure about some naming convention, such as Remote Storage, it might be renamed in Transport, to correspond to the naming of third party services in Mailer and Notifier Components.~~ We use Provider name.
This PR brings 2 new commands in Translation component: `translation:push` and `translation:pull`
It adds also new configuration entry:
```yaml
framework:
default_locale: fr
translator:
default_path: '%kernel.project_dir%/translations'
enabled_locales: '%locales%'
fallbacks:
- en
- it
providers:
loco:
dsn: '%env(LOCO_DSN)%'
domains: ['messages']
locales: '%locales%'
```
## To do
- [x] Implement Provider into Translation component
- [x] Plug it into FrameworkBundle
- [x] Implement pull and push commands
- [x] Implement Loco adapter
- [x] Tests
- [ ] Documentation
- [x] Update CHANGELOG.md files in FrameworkBundle and Translation Component
Docs:
Adapt language settings in Lokalise to be sure that Symfony locales match with Lokalise languages
![language-setting-lokalise](https://user-images.githubusercontent.com/773875/102089496-997c5200-3e1c-11eb-8bff-bd2f9a5fe100.png)
Todo:
- [x] Implement POEditor Provider (⚠️ there is a trick to do in POEditor Dashboard in order to make XLF export works, it will have to be documented explicitly in the symfony/symfony-docs PR)
- [x] Implement Lokalise Provider
- [x] Implement Crowdin Provider
These 3 providers are implemented separately. They are not fully tested yet, it is planned to make it done by the end of April 2021.
Commits
-------
6e55fa84b7 Added Translation Providers
This PR was merged into the 5.3-dev branch.
Discussion
----------
[FrameworkBundle] Deprecate creating public workflow services
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
AFAIK, workflow services don't need to be public. friendly ping to @lyrixx as a reviewer.
Commits
-------
79cbf005da [FrameworkBundle] Deprecate creating public workflow services
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Config] Make sure one can build cache on Windows and then run in (Docker) Linux
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
The generated ConfigBuilders should use the `\DirectorySeparator` constant. The resulting string will look like this:
```php
<?php
namespace Symfony\Config;
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'GlobalConfig.php';
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'DateConfig.php';
require_once __DIR__.\DIRECTORY_SEPARATOR.'Twig'.\DIRECTORY_SEPARATOR.'NumberFormatConfig.php';
/**
* This class is automatically generated to help creating config.
*
* @experimental in 5.3
*/
class TwigConfig implements \Symfony\Component\Config\Builder\ConfigBuilderInterface
{
private $formThemes;
```
Commits
-------
555c7dda48 [Config] Make sure one can build cache on Windows and then run in (Docker) Linux