@pixelbrackets opened this Pull Request on May 25th 2022 Contributor

Revise the Composer type of the project and use »project«.

Description:

Matomo currently uses »application« as type in the composer file. This is a proprietary type.

It was introduced when Composer was added initially (10 years ago) and never changed afterwards: https://github.com/matomo-org/matomo/blame/8198c387746c426ccb3bcbb2e4a2340a6aade718/composer.json#L3
I assume that at this point in time it was used to delimit the type "library".

By now the composer schema recommends to use »project« for a project like Matomo. This is the industry standard for most similar projects.

I suggest to revise the type and use the better suiting type »project« instead.

Benefits:

  • Expected standard type for this kind of project
  • Supported natively by Composer
  • Supported by Packagist
    • Switches the recommend installation command from composer require to composer create-project → See https://packagist.org/packages/matomo/matomo and compare to https://packagist.org/packages/symfony/skeleton
    • This is because Packagist and Composer treat »application« like the default type »library«, which is not the case here - matomo/matomo is no library, it is a project
    • The currently recommend installation command fails: running composer require matomo/matomo leads to error Problem matomo/matomo[4.10.0, ..., 4.10.1] require matomo/referrer-spam-list dev-master -> found matomo/referrer-spam-list[dev-master] but it does not match your minimum-stability. → However, switching to the correct installation command - since this is a project and not a library - leads to a successful installation
    • This may be a cause for the low installation count on Packagist

Edge cases:

Switching the project type does not prohibit to treat the project like a library (means this is not a breaking change).

Documentation:

Installing Matomo using composer should be part of the Installation Guide. But is not in scope of this PR.

Review

This Pull Request was closed on May 25th 2022
Powered by GitHub Issue Mirror