Objective

To allow Mautic to be managed by Composer

Due date

 

Key outcomes

  • Users are able to install Mautic Core using Composer

  • Users are able to update Mautic Core using Composer

  • Users are able to apply patches to Mautic Core using Composer

  • Users are able to install and update third party plugins using Composer

Status

Problem Statement

Forum thread here: https://forum.mautic.org/t/as-a-developer-i-want-to-be-able-to-apply-patches-and-upgrade-mautic-core-within-the-existing-composer-json/13750

Right now it is not possible to run composer update and update Mautic. For example, in Drupal the command is the following:

composer update drupal/core --with-dependencies

Within the current Mautic composer.json it is not possible to upgrade Mautic.

As a result, it is also not possible to apply patches like this in the composer.json.

    "extra": {
            "patches": {
                "mautic/core": {
                    "#8352 Allow custom fields in search for companies": "https://github.com/mautic/mautic/pull/8352.patch"
                }
            }
        }

Not having this makes it very difficult to maintain patches in production.

Increasingly, hosting setups don’t allow modification of PHP files from within the application and instead use a GitOps approach and only allow changes to be made via Git. Therefore, Composer support is becoming a requirement in order for people to be able to deploy and maintain Mautic in these environments.

This project aims to establish mautic/core as a new composer package using the type mautic-core, similar as to how Drupal is structured, and to enable the management of Mautic and third party plugins via Composer.

Scope

Must have:

Nice to have:

Not in scope:

Initiative Coordinator/s

Contributors

Stakeholder/s

Position vacant

Nick Veenhof (Deactivated) Jan Linhart Dennis Ameling

Product Team (Ruth Cheesley Dennis Ameling Norman Pracht (Unlicensed))

Get involved

Timeline

Use the roadmap planner (/roadmap) to help your team stay on track. To edit workstreams or dates, select the placeholder below and tap the pencil icon.

Type /trello to add a card or board to this page or /jira to include a Jira issue, chart, or project.

Milestones and deadlines

Plot out milestones and deadlines using the table below. Put each milestone on its own row, @mention milestone owners, and type /date to quickly add deadlines.

Milestone

Owner

Deadline

Status

e.g., Finalize designs for v1

Reference materials

Add links to relevant research and any other key documents