{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":9601783,"defaultBranch":"7.0","name":"intl","ownerLogin":"symfony","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2013-04-22T15:11:08.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/143937?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716278593.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"1b8974c7ff07c61d4acf0e873e34dfb75190b2bb","ref":"refs/heads/7.2","pushedAt":"2024-05-21T08:03:13.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '7.0' into 7.1\n\n* 7.0:\n Auto-close PRs on subtree-splits\n review German translation","shortMessageHtmlLink":"Merge branch '7.0' into 7.1"}},{"before":"510a40cbf59244af027905cdb838eb7b57447752","after":"dd12042707110995e2e7d80103f8d9928bea8621","ref":"refs/heads/7.0","pushedAt":"2024-04-29T12:28:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n Auto-close PRs on subtree-splits\n review German translation","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"c18aea9f4df73f7303aaedb641e525a219a82459","after":"1b8974c7ff07c61d4acf0e873e34dfb75190b2bb","ref":"refs/heads/7.1","pushedAt":"2024-04-18T09:39:59.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '7.0' into 7.1\n\n* 7.0:\n Auto-close PRs on subtree-splits\n review German translation","shortMessageHtmlLink":"Merge branch '7.0' into 7.1"}},{"before":"670d5648b2b2305355e76bb64e918de41548821b","after":"9ed7dfeeba5759b61798358100bb63230509b337","ref":"refs/heads/6.4","pushedAt":"2024-04-18T09:37:04.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '5.4' into 6.4\n\n* 5.4:\n Auto-close PRs on subtree-splits\n review German translation","shortMessageHtmlLink":"Merge branch '5.4' into 6.4"}},{"before":"8d941ee451871f5df3a8e8b1dd36acba333c320d","after":"0ae24e7ead0761e3e29e89c3336353b991c90f96","ref":"refs/heads/5.4","pushedAt":"2024-04-18T09:18:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Auto-close PRs on subtree-splits","shortMessageHtmlLink":"Auto-close PRs on subtree-splits"}},{"before":"28d19d42e23cd7f049eb677ed4c5a14fd3eca5c7","after":"c18aea9f4df73f7303aaedb641e525a219a82459","ref":"refs/heads/7.1","pushedAt":"2024-04-17T15:58:31.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '7.0' into 7.1\n\n* 7.0:\n [Cache] Fix test failure related to Redis6Proxy on appveyor\n [Messenger] Fix reading pending messages with Redis\n [Serializer] Revert #54488 to fix BC Break\n [Validator] reviewed Polish translation for unit 113\n [Validator] Missing translations for Croatian (hr)\n Add hint which version of Symfony not longer require proxy manager bridge\n review and fix hungarian validation message\n Update translation\n review uk translations v2\n [Validator] Update message translations for unit 113 (TLD)\n [Intl] Remove resources data from classmap generation","shortMessageHtmlLink":"Merge branch '7.0' into 7.1"}},{"before":"295995df4acf6790a35b9ce6ec32b313efb11ff8","after":"510a40cbf59244af027905cdb838eb7b57447752","ref":"refs/heads/7.0","pushedAt":"2024-04-17T15:57:51.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n [Cache] Fix test failure related to Redis6Proxy on appveyor\n [Messenger] Fix reading pending messages with Redis\n [Serializer] Revert #54488 to fix BC Break\n [Validator] reviewed Polish translation for unit 113\n [Validator] Missing translations for Croatian (hr)\n Add hint which version of Symfony not longer require proxy manager bridge\n review and fix hungarian validation message\n Update translation\n review uk translations v2\n [Validator] Update message translations for unit 113 (TLD)\n [Intl] Remove resources data from classmap generation","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"2628ded562ca132ed7cdea72f5ec6aaf65d94414","after":"670d5648b2b2305355e76bb64e918de41548821b","ref":"refs/heads/6.4","pushedAt":"2024-04-17T15:56:23.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '5.4' into 6.4\n\n* 5.4:\n [Messenger] Fix reading pending messages with Redis\n [Serializer] Revert #54488 to fix BC Break\n [Validator] reviewed Polish translation for unit 113\n [Validator] Missing translations for Croatian (hr)\n review and fix hungarian validation message\n Update translation\n review uk translations v2\n [Validator] Update message translations for unit 113 (TLD)\n [Intl] Remove resources data from classmap generation","shortMessageHtmlLink":"Merge branch '5.4' into 6.4"}},{"before":"2fb503f81cd8032a624c55764d1fbaf893aa3cf4","after":"8d941ee451871f5df3a8e8b1dd36acba333c320d","ref":"refs/heads/5.4","pushedAt":"2024-04-16T23:49:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Intl] Remove resources data from classmap generation","shortMessageHtmlLink":"[Intl] Remove resources data from classmap generation"}},{"before":"352d19906579ae6e04cdabc78d722c92784f54e0","after":"28d19d42e23cd7f049eb677ed4c5a14fd3eca5c7","ref":"refs/heads/7.1","pushedAt":"2024-03-20T15:34:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"chore: CS fixes","shortMessageHtmlLink":"chore: CS fixes"}},{"before":"914f94ce34997fcc7f443bf4d0612bf2d4398a2c","after":"352d19906579ae6e04cdabc78d722c92784f54e0","ref":"refs/heads/7.1","pushedAt":"2024-02-03T13:22:26.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"feature #53096 [Intl] [Emoji] Move emoji data in a new component (smnandre)\n\nThis PR was merged into the 7.1 branch.\n\nDiscussion\n----------\n\n[Intl] [Emoji] Move emoji data in a new component\n\n| Q | A\n| ------------- | ---\n| Branch? | 7.1\n| Bug fix? | no\n| New feature? | yes\n| Deprecations? | yes\n| Issues |\n| License | MIT\n\nThis PR move all the emoji data & code from the Intl component into its own new Emoji component.\n\nObjectives/reasons:\n* reduce the size of a standard \"--webapp\" install\n* allow usage of intl (required if your app uses those validators/form types: BIC, country, currency, language, locale, timezone) without downloading all the emoji data\n* allow usage of Emoji without downloading all the Intl data\n\nThanks to all the reviewers for the feedbacks, opinions, advices ❀️\n\n---\n\n--- Original (obselete) post below ---\n\nThis PR move all the emoji data & code from the Intl component into its own new IntlEmoji component.\n\n... and hopefully open a debate aboute the future of the Intl component, its role, and the way we handle \"data\" in the framework and the repositories\n\n> [!IMPORTANT]\n> πŸŽ™οΈ DISCLAIMER: This PR contains both metrics and opinions. The metrics were collected this morning in a neutral and transparent manner, ensuring they can be [reproduced by anyone](https://gist.github.com/smnandre/38b081253fc8813a5e638661650b01f6). However, the opinions I present here are just that – opinions, and should not be interpreted as objective truths or claims of fact.\n\nUpdate: details/summary added to improve the readability\n\n
\n\n\n## What is symfony/intl ?\n\n\n\nRepository: https://github.com/symfony/intl\nDocumentation: https://symfony.com/doc/current/components/intl.html\nUnicode: https://home.unicode.org/technical-quick-start-guide/\n\n### Responsabilities\n\nCurrently, it seems to me this component:\n* provides a polifill-ish layer for the intl PHP extension\n* provides exhaustive formatting + locale data for countries, currencies, date, ...\n* provides methods to check ISO codes or identifiers\n* provides a dictionnary emoji -> description for every possible combinaison\n\n### Opiniated remarks\n\nTwo comments highlight the \"blurred lines\" I believe this component navigates:\n\n#### 1) Access or data ?\n\n> This component provides **access** to the localization **data** of the ICU library.\n\nMaybe my english is in fault, but it seems to me it does not provides access to the data... it provides the data.\n\n#### 2) Unicode = CLDR + ICU + UTC\n\n> This component provides access to the localization data of the **ICU library**.\n\nCLDR (where the emoji data comes from) is not in the ICU library. I'm quibbling over details here, i know. But i think that illustrates the volatile \"scope\" and \"responsabilities\" of this component.\n\nSo we come close to the problem...\n
\n\n
\n\n\n## Symfony/Intl is massive\n\n\n\nThe data included in the Intl component is massive (especially the emoji descriptions), and will grow more every semester.\n\nI looked at the following cases\n* source code\n * symfony/symfony : https://github.com/symfony/symfony/archive/refs/heads/7.0.zip\n * symfony/intl : https://github.com/symfony/intl/archive/refs/heads/7.0.zip\n* installed\n * standalone: new folder + composer require symfony/intl\n * webapp: new folder + symfony create --webapp\n\nVersions:\n* 6.0 6.1 6.2 6.3 6.4 7.0\n* Emoji data were added in 6.2\n\n### Some metrics...\n\n| | Size (zip) | Size (unzipped) | Files | PHP Files |\n| - | - | - | - | - |\n| symfony/symfony | 12.91 | 58.6 | 6006 | 4729 |\n| symfony/intl | 7.5 | 43.2 | 1517 | 1487 |\n| % | 58.1% | 73.8% | 25.3% | 31.5% |\n\nSo symfony/intl accounts for 30% of the files in the monorepo ... and nearly **75% of its total disk size**.\n\n### ...over time\n\n**Size (in MB) of the sources**\n\n| | 6.0 | 6.1 | 6.2 | 6.3 | 6.4 | 7.0 |\n|--------|-----|-----|-----|-----|-----|-----|\n| intl |15.1 |15.1 |41.8 |41.9 |43.2 |43.2 |\n| symfony|28.8 |29.1 |56.5 |58.1 |59.8 |58.6 |\n\nIt was already big in previous versions, but since the emoji data integration, it's off charts.\n\nThe symfony/intl alone is twice as big as: all the other components, all the bridges and all the bundles. Combined.\n\nAnd it's not over. At all.\n\n### Why it'll grow more\n\nThe ICU components used in the component are well-defined and constrained by 'real-world' factors, so we can expect minor changes regarding countries, formatting data, etc. It's unlikely, for instance, that 200 new countries will suddenly emerge in 2024.\n\nHowever, emojis may present a major challenge in the near future. New ones are added with every CLDR release. Except for a significant drop (like the upcoming 2000 hieroglyphs), this should be a gradual increase.\n\nWhat bothers me more is the 'combinatorial nature' of these descriptions. We generate a line of text for every combination. And that's why this component is so large. But it's just the beginning of what could be exponential growth.\n\nAs of today, the 'hand emoji' has variations for skin color (I'm not certain, but let's say there are 6 possible colors), and emojis with multiple people often vary by gender ('boy and two girls').\n\nIn the upcoming release, a new variable is the concept of 'left-handed' versus 'right-handed'. So, we'll create a new line for every existing emoji with a visible hand. But we'll need way more than just a new line, because of every emoji where two hands are visible. I don't remember if it's already implemented, but there was discussion about including the same thing for the age of a person, or some hairstyles.\n\nSo, the symfony/intl component could very soon be 50GB, and a short while later 10^80TB. But there's no way it reduces in size... or even slows its growth.\n
\n\n
\n\n\n## And.... where is the problem ?\n\n\n\nI see negative effect on three very different layers.\n\n### Developper Experience\n\nWhether these values are low or not in absolute terms (and I have no doubt that everyone will have their own opinion on this)... the reality is that users are downloading a component that is twice as heavy as all the others combined... and this inevitably affects installation times, bandwidth, update times, static analysis, IDE indexing, etc. A prime example is Docker on macOS, which was a real pain until recently with Orbstack, and the performance nightmare was directly related to the number of files mounted in a volume.\n\n### Contributor experience\n\nI've lost count of how many times I've seen a contributor propose a feature only to be told: it's userland. (Full disclosure, I understand and share this point of view). But it can be frustrating to see closed doors for a few classes, while at the same time Symfony contains hundreds of lines like 'young woman with dark hair and kid'\n\n### Real world consequences: Ecological & financial costs\n\nI have no desire to open a debate (on either of those topics). But again, these small things have real-world consequences. We are talking about Symfony, so the impact is enormous, even on small matters\n\n### What is the real impact ?\n\nDownloads data, as provided by packagist (collected today)\n\n| Package | install total | install (last 30 days) |\n|---------|---------------|------------------------|\n| symfony/intl | 111,000,000 | 2,800,000 |\n| [symfony/http-foundation](https://packagist.org/packages/symfony/http-foundation) | 528,000,000 | 11,250,000 |\n| symfony/console | 678,000,000 | 12,900,000 |\n| symfony/console | 678,000,000 | 12,900,000 |\n| symfony/translation | 508,000,000 | 10,400,000 |\n\nLet's agree on: \"it's not without an impact\".\n\n
\n\n
\n\n\n## Why is it used ?\n\n\n\n### For its quality\n\nPlease don't misinterpret my message. I'm not criticizing the value of the component or questioning its qualities. Besides, my opinion wouldn't have any value for that matter anyway. And i'm absolutely convinced a lot of people decide to install this component knowing what they do.\n\n### For another reason\n\nBut there are also people who install... Symfony. The recommended installation procedure, as outlined in the documentation on the website, is to install the web application skeleton, which requires symfony/intl.\n\nTo revisit the argument from earlier, I'm really not sure if anyone realizes after installation why its vendors directory is 80MB and what it's used for (young woman with...).\n\nI'm unsure why symfony/intl is included by default in a new project, while other components are not. As a developer, I would appreciate the ability to install a small, lightweight application or to have more packages for the same amount of overhead :)\n\n### For another reason (bis)\n\n\"There is a third reason, and once again, I'm not fully understanding the situation (and may not have all the backstory required for it).\n\nThe Country validator requires symfony/intl to validate a given string as a valid ISO alpha country code. To do this, it tries to retrieve the list of country names (indexed by code) from the locale data. Consequently, it's not possible to use BIC, Country, Currency, and probably others without symfony/intl.\n\nSo, if a developer installs symfony/validator and then wants to validate a BIC, they cannot do so without downloading 80MB of locale-specific data.\n\nWouldn't it be simpler to have a couple of ISO classes/methods in the Validator component? Or perhaps create a small component just for that purpose? Because having to parse giant files just to check if \"FR\" is a valid ISO country code seems quite inefficient to me.\n\n
\n\n## Well: Suggestions\n\nSo, personal conclusion and some suggestions..\n\n### TODO list\n\nSooner\n* move \"emoji\" out of Symfony\\Intl\n* remove \"intl\" from symfony/webapp\n* fix the validator requirements\n\nLater\n* move \"intl\" out of the monorepo\n* create a distinct class/component to handle iso lists\n\n### Discussions\n\n- [x] Handle the BC layer (require symfony/intl-emoji in symfony/intl ?)\n- [x] Find a way to handle the exponential growth of those files\n\n--\n\nOpen to any feedback :)\n\nCommits\n-------\n\nf5ba7e31fa Move & adapt \"emoji code\" from Intl into its own component","shortMessageHtmlLink":"feature #53096 [Intl] [Emoji] Move emoji data in a new component (smn…"}},{"before":"bac1107720cb8765c4ffae5e575bc7cab82896a4","after":"914f94ce34997fcc7f443bf4d0612bf2d4398a2c","ref":"refs/heads/7.1","pushedAt":"2024-01-30T18:59:46.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '7.0' into 7.1\n\n* 7.0:\n List CS fix in .git-blame-ignore-revs\n Fix implicitly-required parameters\n minor #53524 [Messenger] [AmazonSqs] Allow `async-aws/sqs` version 2 (smoench)\n Fix bad merge\n List CS fix in .git-blame-ignore-revs\n Fix implicitly-required parameters\n List CS fix in .git-blame-ignore-revs\n Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_null_value\n [Messenger][AmazonSqs] Allow async-aws/sqs version 2","shortMessageHtmlLink":"Merge branch '7.0' into 7.1"}},{"before":"5fbee19d24354bbd77b300971eb38469ddbfd7fc","after":"295995df4acf6790a35b9ce6ec32b313efb11ff8","ref":"refs/heads/7.0","pushedAt":"2024-01-30T18:12:04.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n Fix implicitly-required parameters\n minor #53524 [Messenger] [AmazonSqs] Allow `async-aws/sqs` version 2 (smoench)\n Fix bad merge\n List CS fix in .git-blame-ignore-revs\n Fix implicitly-required parameters\n List CS fix in .git-blame-ignore-revs\n Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_null_value\n [Messenger][AmazonSqs] Allow async-aws/sqs version 2","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"cd6cce16151ac871071a3495e7a325460b952b5a","after":"2fb503f81cd8032a624c55764d1fbaf893aa3cf4","ref":"refs/heads/5.4","pushedAt":"2024-01-30T13:12:08.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_null_value","shortMessageHtmlLink":"Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_…"}},{"before":"4f45148f7eb984ef12b1f7e123205ab904828839","after":"2628ded562ca132ed7cdea72f5ec6aaf65d94414","ref":"refs/heads/6.4","pushedAt":"2024-01-23T14:58:33.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.3' into 6.4\n\n* 6.3:\n minor #53524 [Messenger] [AmazonSqs] Allow `async-aws/sqs` version 2 (smoench)\n Fix bad merge\n List CS fix in .git-blame-ignore-revs\n Fix implicitly-required parameters\n List CS fix in .git-blame-ignore-revs\n Apply php-cs-fixer fix --rules nullable_type_declaration_for_default_null_value","shortMessageHtmlLink":"Merge branch '6.3' into 6.4"}},{"before":"4cc98c05f2c55150a6aa5b3e20667f7a6d06cca9","after":"db1c2e9fc5c28622587a1e975a6346e93d0417c2","ref":"refs/heads/6.3","pushedAt":"2024-01-23T14:47:39.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Fix bad merge","shortMessageHtmlLink":"Fix bad merge"}},{"before":"a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d","after":"5fbee19d24354bbd77b300971eb38469ddbfd7fc","ref":"refs/heads/7.0","pushedAt":"2023-12-27T08:46:19.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n Sync .github/expected-missing-return-types.diff\n [WebProfilerBundle] Fix the design of the compact toolbar button\n [AssetMapper] Improve link generation script\n fix merge\n consistently use dates in UTC in Doctrine connection tests\n Add missing Chinese(zh_TW) translations\n [Intl] [Emoji] Fix emoji files (remove wrong characters / add missing data)\n [Translation] Crowdin Bridge: use the project language mapping\n [VarExporter] Nitpicking in README.md\n [DoctrineBridge] Adapt deprecation message to include ODM bundle attribute name\n Added missing Serbian (sr_Cyrl) translation\n [Validator] Add missing Serbian translation\n [Validator] Add missing arabic translation\n [Validator] updated Albanian translation\n [Clock] Fix calling `mockTime()` in `setUpBeforeClass()`","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"02bb7809f214361c661e1b7c6e44f46d6ec97c4a","after":"bac1107720cb8765c4ffae5e575bc7cab82896a4","ref":"refs/heads/7.1","pushedAt":"2023-12-27T08:46:15.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '7.0' into 7.1\n\n* 7.0:\n Sync .github/expected-missing-return-types.diff\n [WebProfilerBundle] Fix the design of the compact toolbar button\n [AssetMapper] Improve link generation script\n fix merge\n consistently use dates in UTC in Doctrine connection tests\n Add missing Chinese(zh_TW) translations\n [Intl] [Emoji] Fix emoji files (remove wrong characters / add missing data)\n [Translation] Crowdin Bridge: use the project language mapping\n [VarExporter] Nitpicking in README.md\n [DoctrineBridge] Adapt deprecation message to include ODM bundle attribute name\n Added missing Serbian (sr_Cyrl) translation\n [Validator] Add missing Serbian translation\n [Validator] Add missing arabic translation\n [Validator] updated Albanian translation\n [Clock] Fix calling `mockTime()` in `setUpBeforeClass()`","shortMessageHtmlLink":"Merge branch '7.0' into 7.1"}},{"before":"41d16f0294b9ca6e5540728580c65cfa3848fbf5","after":"4f45148f7eb984ef12b1f7e123205ab904828839","ref":"refs/heads/6.4","pushedAt":"2023-12-26T18:38:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Intl] [Emoji] Fix emoji files (remove wrong characters / add missing data)","shortMessageHtmlLink":"[Intl] [Emoji] Fix emoji files (remove wrong characters / add missing…"}},{"before":"4a56791cb8c29bcdaae4ca13ae5cd7468ece58be","after":"02bb7809f214361c661e1b7c6e44f46d6ec97c4a","ref":"refs/heads/7.1","pushedAt":"2023-12-19T16:34:12.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"minor #53111 [Intl] Update .gitattributes (smnandre)\n\nThis PR was merged into the 7.1 branch.\n\nDiscussion\n----------\n\n[Intl] Update .gitattributes\n\n| Q | A\n| ------------- | ---\n| Branch? | 7.1\n| Bug fix? | no\n| New feature? | no\n| Deprecations? | no\n| Issues | Fix #...\n| License | MIT\n\nRemove code generation commands from exports\n\nCommits\n-------\n\nff6b548797 Update .gitattributes","shortMessageHtmlLink":"minor #53111 [Intl] Update .gitattributes (smnandre)"}},{"before":"472549dd9ff743fd6f22aa9d467480aa7b845f35","after":"4a56791cb8c29bcdaae4ca13ae5cd7468ece58be","ref":"refs/heads/7.1","pushedAt":"2023-12-19T09:32:42.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"minor #53073 Set `strict` parameter of `in_array` to true where possible (alexandre-daubois)\n\nThis PR was merged into the 7.1 branch.\n\nDiscussion\n----------\n\nSet `strict` parameter of `in_array` to true where possible\n\n| Q | A\n| ------------- | ---\n| Branch? | 7.1\n| Bug fix? | no\n| New feature? | no\n| Deprecations? | no\n| Issues | -\n| License | MIT\n\nThis pull request introduces a comprehensive update where the `in_array` function is now consistently invoked with the `strict` parameter set to `true`. This change is implemented across various components of the framework to enhance type safety and reliability.\n\nTo me, this update is a step towards more explicit and error-resistant code.\n\nCommits\n-------\n\n442329a50f Set `strict` parameter of `in_array` to true where possible","shortMessageHtmlLink":"minor #53073 Set strict parameter of in_array to true where possi…"}},{"before":"a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d","after":"472549dd9ff743fd6f22aa9d467480aa7b845f35","ref":"refs/heads/7.1","pushedAt":"2023-12-18T17:34:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Intl][Tests] Use static data providers","shortMessageHtmlLink":"[Intl][Tests] Use static data providers"}},{"before":null,"after":"a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d","ref":"refs/heads/7.1","pushedAt":"2023-11-15T17:33:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n [Form] Fix merging form data and files (ter)\n [Intl] Update the ICU data to 74.1\n [Scheduler] Use MockClock\n [AssetMapper] Fixing memory bug where we stored way more file content than needed\n [AssetMapper] jsdelivr \"no version\" import syntax\n [HtmlSanitizer] Consider `width` attribute as safe\n [DoctrineBridge] Fix exception message\n [Security][Validator] Missing translations for Luxembourgish","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"714018d282f609e14915b87add326b96b78295bd","after":"a2bf3df1fe6ca7ed9aaf2d3f7d7a33b5529b021d","ref":"refs/heads/7.0","pushedAt":"2023-10-29T19:53:19.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n [Form] Fix merging form data and files (ter)\n [Intl] Update the ICU data to 74.1\n [Scheduler] Use MockClock\n [AssetMapper] Fixing memory bug where we stored way more file content than needed\n [AssetMapper] jsdelivr \"no version\" import syntax\n [HtmlSanitizer] Consider `width` attribute as safe\n [DoctrineBridge] Fix exception message\n [Security][Validator] Missing translations for Luxembourgish","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"5b384807af3286e4c3cc8de17e7d085ede11ded3","after":"41d16f0294b9ca6e5540728580c65cfa3848fbf5","ref":"refs/heads/6.4","pushedAt":"2023-10-29T14:54:44.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.3' into 6.4\n\n* 6.3:\n [Form] Fix merging form data and files (ter)\n [Intl] Update the ICU data to 74.1\n [Scheduler] Use MockClock\n [HtmlSanitizer] Consider `width` attribute as safe\n [DoctrineBridge] Fix exception message\n [Security][Validator] Missing translations for Luxembourgish","shortMessageHtmlLink":"Merge branch '6.3' into 6.4"}},{"before":"1f8cb145c869ed089a8531c51a6a4b31ed0b3c69","after":"4cc98c05f2c55150a6aa5b3e20667f7a6d06cca9","ref":"refs/heads/6.3","pushedAt":"2023-10-29T14:33:02.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '5.4' into 6.3\n\n* 5.4:\n [Form] Fix merging form data and files (ter)\n [Intl] Update the ICU data to 74.1\n [DoctrineBridge] Fix exception message\n [Security][Validator] Missing translations for Luxembourgish","shortMessageHtmlLink":"Merge branch '5.4' into 6.3"}},{"before":"c26c40b64ecdc056810e294ea67ac5b34182cd69","after":"cd6cce16151ac871071a3495e7a325460b952b5a","ref":"refs/heads/5.4","pushedAt":"2023-10-28T16:37:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Intl] Update the ICU data to 74.1","shortMessageHtmlLink":"[Intl] Update the ICU data to 74.1"}},{"before":"cc2c0950e3f9704a63630ea41603d388306aa541","after":"714018d282f609e14915b87add326b96b78295bd","ref":"refs/heads/7.0","pushedAt":"2023-10-20T16:36:21.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4:\n Partially revert \"DX: PHP CS Fixer - update excluded paths and apply some minor CS\"\n [AssetMapper] Allowing for files to be written to some non-local location\n [HttpKernel] Resolve EBADP error on flock with LOCK_SH with NFS\n [AssetMapper] Fixing bug of bad parsing of imports when an import then export are adjacent\n add missing basque translations\n [FrameworkBundle][Validator] Allow implementing validation groups provider outside DTOs\n [Notifier][Novu] Implement overrides\n [Validator] Handle `null` case\n [Workflow] List place or transition listeners in profiler\n [Intl] Add support for emoji 15.1\n Replace Tickets by Issues\n [Validator] Add missing arabic translations\n [Validator] Added missing translations for Romanian language for Validator component\n [Messenger] Fix graceful exit with ids\n [HttpKernel] Add parameters `kernel.runtime_mode` and `kernel.runtime_mode.*`, all set from env var `APP_RUNTIME_MODE`","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}},{"before":"b8fab9cc50ac610d03ec972c20da9e0154d79136","after":"5b384807af3286e4c3cc8de17e7d085ede11ded3","ref":"refs/heads/6.4","pushedAt":"2023-10-20T08:48:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"[Intl] Add support for emoji 15.1\n\n* https://blog.emojipedia.org/new-emojis-in-2023/\n* https://unicode.org/versions/Unicode15.1.0/\n* 4 emojis cannot be build, they have been skipped\n ```\n Could not create transliterator for \"πŸ™‚β€β†”οΈ\" in \"strip\" locale. Code Point: \"1f642 200d 2194 fe0f\". Error: \"transliterator_create_from_rules: unable to create ICU transliterator from rules (parse error at offset 0, before or at \"\\πŸ™‚β€β†”οΈ > test ;\"): U_UNQUOTED_SPECIAL\".\n Could not create transliterator for \"πŸ™‚β€β†”οΈ\" in \"strip\" locale. Code Point: \"1f642 2194 fe0f\". Error: \"transliterator_create_from_rules: unable to create ICU transliterator from rules (parse error at offset 0, before or at \"\\πŸ™‚β€β†”οΈ > test ;\"): U_UNQUOTED_SPECIAL\".\n Could not create transliterator for \"πŸ™‚β€β†”\" in \"strip\" locale. Code Point: \"1f642 200d 2194\". Error: \"transliterator_create_from_rules: unable to create ICU transliterator from rules (parse error at offset 0, before or at \"\\πŸ™‚β€β†” > test ;\"): U_UNQUOTED_SPECIAL\".\n Could not create transliterator for \"πŸ™‚β€β†”\" in \"strip\" locale. Code Point: \"1f642 2194\". Error: \"transliterator_create_from_rules: unable to create ICU transliterator from rules (parse error at offset 0, before or at \"\\πŸ™‚β€β†” > test ;\"): U_UNQUOTED_SPECIAL\".\n ```","shortMessageHtmlLink":"[Intl] Add support for emoji 15.1"}},{"before":"b68c08c59417b34375b729533ad97155cc7030b0","after":"cc2c0950e3f9704a63630ea41603d388306aa541","ref":"refs/heads/7.0","pushedAt":"2023-08-01T16:00:27.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"symfony-splitter","name":"Symfony Git Splitter","path":"/symfony-splitter","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7566209?s=80&v=4"},"commit":{"message":"Merge branch '6.4' into 7.0\n\n* 6.4: (31 commits)\n [HttpKernel] Strip exception file paths from log messages\n [Validator] Add ability to validate time without seconds\n [Process] Fix test case\n [Process] Support finding executables independently of open_basedir\n [Mime] Update mimetypes\n Add some PHPDoc\n [Workflow] Add a profiler\n [Form] Removing self-closing slash from ``\n [FrameworkBundle][Serializer] Add TranslatableNormalizer\n [Uid] Fix example\n [HttpKernel] Add `reset()` implementation in DataCollector\n [Uid] Add more PHP doc to \"export\" functions\n [HttpKernel] RequestPayloadValueResolver Add support for custom http status code\n [Serializer] Add support for seld/jsonlint in order to enhance error messages\n [Workflow] fix MermaidDumper when place contains special char\n [Translation] Phrase translation provider\n [Workflow] Add support for storing the marking in a property\n [Crawler] Fix regression where cdata nodes will return empty string\n [Scheduler] make `ScheduledStamp` \"send-able\"\n [Serializer] Groups annotation/attribute on class\n ...","shortMessageHtmlLink":"Merge branch '6.4' into 7.0"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAET5KEWwA","startCursor":null,"endCursor":null}},"title":"Activity Β· symfony/intl"}