Welcome to Mautic 7.0-alpha: Columba Edition
Mautic 7 is here! Today we are excited to announce the release of Mautic 7.0 Alpha
This release includes support for Symfony 7.3, PHP 8.4, updates many of our very outdated dependencies ‘under the hood’ to ensure Mautic remains secure and fit for the future, and brings some exciting new features.
We’ve also removed and updated a vast amount of old, legacy code which makes our core more streamlined and modern.
⚠️ This is an alpha pre-release and should only be used for testing purposes. There will be no migration path from 6.x or upgrade path to future releases in the 7.x series. DO NOT use this in a production environment.
Developer notes
If you're a developer, please note that Mautic 7.0-alpha includes several changes that may affect your custom code.
Please review the UPGRADE-7.0.md file for more information on these changes.
We hope you enjoy using Mautic 7.0-alpha and look forward to your feedback! Please use #mautic-7 on Slack if you wish to discuss the release.
Please raise any bugs or issues that you find as GitHub issues and share in Slack so we can make sure they're addressed in subsequent releases.
Check the future milestones and key PRs which we're planning to merge here:
Beta milestone: https://github.com/mautic/mautic/milestone/126
RC milestone: https://github.com/mautic/mautic/milestone/127
GA milestone: https://github.com/mautic/mautic/milestone/128
What’s changed
⚠️ Breaking Changes
- Remove support for updating Mautic via user interface by @matbcvo in #14689
- Deprecating EoL DB versions, support for more DB versions by @mollux in #14836
- Temporary removing the API limiter as the library is not maintained anymore by @escopecz in #14876
- Removing support for AMQP queues by @escopecz in #14883
- Upgrading to Symfony 7 by @escopecz in #14887
- Remove Identify visitor by tracking url configuration setting by @kuzmany in #14974
- Remove deprecated iterator_mode by @biozshock in #14896
- Removing unused deprecations by @escopecz in #15284
🔧 Refactoring
- Show category when viewing resource details by @andersonjeccel in #14841
- Enrich contacts with primary company for email token replacement by @shinde-rahul in #14944
- Add modal template by @andersonjeccel in #15090
- Centralize logo resources into one folder within CoreBundle by @andersonjeccel in #15104
- Predis 3 by @matbcvo in #15287
✨ Features and enhancements
🧑🏻💻 Automated tests
- Added warmup test by @aarohiprasad in #15060
- Test improvements by @aarohiprasad in #15084
- Add some test case for field length validation by @dadarya0 in #15130
🚀 Campaigns
- Added change log tab for campaign detail page by @shinde-rahul in #14676
- Campaign Trigger command and Contact export command made interruptible via the signals by @dadarya0 in #14745
- New date token like {datetime=now} in campaign action by @JonasLudwig1998 in #14460
- Campaign import/export process by @levente999 in #14504 - this project was funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
☑︎ Custom fields
- Allow users to update the “Maximum character length” for custom fields in the UI by @fedys in #14762
📌 Dashboards
- Add support for rendering email reports as table view in dashboard widgets by @shinde-rahul in #14827
⬆️ Dependencies
- Upgrading several libraries to support Symfony 7 by @escopecz in #14810
- Updating Doctrine migrations package by @escopecz in #14821
- Updating library oneup/uploader-bundle by @escopecz in #14835
- Upgrading 3 more libraries to unblock Symfony 7 upgrade by @escopecz in #14847
- Updating knplabs/knp-menu-bundle and liip/functional-test-bundle to support Symfony 7 by @escopecz in #14849
- Symfony 7.3 by @matbcvo in #15268
- Remove unused bandwidth-throttle/token-bucket package and upgrade symfony/monolog-bridge to 7.3 by @matbcvo in #15271
- Update klapaudius/oauth-server-bundle and klapaudius/oauth2-php packages by @matbcvo in #15279
- Fix PHP 8.4 deprecations by @matbcvo in #15280
- Upgrade composer/installers package by @matbcvo in #15286
- Update PHPUnit to version 10 by @biozshock in #14894
- Bump tj-actions/changed-files from 42 to 46 in /.github/workflows by @dependabot[bot] in #14801
- Bump @babel/runtime from 7.24.4 to 7.26.10 in /plugins/GrapesJsBuilderBundle by @dependabot[bot] in #14722
- Bump @octokit/request and @octokit/core in /.github/scripts by @dependabot[bot] in #14614
- Bump cross-spawn from 7.0.3 to 7.0.6 in /plugins/GrapesJsBuilderBundle by @dependabot[bot] in #14274
- Removing unused PHP dependencies by @escopecz in #14850
- Bump base-x from 3.0.9 to 3.0.11 in /plugins/GrapesJsBuilderBundle by @dependabot[bot] in #14961
- Bump brace-expansion from 1.1.11 to 1.1.12 in /app/assets/scaffold/files by @dependabot[bot] in #15234
🧑🏻💻 Developer experience
🤖 DevOps
- Drop support for PHP 8.1 by @matbcvo in #14653
- Support for PHP 8.4 by @escopecz in #14652
- New command to delete contact fields in background by @escopecz in #14679
- Command for deleting anonymous contacts from campaigns and segments by @dadarya0 in #15198
- Redis cache improvements by @fedys in #14724
🔄 Dynamic content
- Validation to prevent using DWC within DWC by @fedys in #14744
- New Type field in Dynamic Web Content. by @nileshlohar in #14759
📋 Forms
- Add field labels to tokens in "Send form results" message by @shinde-rahul in #14998
- Add preview input to form details like email details by @kuzmany in #15098
- Forms: Set "Disable search indexing" as enabled by default by @andersonjeccel in #15255
🍇 GrapesJS Builder
- Clipboard for Email Elements by @irfanhanfi in #15124
- Add outline to builder button by @PatrickJenkner in #15277
⇅Import/export
- Logging warnings while importing by @aarohiprasad in #15008
- Add configuration option to limit maximum Contacts export by @patrykgruszka in #14691
- Change icon for import/export dropdown by @PatrickJenkner in #15243
🌐 Landing pages
- Landing Page Draft Feature by @aarohiprasad in #13937
- Landing Page preview not available unless user is logged in by @dadarya0 in #14766
🚄 Performance and optimization
- Load campaign graphs and actions, decisions, and conditions tabs asynchronously by @dadarya0 in #14796
- Adding a new index for faster load of the upcoming emails dashboard widget by @escopecz in #15015
- Optimize dashboard upcoming events query performance by @kuzmany in #15024
- Segment build time optimization (Segment membership filter) by @patrykgruszka in #15031
🌱 Plugin support
- Allow plugins to close modal window when error happens by @nileshlohar in #14813
- Updating channel_id field to be varchar. by @dadarya0 in #15132
- Add constraint to check if plugin can be published. by @rohitpavaskar in #13696
🗄️ Projects
- Introduce Projects - a new way of grouping entities by @escopecz in #15002
- Projects - new way of grouping entities part 2 by @fedys in #15072
- Add content block empty states for Projects and improve Category labels by @andersonjeccel in #15292
- Add detailed project management and entity handling by @kuzmany in #15327
📊 Reports
- Extend focusitem reports 7x by @AlanWierzchonCA in #14923
- Add "Time Spent" column to Page Hit report by @patrykgruszka in #15141
🌍 Segments
- Updated icons for Segment Filter List by @shinde-rahul in #15064
🔎 Themes
- [UX] Add successful submit animation in Eclipse theme by @andersonjeccel in #14654
🎨 User Experience / User Interface
- Activity feed block for Segment and Focus by @shinde-rahul in #14411
- [UI] Aligning design decisions by @andersonjeccel in #14668
- [UXUI-70] Improve logic display for segment rows by @andersonjeccel in #14741
- [UXUI-131] Labels on form details by @andersonjeccel in #14757
- [UXUI-88] Select several rows using Shift and clicking with the mouse by @andersonjeccel in #14753
- [UXUI-129] Labels on asset details by @andersonjeccel in #14756
- [UX] Rounded corners for themes by @andersonjeccel in #14657
- [UXUI-114] Quick links to see list of contacts related to that resource by @andersonjeccel in #14770
- [UXUI-138] Contact history and auditlog shows toggle for details even when no details are available by @andersonjeccel in #14815
- [UXUI-143] Tags in Report details by @andersonjeccel in #14832
- [UXUI-145] Tags in Email details by @andersonjeccel in #14834
- [UXUI-140] Tags in landing page details by @andersonjeccel in #14829
- [UXUI-135] Set field width when creating forms by @andersonjeccel in #14800
- [UXUI-127] Add labels showing details about segments when viewing them by @andersonjeccel in #14755
- [UXUI-142] Tags when viewing focus details by @andersonjeccel in #14831
- [UXUI-139] Add pictograms package by @andersonjeccel in #14868
- Improve index icon visibility by @kuzmany in #14999
- [UXUI-170] Defining code mode as last option in themes by @andersonjeccel in #14983
- [UXUI-167] Richer "No results" message for list views by @andersonjeccel in #14953
- [UXUI-136] Descriptions get entirely printed in table rows by @andersonjeccel in #14814
- [UXUI-148] Add contained list components by @andersonjeccel in #14870
- [UXUI-147] Implement stat module by @andersonjeccel in #14867
- [UXUI-189] Adding full-width variation for description component by @andersonjeccel in #15075
- [UXUI-141] Tags in campaign details by @andersonjeccel in #14830
- feature: better wording for date segments filter by @kuzmany in #15061
- [UXUI-132] Implement tile components by @andersonjeccel in #14869
- [UXUI-188] Launch preview and other actions from list views by @andersonjeccel in #15095
- [UXUI-213] Copy page URL and asset download link from list views by @andersonjeccel in #15119
- Update language strings for form attributes to make it more user-friendly by @RCheesley in #15211
- Shorten tooltip for "Auto fill data" by @PatrickJenkner in #15231
- [UXUI-185] Inline projects information by @andersonjeccel in #15087
- [UXUI-134] Form theme: Multi-step (Typeform-inspired experience) by @andersonjeccel in #14795
- [UXUI] Button styling and font size improvements by @andersonjeccel in #15247
- [UXUI-180] Add card, card-in-card and card group components by @andersonjeccel in #15089
- Improved "No chart data" display with gray area and responsive behavior by @andersonjeccel in #15291
- [UXUI-160] DNC search command by @andersonjeccel in #14952
- [UXUI-224] Recreate event type panel in campaign builder by @andersonjeccel in #15272
- [UXUI-215] Improve asset preview interaction by @andersonjeccel in #15110
- [UI] New import contacts screen by @andersonjeccel in #13847
- [UXUI-152] Show total contacts vs active contacts in segment details by @andersonjeccel in #15290
🐛 Bugs
👁️🗨️ Accessibility
These accessibility fixes were funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
- Set the HTML lang attribute globally by @levente999 in #15100
- Adding tags not functioning with screen reader by @levente999 in #15107
💻 API
- Make isScheduled field readable in Report API entity by @dadarya0 in #15131
- Fix/empty date from and date to by @shinde-rahul in #15140
- Preserve parent translation when updating translated email via API by @shinde-rahul in #15070
- Fixing "There is no active transaction" error by @escopecz in #15319
📁Assets
- Fix#14245 Mautic doesn't show error when choosing remote provider by @PedroLoureiro1 in #14865
- Fix: Load asset modal from list context menu by @shinde-rahul in #15054
🧑🏻💻 Automated tests
- Fix flaky test by @aarohiprasad in #15058
🚀 Campaigns
- Campaigns with jump to event action show incorrect data for completed actions by @nileshlohar in #14837
- Fix 500 error when multiple campaigns have Page Hit events by @nileshlohar in #14939
- Fix Campaign Email stats loading in M7 by @patrykgruszka in #15221
- Fix bug with relative dates in campaign actions converting array date to DateTime object by @rahuld-dev in #15197
- Campaigns: campaigns decisions are not getting evaluated by @rahuld-dev in #15252
🏢 Companies
- Preserve selected company when contact has more than 100 companies in the list by @patrykgruszka in #15232
👥 Contacts
- Update contact action - max characters by @JonasLudwig1998 in #14889
☑︎ Custom fields
🧑🏻💻 Developer experience
- Summarize log data only if campaign_use_summary flag is true by @dadarya0 in #14776
- Remove unused template and AJAX action, fix migration without preUp check by @escopecz in #15003
🤖 DevOps
🔄 Dynamic content
- Fixing boolean field filters in dynamic email content by @dongilbert in #14791
- Fixed DWC type validation for single entity. by @nileshlohar in #14901
📝 Editor
- Fix CKEditor destruction when trigger event modals are closed by @andersonjeccel in #15195
- Fixing selecting a contact for email preview by @nileshlohar in #14825
📋 Forms
Cloning form with conditional fields by @dadarya0 in #14752
Prevent page reload prompt when inserting form field tokens in Send form results action by @Narita-1095305 in #14930
Delete column from form submission on form field deletion by @dadarya0 in #15129
⇅Import/export
- Fix Do Not Contact flag handling during contact import by @dadarya0 in #15133
- Fixing Contacts CSV Import issues with Select field type by @dadarya0 in #15136
- Save import in unpublished state if do not have permission by @dadarya0 in #15137
🔔 Notifications
🚄 Performance and optimization
🌱 Plugin support
- Fixed pagination for integrations by @aarohiprasad in #15056
- Fix date issue if empty/not empty filter is used in segment for date type CustomObject field by @rahuld-dev in #15253
🎯 Points
- fix event delete/apply/clone in point triggers by @andersonjeccel in #15186
📊 Reports
🌍 Segments
- Segment clone improvements. by @nileshlohar in #14828
- Prevent form submit by enter on segment filter by @nileshlohar in #14861
- Enforce an orderBy on the campaign contacts by segment query by @nileshlohar in #14860
- Fix a small typo that slipped in by @RCheesley in #14979
- Fixed Incorrect Segment Contact Count issue on Segment List View by @nileshlohar in #14911
- Restore toggling segment publish status for users with appropriate permissions: by @AlanWierzchonCA in #14893
- fix: buggy segment filters by @andersonjeccel in #14978
🔎 Themes
- fix: Freire theme doesn't apply when saving by @andersonjeccel in #15093
👣 Tracking
- Fix contact device identification by @nileshlohar in #14842
- Fix redirects with trailing whitespace by @nileshlohar in #14958
- Fix 500 error when URL title is too long by @nileshlohar in #14902
- link detection failures & tests by @rahuld-dev in #15190
🎨 User Experience / User Interface
- [UXUI-133] Statistics are visually broken in contact details by @andersonjeccel in #14763
- Parent menu items are shown even if they have no child items by @kuzmany in #14863
- [UXUI-73] Automatically bring to page 1 when reordering table by @andersonjeccel in #14732
- Override enter key behaviour for select inputs & other fields by @nileshlohar in #14937
- [UXUI-146] Admin menu toggle is still shown when users have no permissions by @andersonjeccel in #14880
- Fix select dropdowns being hidden in modals by @patrykgruszka in #15212
- [bug] Allow closing 'locate' mode in Jump to Event action by clicking overlay by @andersonjeccel in #15162
- [UXUI-221] Add data-toggle="ajax" to entity links in list views (Notifications, SMS, Custom Fields) by @andersonjeccel in #15158
- Move email statistics above date range in detail page by @kuzmany in #15256
- Fix point trigger hover styling for dark themes by @andersonjeccel in #15254
- fix: add missing padding to campaign preview for conditions and decisions by @andersonjeccel in #15273
👤Users and Roles
- Hide "User management" menu item for users without permissions by @ElPollero in #14851
- Show "Contact" as not required when sending email example by @PatrickJenkner in #15192
- Fix live update translation to clarify it applies to any contact list by @andersonjeccel in #15297
- Center installer window by @PatrickJenkner in #15302
New Contributors
- @ElPollero made their first contribution in #14851
- @PedroLoureiro1 made their first contribution in #14865
- @Narita-1095305 made their first contribution in #14930
Full Changelog: 6.0.3...7.0.0-alpha
SHA1(7.0.0-alpha.zip)= 8f0c8929a3d92b1f55c982633276852fa9efa493
SHA1(7.0.0-alpha-update.zip)= 725d12d488ed3db96a69848615f8ad7c0f58a6fd