Initiative Coordinator/s

Contributors

Stakeholder/s

Position vacant

Nick Veenhof (Deactivated) Jan Linhart Dennis Ameling

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

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:

Get involved

  • Join the Slack channel #i-composer-support (get an invite at https://mautic.org/slack)

  • Meetings are held asynchronously on Slack <insert cadence> on <insert day>

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