Mautic 5.0.2
17 January 2024
Mautic version 5.0.2 is now available (major release).
What's New in Mautic 5.0.2
This release includes support for Symfony 5, PHP 8.1 and updates many of our very outdated dependencies ‘under the hood’ to ensure Mautic remains secure and fit for the future.
IMPORTANT: Please read our release blog post BEFORE UPDATING at: <a href='https://www.mautic.org/blog/community/mautic-5-beyond-expectations-beyond-limits' target='_BLANK'>IMPORTANT: Please read our release blog post BEFORE UPDATING at https://www.mautic.org/blog/community/mautic-5-beyond-expectations-beyond-limits</a>
Breaking Changes
- Tprod 296 Authentication refactoring needed for Symfony 5 by @escopecz in #11057
- Removing calendar bundle by @escopecz in #11270
- Stop duplicate campaign update by @escopecz in #10550
- Implementing DI for commands that still use container by @escopecz in #11041
- Update french regions (departements) by @npracht in #10802
- Froala feature flag - disabled by default by @escopecz in #12416
- Add Symfony Mailer Only by @mabumusa1 in #11613
- Create field in background without user ID by @kuzmany in #12446
- Transactional emails in campaigns ignore the DNC setting by @volha-pivavarchyk in #11786
- Remove email config from installer by @fedys in #12216
- More rector dead code rules by @escopecz in #11704
- Removing emoji transformer by @escopecz in #12483
- TPROD-272: Dropped PluginConfiguration.php by @kuzmany in #11032
- Change OAuth2 Package to use twig by @mabumusa1 in #12091
- Remove LinkedIn from core by @kuzmany in #12147
- Remove all pipedrive related files and functions by @npracht in #12081
- Queue implementation improvements by @fedys in #12648
- Remove onlyForBC themes by @kuzmany in #12524
- TPROD-284 Refactor CookieHelper to use Symfony Cookie. by @biozshock in #11448
- Remove deprecated cookies by @putzwasser in #12440
- Removing unused interface AdvancedUserInterface and methods it required by @escopecz in #11056
- TPROD-356 Removing sortable panels by @escopecz in #12022
- Rename addFlash to addFlashMessage to prevent method collision by @mollux in #12197
Highlights
- Assets are streamed by default by @volha-pivavarchyk in #11043
- [DPMMA-2108] Add UTM to Asset download by @tomekkowalczyk in #12098
- Track changes for Message entity and Category Entity by @gunnrryy in #11275
- A user can edit an email or landing page created in Code Mode in the Builder, after acknowledging the risk by @volha-pivavarchyk in #11339
- Select with Mautic tokens for GrapesJS text editor by @annamunk in #11525
- Add support for {today} token by @kuzmany in #11722
- [DPMMA-2044] Loading custom fonts into GrapesJS editor - plugin by @annamunk in #12067
- Contact field value campaign condition multiselect for including/excluding operators by @patrykgruszka in #9658
- add more info in campaign tooltip by @npracht in #11881
- [DPMMA-2099] Page hit campaign condition by @tomekkowalczyk in #12048
- [DPMMA-716] Add new condition DNC to campaigns by @tomekkowalczyk in #12099
- Company merge event by @kuzmany in #11748
- Option to set a strict transport security header in response by @annamunk in #11608
- Redis sentinel_master_only option by @fedys in #11675
- Add Symfony Messenger Only by @mabumusa1 in #11598
- Messenger improvements by @fedys in #12509
- Enable Slave Connections if exists by @mabumusa1 in #11792
- Add lock support on maintenances commands by @kuzmany in #11478
- Support lock for mautic:custom-field:create-column command by @kuzmany in #12000
- Add support Redis lock system for commands by @kuzmany in #10347
- TPROD-457 - PHP 8.1 support by @roboparker in #12382
- Adding marketplace command by @escopecz in #12529
- Keep the filename when uploading with Froala by @volha-pivavarchyk in #12554
- Add support for shortener services by @kuzmany in #12299
- Adding support for URL shortener in email 5.x by @christian-krieg in #12128
- Disable trackable for SMS in configuration by @kuzmany in #11683
- Add provision for custom DSN validation messages by @ts-navghane in #12624
- Option to select domain for saml_idp_entity_id by @dadarya0 in #12655
- [rector] Few configuration improvements by @TomasVotruba in #12676
- Site Url is validated in the UI to be a valid url by @volha-pivavarchyk in #12727
- Add created and modified data to contact profile by @kuzmany in #11352
- Contact email statistics in lead view by @patrykgruszka in #11406
- The tag label in the contact page is a link to the tag detail page by @volha-pivavarchyk in #11582
- The contact history item "UTM tags recorded" has a clearer event label by @volha-pivavarchyk in #11754
- Unique contact fields are now checked for uniqueness on contact form. by @biozshock in #11716
- Update of the country name of Swaziland to Eswatini by @AlanWierzchonCA in #12061
- add la rioja to regions by @roboparker in #12575
- Dpmma 1743 focus actions on contact timeline by @AlanWierzchonCA in #11999
- Dashboard widget with segments build time by @patrykgruszka in #12398
- add makers bundle by @roboparker in #11313
- Upsert functionality by @aarohiprasad in #11654
- Improve documentation of code and logging of exception errors by @volha-pivavarchyk in #11345
- Adding Symfony 4.0 and 4.1 Rector rule sets to CI by @escopecz in #11479
- lower sleep times for faster tests by @mollux in #11508
- Prepare database only once a test suite run by @fedys in #11585
- Bump twig/twig from 3.4.2 to 3.4.3 by @dependabot in #11532
- Upgrade php cs fixer by @biozshock in #11548
- Bump min PHP requirement to 8.0 by @mollux in #11581
- Bump DDEV to use PHP 8.0 by @RCheesley in #11600
- add custom PHPCS fixer to prevent useless MAUTIC_TABLE_PREFIX defines by @mollux in #11622
- Update UPGRADE-PHP-TO-TWIG-TEMPLATES.md by @JoshuaEstes in #11813
- Adding Twig lint command to GH Actions to catch invalid TWIG syntax by @escopecz in #11844
- improve test speed of campaign count tests by @mollux in #12127
- Make automated tests independent and faster by @fedys in #12138
- Adding a test that batch endpoints work with the overwriteWithBlank flag by @escopecz in #12255
- Allow php-cs-fixer to use cache. by @biozshock in #12246
- Updating rector phpstan by @escopecz in #12302
- Regenerate PHPStan Baseline by @mabumusa1 in #12420
- Apply Rector Rule: Remove Annotation by @mabumusa1 in #12368
- Command 'composer phpstan' builds the test cache automatically if needed by @fedys in #12515
- PHPSTAN and Rector updates + baseline update by @escopecz in #12531
- Add mock http_client by @ts-navghane in #12579
- retrigger gitpod image generation and update ddev to latest version by @mollux in #12578
- Add two debug logging statements when there is a wrong configuration by @adiux in #12619
- Improve speed of NPM and webpack on CI by adding caching by @mollux in #12771
- Save plaintext to the Copy entity by @escopecz in #11254
- Hide the input field for the batch size by @volha-pivavarchyk in #11167
- Trackable link to mailto by @AlanWierzchonCA in #11481
- Add a setting to set the batch size by @volha-pivavarchyk in #11595
- Personal and transactional emails do not contain unsubscribe header by @volha-pivavarchyk in #11787
- Minify HTML email to improve deliverability by @kuzmany in #11947
- Add reply to to custom email by @kuzmany in #11662
- Add delivered count to email stats by @patrykgruszka in #11965
- DPMMA-2222 Email click heatmap by @patrykgruszka in #12696
- DPMMA-2537 RFC 8058 one-click unsubscribe by @patrykgruszka in #13103
- Focus item click conversion rate by @patrykgruszka in #11945
- The add tag action exists for campaign forms (not just standalone forms) by @volha-pivavarchyk in #12165
- Add stage info to lead export data by @patrykgruszka in #11552
- Contacts should export via mail instead of immediate download by @ts-navghane in #11272
- Bulk importing custom fields by @roboparker in #12508
- Tags can be imported via csv by @volha-pivavarchyk in #12547
- Disable activity push for integrations with command by @escopecz in #11255
- Integration bundle improvements by @fedys in #11303
- New methods for IntegrationsBundle/Entity/ObjectMappingRepository by @fedys in #11657
- New INTEGRATION_BEFORE_COMPANY_FIELD_CHANGES event by @escopecz in #10512
- Segment query optimization by @rohitpavaskar in #11283
- Query optimization campaign stat summary by @rohitpavaskar in #11282
- Simple paginator by @fedys in #11444
- Switch to md5 for password hashing during tests to improve speed by @mollux in #11498
- Index for webhook_logs table by @fedys in #11588
- Optimized query for getting orphaned leads in a segment by @fedys in #11583
- Compress webhook queue payload by @fedys in #11589
- Optimize segment load query by @patrykgruszka in #11766
- Making the deduplicate command fast by @escopecz in #11697
- Don't store owner tokens in email stats when owner not set by @kuzmany in #12167
- Segment rebuild improvements by @fedys in #12131
- Add threads support for broadcast command by @kuzmany in #11549
- replace mrclay/minify with matthiasmullie/minify for faster asset generation by @mollux in #12717
- Contact manipulators added for campaigns and integrations for use by plugins by @fedys in #11669
- Add Endpoint field to S3 plugin by @skippednote in #11693
- Point groups by @patrykgruszka in #11891
- Default preferences center save success message by @patrykgruszka in #11468
- AVG rounding in reports removed by @annamunk in #11273
- Change report download link message by @kuzmany in #11342
- Filter report data by tags by @patrykgruszka in #11346
- Devices report by @patrykgruszka in #11422
- Use the form results tables as report data sources by @volha-pivavarchyk in #11567
- Normalize report data If contact or company use bool/select/multisele… by @kuzmany in #12052
- Email report graph table: Most clicked email links by @patrykgruszka in #12084
- Form fields with the file type added to the report cannot now be loaded form result report by @volha-pivavarchyk in #12474
- Columns of mapped objects can be added to the form results report by @volha-pivavarchyk in #11927
- DPMMA-1436 click-through stats in email report by @patrykgruszka in #12713
- Segment dependency tree by @escopecz in #11276
- Show total time for rebuilding segments by @AlanWierzchonCA in #11419
- Long segment build time warning by @patrykgruszka in #11917
- Add filter icon for segment with filters by @kuzmany in #12533
- Allow enabling/disabling new contact restrictions in segment rebuilds by @fedys in #12566
- Segment date filter value validation by @kuzmany in #12572
- Add a new stage condition in the campaign by @volha-pivavarchyk in #11222
- The form help message can be formatted with html tags by @volha-pivavarchyk in #11335
- Display the form success and error message at the bottom by @volha-pivavarchyk in #10726
- Disabled send button If sending is in background by @kuzmany in #11351
- Render help text for form fields by @volha-pivavarchyk in #12371
- Add contact segment membership webhook by @kuzmany in #12186
Bug Fixes
- DPMMA-375 fix multiple flash messages by @patrykgruszka in #13187
- Fixing Undefined project root by @escopecz in #13193
- fix: [DPMMA-2252] point groups migration fix by @patrykgruszka in #13195
- Fixing a typo in a controller action path by @escopecz in #13203
- fix incorrect variable name when setting read only db host by @mollux in #13211
- Fix embedding images in mails by @mollux in #13219
- Enforce pdo_mysql as doctrine driver as it's the only supported one by @mollux in #13210
- Fix invalid javascript:void(). by @biozshock in #13217
- ensure JS libraries requiring Jquery UI are loaded in the correct order by @mollux in #13216
- Add Missing Translations for GrapeJS by @code5rick in #13207
- Update form.html.twig by @porubma in #13223
- DPMMA-375 Flash messages are not visiblie in campaign builder by @patrykgruszka in #13205
- DPMMA-2566 GroupContactScore mapping fix by @patrykgruszka in #13231
- Adding wrongly removed migration back by @escopecz in #13183
- Typo fix by @RCheesley in #13184
- Remove uneeded if by @benji07 in #11308
- Fix lookup properties by @kuzmany in #11296
- Fix UTM content longer like 191 characters by @kuzmany in #11317
- Fix the typos in php doc by @volha-pivavarchyk in #11312
- The reply-to address of an email is the from address if the mailer is owner by @volha-pivavarchyk in #11322
- Remove unused translations by @volha-pivavarchyk in #11329
- Fixing JSON control chars and adding a test by @roboparker in #11343
- Capaign events with 0 delay ignore day of week restrictions by @roboparker in #11332
- Fix gitpod for form submissions for 5.x branch by @RCheesley in #11415
- Rewording notifications by @escopecz in #11450
- Fix campaign looping issue by @kuzmany in #11318
- Use hasSession() over getSession() to check whether the session exists by @escopecz in #11483
- Removing ExceptionHelper as it is not used anywhere by @escopecz in #11504
- TPROD-299 Replace old TranslatorInterface by @fedys in #11502
- Fix of permmission validation and functional tests PR for 5.x by @AlanWierzchonCA in #11480
- Fix link to clicked contact list by @AlanWierzchonCA in #11465
- Ensure there is a default db prefix during PHPUnit tests (5.x) by @mollux in #11494
- Update Rector and PHPstan by @mollux in #11505
- Fixing campaign contact field condition on state field by @escopecz in #10961
- Updated supported versions and their dates in SECURITY.md by @BramDriesen in #11545
- Fix installer by replacing a removed method by the correct one by @mollux in #11553
- Add test for UI installer to ensure basic config works (5.x) by @mollux in #11557
- Downgrade the packages that where unintentionally updated in #11524 by @mollux in #11563
- fix missed dispatch calls with reversed arguments in #11140 by @mollux in #11564
- Change 'Uttaranchal' to 'Uttarakhand' in regions.json by @akhilrawat001 in #9204
- Removing misd/phone-number-bundle as it is unused and abandoned by @escopecz in #11579
- Fix dashboard report line graphs by @fedys in #11584
- ensure the themes and plugins on 5.x will require Mautic core 5.x by @mollux in #11593
- Fix report with aggregated columns is not saved properly by @patrykgruszka in #11538
- Fix doctrine fixtures double loading by Rahul Shinde by @escopecz in #11536
- #TPROD-306 - migrate AssetBundle to twig templates by @SalemCode8 in #11610
- Use SameSite=Lax attribute for session cookies by @patrykgruszka in #11511
- Report export with aggregated AVG columns are converted to integers by @patrykgruszka in #11514
- Send email to user preview fix by @aarohiprasad in #11449
- Force webhook_log_max int type by @kuzmany in #11640
- Exception logging for commands by @fedys in #11656
- Fix clean sync_object_field_change_report for companies by @kuzmany in #11623
- Fix the CKEditor scrolling issue by @volha-pivavarchyk in #11491
- NotificationRepositoryTest fixed by @fedys in #11667
- Fix remove sms bounce label by @kuzmany in #11665
- Fix ampersand encoding in tokens by @JaZo in #11644
- Replace deprecated NumberToLocalizedStringTransformer::ROUND_* constants by @biozshock in #11677
- The Add Notes Button is always displayed (also on smaller screens) by @volha-pivavarchyk in #11684
- Core.parseToObject fix by @fedys in #11688
- Fix campaign loop for jump action for decision by @kuzmany in #11568
- Fix show Focus Items Builder - correction of reading sending data by @AlanWierzchonCA in #11712
- Fixed infinite recursion in Search string helper by @Rigiytip in #11685
- Resolving Hubspot Mapping Error for Mautic 5.x by @onairmarc in #11761
- Doctrine fixtures will load form DDL before executing inserts. by @biozshock in #11701
- Fix marketing message sorting by category by @volha-pivavarchyk in #11725
- Fix the dynamic content events are not displayed on the lead timeline by @volha-pivavarchyk in #11726
- Fix campaign trigger command multithreading by @patrykgruszka in #11747
- Get request variables from query instead of request. by @biozshock in #11760
- Adding link to Best Practices when using templates in UPGRADE-PHP-TO-… by @JoshuaEstes in #11806
- Fix the campaign condition 'is a member of segment' by @volha-pivavarchyk in #11782
- Check if an entity exists in dashboard subscriber for "Recent activity". by @biozshock in #11692
- Fix unset company by @kuzmany in #11658
- Fix api limit issue by @dadarya0 in #11837
- Fix ActivityListType array flip by @kuzmany in #11651
- Fix email send with company tokens by @ts-navghane in #11711
- Global search fix by @escopecz in #11842
- Report: The Segment Activity Log Report shows the correct entries M5 by @escopecz in #11841
- Fix: GrapesJS assets transfer is slowing admin panel view loading by @patrykgruszka in #11818
- Fixing modal box submission for contacts. Revert b1bb8f4 by @biozshock in #11856
- Trim campaign id while sending email by @dadarya0 in #11859
- If a user tries to upload a file to import contacts and something goes wrong, the user gets a message by @volha-pivavarchyk in #11852
- Removing files that are not needed anymore... by @escopecz in #11863
- Fix/change hubspot api auth 5.x by @biozshock in #11857
- Fixing failing API-Library test for editing devices by PUT with ID th… by @escopecz in #11873
- Companion PR for #9516 by @mabumusa1 in #11879
- Add orderBy to findOneBy to return more accurate eventLog result (5.x) by @mabumusa1 in #11882
- Clarify segment tooltip - 5.x by @mabumusa1 in #11884
- GrapesJS RTE disable fix - Mautic 5 by @annamunk in #11886
- Fix reply for email with suffix by @kuzmany in #11779
- Fix hourly email stats chart by @patrykgruszka in #11880
- M5 Fix date/datetime empty mysql expression for contact field condition by @kuzmany in #11871
- Update UPGRADE-PHP-TO-TWIG-TEMPLATES.md by @LordRembo in #11921
- Leadlist command exit codes by @galvani in #11439
- Fix 500 error for integrations by @kuzmany in #11896
- Fix resubscribe action condition check - 5.x by @mabumusa1 in #11883
- Faster leads list page by @mabumusa1 in #11620
- Fix segment mails not using site_url by @nick-vanpraet in #11919
- Adding back social monitoring command by @escopecz in #11981
- Confirm Me - MJML Fixes by @jos0405 in #11976
- Fix: Dynamic Content in emails (legacy builder)- default content - 5.X Version by @mabumusa1 in #11954
- Revert "TPROD-357 - CoreBundle - Standard - Migrate PHP Templates to Twig Templates" by @escopecz in #12021
- Fix error when /tmp is not available - 5.x by @mabumusa1 in #11885
- TPROD-322 - PageBundle - Bug Fixes by @JoshuaEstes in #12031
- TPROD-363: Deleting unused php templates by @escopecz in #12032
- Fix characters in segment name and filters by @kuzmany in #12025
- Avoiding exceptions when the value of the choice field is null by @volha-pivavarchyk in #12010
- Fix chosen search input overflow in campaign send email action by @patrykgruszka in #10307
- fix failing test test by @escopecz in #12068
- IntegrationBundle config form notes by @shinde-rahul in #11451
- Fix replace trackable tokens from longest to short by @kuzmany in #11948
- Fix report table alias issue by @dadarya0 in #11773
- Fix issue with pre-populating the value of a form field from the URL query parameters by @volha-pivavarchyk in #11077
- Contact timeline twig fixes by @patrykgruszka in #12088
- Report graphs table twig fixes by @patrykgruszka in #12083
- Fix remove DNC status for SMS by @kuzmany in #12074
- [DPMMA-1861] Duplicate segment clone action by @tomekkowalczyk in #12045
- fix segment/campaign detail view's contacts tab pagination problem by @jiang2013 in #12093
- add jura to list of regions for Switzerland by @npracht in #12112
- Fix callback mailjet processing If contact has uppercase email address by @kuzmany in #11670
- Fix Email sent, DNC and UTM report filters by @patrykgruszka in #12009
- fix broken UI installer when using < recommended memory by @mollux in #12121
- Functional tests improvements by @fedys in #12137
- Fix email fetch message by @kuzmany in #11832
- Fix change date modified If last_active date change by @kuzmany in #12026
- [DPMMA-1652] MySQL column form in submission 5x by @tomekkowalczyk in #12043
- Stop rendering fields twice by @escopecz in #12153
- bugfix for #12127 to solve failing tests by @mollux in #12157
- Fixing missed template include syntax by @escopecz in #12163
- Twig function toShort with wrong format by @kuzmany in #12168
- TPROD-374: Updated testcase to fix DomCrawler::text() passing second argument false. by @shinde-rahul in #12179
- Fixing contact list view by @escopecz in #12182
- Remove obsolete offline.php file by @mollux in #12190
- Fixing saving campaigns by @escopecz in #12207
- DateTimeHelper use local timezone from configuration not from server by @kuzmany in #12116
- Adding a test showing the bug by @escopecz in #12210
- Add exit code to some mautic commands for mautic 5 by @beetofly in #12203
- Bugfix 12063 - 500 Error when changing tag in a Contact and clicking save&close [5.x] by @LordRembo in #12106
- Twig helper fixes by @mollux in #12233
- Bugfix 12044 - 500 error on Form when adding attributes to a field by @LordRembo in #12220
- Bug 12178 - Company segment filter is changed to contact on save by @LordRembo in #12223
- First segment filter glue fixed by @fedys in #12214
- Use timezone during the build graph data by @kuzmany in #12248
- Fix password reset enumeration users by @tomekkowalczyk in #11417
- Fix typo in SMS bundle by @paulsanduleac in #12284
- Twig fixes and cleanup by @mollux in #12281
- rework conditional for getting joinIpAddresses by @LordRembo in #12274
- Fix contact event logs when a contact is added to a segment by @patrykgruszka in #12249
- Bug 12055 - translate popup text for saving dashboard by @LordRembo in #12250
- Fixing dependencies for 3 commands after some PRs were merged by @escopecz in #12303
- Moving githook scripts to classic script syntax by @escopecz in #12337
- Using git tag instead of branch for history.js as it caused ssh issue… by @escopecz in #12346
- Dynamic content used with regex fails by @dadarya0 in #12362
- Adding back the node_modules to the list of excluded files by @escopecz in #12356
- Fix contact tracking on external websites (samesite param in CookieHelper) by @patrykgruszka in #12325
- Refactoring twig paths - issue #12351 by @lenonleite in #12352
- Fix broken twig templates by @mabumusa1 in #12399
- Transliterate filenames in elFinder by @kuzmany in #11324
- chore: update regions for Austria, Germany, Liechtenstein, Switzerland by @fan711 in #12391
- Show scrollbar for menu bars only if some items are bellow the fold by @escopecz in #12407
- Run CS Fixer by @mabumusa1 in #12419
- ensure the elfinder paths are within the default firewall, so rememberme functionality works by @mollux in #12430
- Focus items fixes by @escopecz in #12432
- ensure the remember me key doesn't change every bootstrap by @mollux in #12425
- Updating the ramsey/uuid library to avoid PHP 8.1 warnings by @escopecz in #12437
- Updating simshaun/recurr from v3 to v5 to support php 8.1 by @escopecz in #12438
- Fixing Focus Items API by @escopecz in #12442
- TPROD-304: Deprecated LogoutHandlerInterface, register a listener on the LogoutEvent event instead. by @mabumusa1 in #11867
- ensure dependencies use a compatible version of psr/simple-cache by @mollux in #12452
- Updating the mrclay/minify library by @escopecz in #12461
- Disabled send button from list If sending in background by @kuzmany in #11946
- Fix coverage actions by @mabumusa1 in #12462
- switch ddev testing back to 8.0 by @mollux in #12467
- Revert "fix: [DPMMA-1652] add tests" and real fix for reserved keyword in alias by @kuzmany in #12272
- test if the composer.lock file is in sync with composer changes by @mollux in #12473
- ensure rector generates relevant cache since rector update by @mollux in #12475
- Sonar - Reference base branch as new code by @mabumusa1 in #12476
- Fix coverage paths by @mabumusa1 in #12482
- Fix Sonar Path by @mabumusa1 in #12488
- Fixing migrations by @escopecz in #12491
- Fixing point translation (m5) by @escopecz in #12500
- ensure only leads from a company are shown on a the company detail overview by @mollux in #12464
- Fix api stage and owner fields are kept by @adiux in #12078
- Fix Dynamic Content form script load by @kuzmany in #12075
- Gated video - support for iframe tag by @kuzmany in #12051
- Segments cant match titles for incognito redirects or when page title query is not set by @roboparker in #11403
- Use replica in comments too by @mollux in #12512
- Fixing segment search by @escopecz in #12513
- Custom Objects export fix for M5 by @escopecz in #11995
- Using the M5 email configuration to send emails in DDEV by @escopecz in #12514
- Fixing the build job by @escopecz in #12519
- Fix for missing files in update package by @mollux in #12521
- set plain and current password to null in erase credentials by @roboparker in #12507
- Adding migration that will replace root_dir variable with project_dir by @escopecz in #12526
- Segment reference filter operator fix by @fedys in #12530
- Adding the Purify filter to the values that can contain simple HTML formatting by @escopecz in #12528
- Fix reply to address when contact has owner by @mabumusa1 in #12405
- Update messages.ini: Don’t overwrite value if already exists by @IonutOjicaDE in #12551
- Rector fix by @escopecz in #12556
- The list of related contacts is formed correctly by @volha-pivavarchyk in #12561
- Add lead to page and url hits by @roboparker in #12550
- Multiple select custom fields can be created without errors by @volha-pivavarchyk in #12542
- Corrects twig templates to use basic html in form help text by @volha-pivavarchyk in #12562
- Roles are now editable. by @shinde-rahul in #12520
- Fix undefined variable while creating form with API by @patrykgruszka in #12543
- remove quotes to allow cloning by @roboparker in #12567
- ignore unmapped attributes by @roboparker in #12557
- Focus: Fix popup styles coming from preview from app by @kuzmany in #12447
- Fix wrong sanitaze query for ?a during redirect by @kuzmany in #12505
- Fixing global search JS not be flash irrelevant message. by @shinde-rahul in #12436
- Support to Pass MessagingServiceSID to Twillio API instead of From by @dadarya0 in #12539
- Fix warning from last build and remove icon on unpublished segment by @kuzmany in #12534
- Webhook change segment normalize contact data by @kuzmany in #12546
- Fix email segment graph for reads by @kuzmany in #12504
- Fix: Integration Campaign Members List issue on 5.x by @irfanhanfi in #12141
- Fix limit/batch for broadcast email command by @kuzmany in #11127
- treat deprecation warnings as exceptions in PHPunit by @mollux in #12581
- Rewrite remove do not contact form action by @kuzmany in #12393
- remove obsolete scaffold files by @mollux in #12522
- Fix an issue with editing a description area form field by @volha-pivavarchyk in #12571
- fix reference to incorrect template (lead audit log list) by @mollux in #12601
- fix incorrect defaults for array input parameters when filtering contact history by @mollux in #12602
- Separate assets from media by @mollux in #10682
- fix reference to incorrect template (lead grid display) by @mollux in #12600
- add codecov token to reduce the number of failed tests due to report upload failures by @mollux in #12607
- Fix missing and incororrect references to twig templates by @mollux in #12603
- The 2 fields must be set as rendered as they were unset in M4 by @escopecz in #12608
- Fixing tracking description formating by @escopecz in #12611
- A Contact Point Log report can be generated with a segment filter by @volha-pivavarchyk in #12536
- Replace HttpClientInterface with a mock client for tests by @escopecz in #12615
- ensure the expected route part is correctly checked when setting the title by @mollux in #12605
- Respect timezone on best read hours widget by @kuzmany in #12392
- Fix not displaying error information when an ajax call goes wrong by @volha-pivavarchyk in #12125
- Configurable assets stream extensions by @kuzmany in #11474
- Fixing #12590 (form field select for M5) by @escopecz in #12618
- Fix Dynamic content block in email behaving differently in first save and edit [5.x] by @danadelion in #12637
- Send Webhook Contact Updated Event just on updated contact by @kuzmany in #12535
- Fixing "Message must be an instance of MauticMessage" by @escopecz in #12640
- Pre-Fill the primary company values in the form if they are mapped by @adiux in #12635
- Migration for remove quotes from existing campaign event by @dadarya0 in #12651
- Exclude unpublished custom field from form field mapping by @dadarya0 in #12658
- add safari support for state drop down by @roboparker in #12573
- Fix date time conditions in request trait by @kuzmany in #12662
- Returning back the AjaxLookupControllerTrait as it was accidentally removed by @escopecz in #12652
- Fixed company name is not showing on contact edit page by @rahuld-dev in #12644
- Fixing Import custom email template functionality by @shinde-rahul in #12680
- [bugfix] Check is_array on passed value in FieldsTypeTrait by @TomasVotruba in #12697
- Fix download tracked asset from forms by @kuzmany in #12689
- fix: the value of a form field of type tel is displayed correctly by @adiux in #12670
- [DPMMA-2218] Fix email read concurrency issues by @patrykgruszka in #12673
- fix for 500 error when saving a field without specifying a label or alias by @mollux in #12731
- fix for escaped html tags in browser title when page title contains html tags by @mollux in #12730
- Fixing form regressions by @escopecz in #12702
- Fix for non-functional pager on the marketplace overview by @mollux in #12729
- fix for ajax error when clearing the marketplace cache by @mollux in #12728
- fix for contact overview throwing 500 errors when live mode is enabled by @mollux in #12726
- Fix contacts list not being sortable on specific fields by @mollux in #12725
- Adjust translations message for import flash message. by @mallezie in #12716
- Fix for 500 error when viewing a social monitor detail by @mollux in #12723
- fix for double save when creating a social monitor by @mollux in #12724
- Fix for missing validator messages by @mollux in #12739
- fix for non-functional (un)publish dates on the message form by @mollux in #12722
- bump semver to a secure version by @mollux in #12720
- fix missing Request param on edit actions by @mollux in #12719
- Report: Remove filter related class in aggregators by @kuzmany in #12688
- Fixing Jump To Event route. Fixes #12639 by @escopecz in #12762
- fix company owner detail in audit log by @dadarya0 in #12766
- Ignoring files autogenerated after composer install by @escopecz in #12776
- Fixing Focus items if they are different type than "link" by @escopecz in #12769
- Fix for 500 error when deleting a Marketing message by @mollux in #12773
- Campaign event timeline fixes after twig refactoring by @escopecz in #12764
- Fix for missing $request argument when cloning objects via the AbstractStandardFormController by @mollux in #12772
- fix:[DPMMA-2373] fix LeadSubscriber onTimelineGenerate when event is … by @AlanWierzchonCA in #12774
- separate local config from application config by @mollux in #11561
- Empty the (un)publish dates on email clone by @nick-vanpraet in #12784
- Reset plain text after clone by @kuzmany in #12748
- Fix contact dashboard graph only showing own contacts regardless of permission by @driskell in #12819
- Fix date/datetime segment filter validation by @kuzmany in #12647
- fix missing request object on clone operations by @mollux in #12811
- Override lock - Error 500 by @nick-vanpraet in #12837
- [DPMMA-2341] Doctrine does not support short namespaces - fixed by @annamunk in #12834
- fix for incorrect parameter name when using autowiring by @mollux in #12847
- Fix for extra rendered fields in the contact form by @mollux in #12848
- Fix for PHP warnings when generating email starts when no emails are sent by @mollux in #12849
- Duplicate entries in contact history when setting DNC in bulk from contact list by @nick-vanpraet in #12839
- Invoke guard authenticator. by @biozshock in #12855
- add interface to SubmissionResultLoader to appear in models by @galvani in #12870
- Notification bundle validation. by @biozshock in #12861
- [DPMMA-2341] Fixed missing preference center by @annamunk in #12829
- fix: dynamic content timeline entry by @davidgorges in #12902
- Fix incorrect logic when tokenising email headers by @mollux in #12912
- Remove HTTP response info from unsubscibe page by @patrykgruszka in #12879
- Ensure an empty mail subject doesn't throw an error by @mollux in #12908
- Keep correct migration name by @kuzmany in #12886
- Allow multiple lookup fields for same type in same form by @dadarya0 in #12875
- Fix missing required constraint on (not) in filters by @mollux in #12852
- Adding VIEW_INJECT_CUSTOM_TEMPLATE back even in the Twig world by @escopecz in #12924
- [dead-code] Remove unused var annotations by @TomasVotruba in #12938
- [dead-code] Remove unnecesary array check by @TomasVotruba in #12939
- [dead-code] Remove redundant class and constructor comments by @TomasVotruba in #12940
- The $siteUrl is null on installation. substr() requires string. It fails on PHP 8.1 by @escopecz in #12936
- Remove duplicate button from interface by @andersonjeccel in #12937
- Issue #12941. Move .ck-body-wrapper from css to less. by @pasxel in #12942
- [ci] run Rector only once, with --dry-run to fail in case of change by @TomasVotruba in #13024
- [ci] make use of composer validate and make composer.lock testing simple by @TomasVotruba in #13029
- [rector] Kick of ligther config splits by @TomasVotruba in #13048
- Fixing API error caused by the strict type mismatch by @escopecz in #13061
- Removing obvious comments by @escopecz in #13037
- Deprecating unused classes by @escopecz in #13066
- "Don't overwrite value if already exists" option is not working In Import Contacts. by @rohitpavaskar in #13008
- Mitigate missing country flags when a contact is rendered by @mollux in #12911
- Fix point tags triggering by @kuzmany in #12867
- Fix locked category by @npracht in #11854
- Fix incorrect grammar on password reset flash message by @RCheesley in #13107
- LinkedIn fix label by @code5rick in #13098
- Ensure test mail fixture is a valid mail object with custom HTML by @mollux in #13109
- Support underscores in landing page URLs by @ts-navghane in #13122
- Fixed color picker in 5.x by @annamunk in #13123
- Set proper location of autoload.php in phpunit.xml.dist. by @biozshock in #13111
- [DPMMA-2341] Part of the saveprefsbutton template removed by @annamunk in #12857
- [DPMMA-2341] Missing variables in preference center token templates by @annamunk in #12895
- Fixing PHP waringing accessing array keys on null by @escopecz in #13171
- Fixing the Broadcast command, #fixes 13093 by @escopecz in #13172
- Fix php error when accessing non-existing contacts and companies by @mollux in #13173
- DPMMA-2524 fix message queue errors by @patrykgruszka in #13071
- Fixing activeLink for reports, fixes #12820, plus DI improvements by @escopecz in #13174
- Removing wrong, duplicated twig templates and using the right ones by @escopecz in #13175
Refactoring
- refactoring & Test case for send email to dnd contact by @dadarya0 in #12654
- TPROD-291 Remove use of KernelInterface::getName() and the kernel.name parameter by @rohitpavaskar in #11138
- TPROD-340 - Migrate Tag Manager Views to twig by @SalemCode8 in #11524
- TPROD-283: Refactor Symfony\Bundle\FrameworkBundle\Controller\Controller to Symfony\Bundle\FrameworkBundle\Controller\AbstractController by @kuzmany in #11142
- TPROD-282 - Controller reference syntax updated to Symfony 5 by @fedys in #11063
- Added getter method for originalIsPublishedValue so that we can read it by @rohitpavaskar in #11284
- TPROD-297 Use __serialize() and __unserialize() instead serialize() and unserialize() by @rohitpavaskar in #11150
- [TPROD-295] Move from deprecated form authenticator to guard. by @biozshock in #11520
- ensure all symfony rules up to 4.1 are checked + fixes by @mollux in #11537
- Upgraded LiipTestFixturesBundle to a newer version. by @biozshock in #11547
- TPROD-290 The Kernel::getRootDir() and the kernel.root_dir parameter have been removed by @rohitpavaskar in #11145
- TPROD-275/TPROD-276 Refactor Event classes to Contracts and make dispatcher as first argument by @kuzmany in #11140
- #TPROD-309 - Migrate Category Bundle to Twig templates by @SalemCode8 in #11554
- #TPROD-320 - migrate Marketplace Bundle to Twig templates by @SalemCode8 in #11560
- Rector resolving deprecations for Symfony 4.2 by @escopecz in #11543
- Rector up to symfony 4.3 by @escopecz in #11555
- Applying changes for UP_TO_SYMFONY_44 Rector rule set by @escopecz in #11576
- #TPROD-328 Migrate Stage Bundle to twig templates by @SalemCode8 in #11565
- Replacing deprecated method orX() with or() by @escopecz in #11599
- #TPROD-329 - migrate UserBundle to twig templates by @SalemCode8 in #11580
- Removing CustomFormExtension as it is not used and was deprecated in 4.3 by @escopecz in #11632
- Contact manipulators added for campaigns and integrations follow-up by @fedys in #11686
- Autowiring for all! by @escopecz in #11587
- TPROD-346 Transifex SDK update by @escopecz in #11724
- Config bundle autowiring by @escopecz in #11774
- PHPStan now processes generics for models. by @biozshock in #11759
- Remove sleep() from campaign command tests. by @biozshock in #11674
- TPROD-319 - LeadBundle - Segment Templates by @JoshuaEstes in #11816
- TPROD-319 - LeadBundle - Companies by @JoshuaEstes in #11815
- TPROD-313 - DashboardBundle: migrate views from PHP Engine to Twig by @JoshuaEstes in #11791
- Asset removing php templates by @escopecz in #11846
- #TPROD-310 - Migrate ChannelBundle to twig templates by @SalemCode8 in #11668
- TPROD-305 Twig refactoring for Api bundle by @escopecz in #11853
- TPROD-318 - Converting PHP templates for the IntegrationsBundle to Twig by @escopecz in #11862
- TPROD-327 Twig refactoring of the SMS bundle by @escopecz in #11866
- TPROD-308 - CampaignBundle: migrate views from PHP Engine to Twig by @JoshuaEstes in #11778
- TPROD-319 - LeadBundle - Lead PHP Templates to Twig by @JoshuaEstes in #11820
- TPROD-319 - LeadBundle - Custom Fields Templates by @JoshuaEstes in #11819
- TPROD-322 - PageBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11914
- TPROD-337 - MauticFullContactBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11930
- Form object refactoring by @volha-pivavarchyk in #11905
- TPROD-321 - NotificationBundle - Popup - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11907
- TPROD-333 - MauticClearbitBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11937
- TPROD-334 - MauticCrmBundle - Convert PHP Templates to Twig by @JoshuaEstes in #11936
- TPROD-321 - NotificationBundle - Web - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11908
- TPROD-321 - NotificationBundle - Mobile - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11909
- TPROD-319 - LeadBundle - Import by @JoshuaEstes in #11814
- TPROD-311 - ConfigBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11938
- TPROD-316 - FormBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11898
- TPROD-321 - NotificationBundle - Complete PHP Templates to Twig by @JoshuaEstes in #11913
- TPROD-338 - OutlookBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11959
- TPROD 331 - GrapesJsBuilder: migrate views from PHP Engine to Twig by @LordRembo in #11932
- TPROD-312 - TPROD-349 - CoreBundle exceptions migrate views from php engine to twig by @LordRembo in #11953
- #TPROD-317 InstallBundle: migrate views from PHP Engine to Twig by @rajesh-bhavnani in #11817
- TPROD-324 - PointBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11968
- TPROD-339 - SocialBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11944
- TPROD-336 - FocusBundle - Convert PHP Templates to Twig Templates by @JoshuaEstes in #11931
- TPROD-314 - DynamicContentBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11979
- TPROD-323 - PluginBundle - Migrate PHP templates to Twig templates by @JoshuaEstes in #11960
- TRPOD 312 - TPROD 358 - CoreBundle Theme: migrate views from php engine to twig by @LordRembo in #11971
- TPROD-326 - ReportBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11980
- TPROD-319 - LeadBundle: migrate views from PHP Engine to Twig by @JoshuaEstes in #11793
- TPROD-315 - EmailBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11974
- TPROD-355 - CoreBundle - Slots by @JoshuaEstes in #12013
- TPROD-354 - CoreBundle - Sections by @JoshuaEstes in #12014
- TPROD-359 - CoreBundle - Translation by @JoshuaEstes in #12012
- TPROD-361 - CoreBundle - Variant by @JoshuaEstes in #12011
- implement code review suggestions from PR #11971 by @LordRembo in #12017
- Removing unused UserBundle PHP templates by @escopecz in #12018
- TPROD-357 - CoreBundle - Standard - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #12006
- TPROD-350 - CoreBundle - FormTheme by @JoshuaEstes in #12015
- TPROD-312 - CoreBundle Menu: migrate to twig by @LordRembo in #11997
- TPROD-360 - CoreUpdate - Update - Migration PHP Templates to Twig Templates by @JoshuaEstes in #12005
- TPROD-332 - CitrixBundle - Migrate PHP Templates to Twig Templates by @JoshuaEstes in #11967
- TPROD 312/TPROD 351 - CoreBundle Helper templates cleanup by @LordRembo in #12039
- TPROD-357: PHP Template Migration to Twig by @JoshuaEstes in #12046
- Twig Refactoring: Fix Views location to standard paths by @mabumusa1 in #12100
- Fix template name format by @mabumusa1 in #12102
- Refactor Offline.php to use twig templates by @mabumusa1 in #12101
- Remove Templating Helper: Fix Exception Controller by @mabumusa1 in #12124
- Remove Templating Helper from Controllers by @mabumusa1 in #12118
- Fix Twig Paths in bundles to use namespaces by @mabumusa1 in #12126
- Remove Templating Helper From Other Helpers & Subscribers by @mabumusa1 in #12122
- Remove Templating Helper from Models by @mabumusa1 in #12120
- Remove Templating from CoreBundle by @mabumusa1 in #12130
- Refactor FormBundle to remove templating by @mabumusa1 in #12115
- Remove Templating Helper from Citrixbundle by @mabumusa1 in #12132
- Remove TemplatingHelper by @mabumusa1 in #12134
- Files removal after helper refactor by @mabumusa1 in #12136
- Make plugins use namespaces for twig by @mabumusa1 in #12139
- Fix npm dependencies: deinstall grunt-remove, update grunt by @adiux in #12033
- Refactor CoreBundle Helpers to remove templating by @mabumusa1 in #12140
- Autowiring controllers. by @biozshock in #11892
- Replacing controller syntax for Symfony 5 that was forgotten from #11063 by @escopecz in #12161
- TPROD-382: Remove symfony/inflector by @mabumusa1 in #12166
- TPROD-379 FormError message cannot be null by @escopecz in #12170
- TPROD-370 - Fixed - Calling "Symfony\Bundle\FrameworkBundle\Test\WebTestCase::cre… by @fedys in #12172
- [TPROD-388] Set "twig.exception_controller" configuration key to "null". by @biozshock in #12174
- Remove config deprecations for DoctrineMigrationsBundle. by @biozshock in #12175
- Form widget deprecation notice fix by @escopecz in #12173
- Date time type refactoring by @escopecz in #12171
- TPROD-385 - "lightsaml/sp-bundle" upgraded to dev-symfony5 by @fedys in #12181
- TPROD-410: Remove dependency on stack/run by @mollux in #12189
- Use the tokenmanager to validate CSRF tokens by @mollux in #12198
- Use provided manager instead of injected. by @biozshock in #12194
- Remove deprecated %kernel.project_dir% from config. by @biozshock in #12193
- Remove unused WebfactoryExceptionsBundle dev dependency by @mollux in #12199
- add compatibility for monolog 2 by @mollux in #12201
- make CacheProvider:: clear() compatible with method signature of symfony 5 by @mollux in #12200
- TPROD: Fix Property Access by @mabumusa1 in #12185
- TPROD-386 - "discovery.html.twig" moved to Symfony 5 recommended path by @fedys in #12209
- switch to self generated default SAML certificate by @mollux in #12212
- [TPROD-399]: Contact merger should not use repository::clear. by @biozshock in #12195
- TPROD-399 Removed Doctrine deprecations from Campaign mautic:campaigns:rebuild command. by @biozshock in #12192
- TPROD-399 Removed Doctrine deprecations from Campaign executioners. by @biozshock in #12191
- Removing a deprecation about min needing also allowEmptyString by @escopecz in #12215
- TPROD-400: Remove fetchAll Deprecation by @mabumusa1 in #12218
- TPROD-399 EM::clear() refactoring Remove deprecated call from CampaignBundle. by @biozshock in #12229
- TPROD-399 EM::clear() refactoring - email send by @biozshock in #12226
- TPROD-406: Replace Query with executeQuery by @mabumusa1 in #12231
- Remove symfony/debug by @mabumusa1 in #12235
- Cleanup PHPSTAN config file + needed fixes by @mollux in #12225
- Add Rector Rules for Doctrine by @mabumusa1 in #12239
- NPM dependencies - the first taste by @escopecz in #12234
- Add Rector rule to make it 2.9 compatible by @mabumusa1 in #12247
- Removing unused browser notifications by @escopecz in #12261
- TPROD-437 Removing unused PlaySound JS library by @escopecz in #12265
- TPROD-445: Call to deprecated method getDoctrine() of class by @mabumusa1 in #12279
- replaced isPrimaryKey() with makePrimaryKey() by @daniellord32 in #12286
- TPROD-448: Type Depreciation by @daniellord32 in #12288
- TPROD-454, TPROD-449, TPROD-454 Remove Doctrine Deprecation by @lenonleite in #12294
- TPROD-432 : Install chosen.js via npm by @ts-navghane in #12270
- TPROD-456: Fix Types by @mabumusa1 in #12316
- Removing index_dev.php by @lenonleite in #12206
- NPM dependencies part 2 by @escopecz in #12240
- Run DBAL 2.0 Rector rules by @mabumusa1 in #12318
- Install At.js via npm by @rahuld-dev in #12321
- Generate elfinder assets by @escopecz in #12271
- change EM::clear to detach of similar solution in email bundle TPROD-399 by @lenonleite in #12340
- change EM::clear to detach of similar solution in Asset bundle TPROD-399 by @lenonleite in #12326
- EM::clear() refactoring Remove deprecated call from LeadBundle. by @biozshock in #12306
- change EM::clear to detach in integration bundle TPROD-399 by @lenonleite in #12341
- change EM::clear to detach in plugin bundle TPROD-399 by @lenonleite in #12342
- change EM::clear to detach of similar solution in channel bundle TPROD-399 by @lenonleite in #12328
- change EM::clear to detach of similar solution in campaign bundle TPROD-399 by @lenonleite in #12327
- removing em->clear to other options on Point Bundle TPROD-399 by @lenonleite in #12353
- change EM::clear to detach of similar solution in dynamic content bundle TPROD-399 by @lenonleite in #12329
- PROD-399 Remove deprecated Repository::clear. by @biozshock in #12354
- TPROD-444 Removing unused JS library jquery-color by @escopecz in #12357
- change EM::clear to detach in form bundle TPROD-399 by @lenonleite in #12339
- Remove deprecated EntityManager::clear. by @biozshock in #12361
- Jvectormap next by @escopecz in #12359
- TPROD-439 Loading Quicksearch JS from NPM and loading the latest version by @escopecz in #12372
- TPROD-455 Enable PHPStan Doctrine by @mabumusa1 in #12262
- TPROD: 2-Fix entity names using rector by @mabumusa1 in #12257
- Fix doctrine types by @mabumusa1 in #12380
- jQuery and other libraries update into max minor versions by @escopecz in #12373
- Fix missed entities from rector by @mabumusa1 in #12377
- Simplifying grunt by @escopecz in #12374
- Replacing HistoryJS with native history browser api by @escopecz in #12381
- Remove Doctrine getHost() and similar functions by @mabumusa1 in #12379
- TPROD: Move rector rules to sets by @mabumusa1 in #12376
- Remove Citrix Plugin by @mabumusa1 in #12333
- [DPMMA-1977] Form results export: lead id and submission id by @annamunk in #11894
- jQuery UI update by @escopecz in #12394
- Fix elfinder js libraries by @escopecz in #12395
- [DPMMA-2075] Including totals row in report export and increased precision for average by @annamunk in #12104
- Modernizr update by @escopecz in #12402
- Removing files forgotten to be removed in 11865 by @escopecz in #12358
- TPROD: Fix Repo names in plugins by @mabumusa1 in #12401
- Tprod 457 json serialize return types by @roboparker in #12383
- Avoid using empty expression + applyTagFilter moved by @escopecz in #12403
- Remove DoNotContact entities from memory when already used. by @biozshock in #12245
- We cannot use node_modules in production by @escopecz in #12417
- Upgrade Doctrine by @mabumusa1 in #12396
- AJAX requests use the site_url instead of the current domain by @nick-vanpraet in #12037
- More autowiring by @biozshock in #12412
- make rector happy with symfony 5.4 by @mollux in #12268
- Replacing unmaintained hard-coded Less library with a better option by @escopecz in #12422
- Fix user entity serialize by @lenonleite in #12434
- Upgrade Package guzzlehttp/guzzle by @mabumusa1 in #12445
- Using read replicas when available by @mabumusa1 in #12038
- Use Guzzle client instead of another package by @escopecz in #12439
- Autowire models. by @biozshock in #12493
- Update analytics.js to gtag to support ga4. by @martoboto in #12421
- Remove Duplicate Code (Doctrine) by @mabumusa1 in #12243
- refactor(phpstan): Remove deprecations related to execute() method by @scyzoryck in #12684
- [rector] [dead-code] Remove few ifs that are always true by @TomasVotruba in #12693
- [rector] [dead-code] Remove few ifs that are always true - part #2 by @TomasVotruba in #12700
- Upgrade ckeditor 4 to 5 by @dadarya0 in #12641
- [type-declarations] Add known bool return type declarations by @TomasVotruba in #12946
- [cs] remove redundant class docblock - round #2 by @TomasVotruba in #12950
- [type-declarations] Add known return array type declarations by @TomasVotruba in #12945
- [type-declarations] Add known return type declarations from new instances by @TomasVotruba in #12947
- [dead-code] Symplify useless variable assign, remove redundant null param by @TomasVotruba in #12953
- [type-declarations] Add ctor based property types in - Lead bundles by @TomasVotruba in #12952
- [type-declarations] Add return type declaration based on constants + add known array types by @TomasVotruba in #12954
- [dead-code] Remove unused variable assigns by @TomasVotruba in #12961
- [type-declarations] Add ctor based property types in - Plugin, Page, Category, Channel bundles by @TomasVotruba in #12955
- [type-declarations] Add ctor based property types in - Stage, Point, Api, Install, Dashboard bundles by @TomasVotruba in #12956
- [type-declarations] Add ctor based property types in - Webhook, Core, Sms, Campaign bundles by @TomasVotruba in #12957
- [type-declarations] Add ctor based property types in - Report bundles by @TomasVotruba in #12958
- [dead-code] Apply remove default null and && over ternary rules by @TomasVotruba in #12960
- [type-declarations] Add known void return type to /plugins by @TomasVotruba in #12963
- [type-declarations] Add known void return type to Stage, User and Webhook bundles by @TomasVotruba in #12964
- [typed-properties] Add ctor based typed properties to Integrations bundle by @TomasVotruba in #12969
- [typed-properties] Add ctor based typed properties to User bundle by @TomasVotruba in #12970
- [typed-properties] Add ctor based typed properties to Cache bundle by @TomasVotruba in #12972
- [typed-properties] Add ctor based typed properties to Email bundles by @TomasVotruba in #12971
- [type-declarations] Add known return void types in Point, Plugin bundles by @TomasVotruba in #12974
- [typed-properties] Add ctor based typed properties to Notification bundle by @TomasVotruba in #12976
- [typed-properties] Add ctor based typed properties to Form bundles by @TomasVotruba in #12978
- [typed-properties] Add ctor based typed properties to Stats bundle by @TomasVotruba in #12977
- [type-declarations] Add known return void types in Page bundle by @TomasVotruba in #12981
- [type-declarations] Add known return void types in Notification bundle by @TomasVotruba in #12975
- [type-declarations] Add known return void types in Report bundles by @TomasVotruba in #12973
- [typed-properties] Add ctor based typed properties to DynamicContent bundle by @TomasVotruba in #12980
- [type-declarations] Add known return void types in Sms bundles by @TomasVotruba in #12979
- [types] Add known void types in Forms bundle by @TomasVotruba in #12983
- [types] Add known void types in Asset bundle by @TomasVotruba in #12991
- [types] Add known void types in Chanel bundle by @TomasVotruba in #12987
- [types] Add known void types in Dashboard bundle by @TomasVotruba in #12990
- [types] Add known void types in Email bundle by @TomasVotruba in #12984
- [types] Add known void types in Lead bundle by @TomasVotruba in #12985
- [types] Add known void types in Core bundle by @TomasVotruba in #12986
- [type-declaration] Add known void return type declarations to the rest of code by @TomasVotruba in #12992
- [types] Add known void types in Api bundle by @TomasVotruba in #12989
- [types] Add known void types in Campaign bundle by @TomasVotruba in #12988
- [types] Add known return scalar types + strict types in Webhook, Report, Notification, Install and Core bundles by @TomasVotruba in #12994
- [types] Add known return scalar types + strict types in Email, Marketplace, Api and Channel bundles by @TomasVotruba in #12995
- [types] Add known return scalar types + strict types in Form, Assert and Config bundles by @TomasVotruba in #12996
- [types] Add known return scalar types + strict types in Sms, Page, Integrations, Dashboard and Campaign bundles by @TomasVotruba in #12997
- [types] Add known return scalar types + strict types in Stats, Point, Asset bundles by @TomasVotruba in #12999
- [types] Add known return scalar types + strict types in Stage, Plugin, Lead, Category and DynamicContent bundles by @TomasVotruba in #12998
- [dead-code] Apply full dead-set + remove few dead code parts by @TomasVotruba in #13000
- [PHP 8.0] Add promoted properties in Webhook, User, Stats bundles - step 2 by @TomasVotruba in #13004
- [PHP 8.0] Make use of property promotion - step 1 by @TomasVotruba in #13001
- [PHP 8.0] Add promoted properties in Stage, Sms, Report and Point bundles - step 3 by @TomasVotruba in #13005
- [PHP 8.0] Add promoted properties in Page, Notification, Lead and Plugin bundles - step 4 by @TomasVotruba in #13006
- [type-declarations] Add known bool return type declarations by @TomasVotruba in #13010
- [PHP 8.0] Add promoted properties in Marketplace, Integrations, Email, Form and leftovers - step 5 by @TomasVotruba in #13009
- [PHP 8.0] Make use of str start, ends, contains functions by @TomasVotruba in #13011
- [PHP 8.0] Make use of match() by @TomasVotruba in #13012
- [type-coverage] Add new, ternary, param based returns by @TomasVotruba in #13014
- [PHP 7.0] Make use of array destruct by @TomasVotruba in #13022
- [PHP 5.6] Make use of up to PHP 5.6 features by @TomasVotruba in #13017
- [PHP 7.0] Make use of coalsece by @TomasVotruba in #13023
- [PHP 8.0] Remove unused catch variable by @TomasVotruba in #13015
- [PHP 8.0] Add property promotion to plugins by @TomasVotruba in #13027
- [type-declarations] Re-apply rector type rules to Form, Email, Core and Campaign bundles + bump Rector/PHPStan version by @TomasVotruba in #13025
- [type-declarations] Re-run rector rules on plugins, Report, Sms, User, Lead, Dynamic, Config bundles by @TomasVotruba in #13028
- [PHP 7.3] Make use of array key last/first by @TomasVotruba in #13030
- [PHP 7.4] Add arrow functions and coalessce assign by @TomasVotruba in #13031
- [PHP 7.0] Make use of up to PHP 7.0 features by @TomasVotruba in #13033
- [type-declaration] Re-run current sets for whole project on PHP 8 by @TomasVotruba in #13032
- [PHP 8.0] Make use of PHP 8.0 features by @TomasVotruba in #13035
- [tests] Add known void return type declarations by @TomasVotruba in #13040
- [tests] Add known setup based property types by @TomasVotruba in #13041
- getSubscribedEvents() always returns an array. Adding the return type… by @escopecz in #13039
- [pre-phpunit-10] Make data providers static by @TomasVotruba in #13049
- [phpstan] Rebuild phpstan baseline by @TomasVotruba in #13053
- [tests] Add features up to PHP 8 by @TomasVotruba in #13042
- [type-declarations] Add scalar and strict type-based returns by @TomasVotruba in #13056
- [phpstan] Remove null param/return tag that was hidding missing param/return tags by @TomasVotruba in #13057
- [cs] cleanup unused iheritdoc docblocks by @TomasVotruba in #13051
- [cs] newlines for promoted properties to make them easier to read by @TomasVotruba in #13062
- [phpstan] Few fixes from AbstractStandardFormController by @TomasVotruba in #13059
- [type-declarations] Add property type from assigns by @TomasVotruba in #13063