drustack/composer-generate-metadata

Composer plugin for generate Drupal packages metadata into info files

2.0.0 2023-09-30 08:19 UTC

README

Build Status Coverage Status Latest Stable Version Total Downloads License

Composer plugin for generate Drupal packages metadata into info files.

By default packages (e.g. modules, themes and profiles) downloaded from https://drupal.org/ will be injeted with metadata info its .info or .info.yml, so update.module will able to figure out if corresponding version installed are outdated or not. By the way, if you download packages with GIT directly, e.g. install -dev release by using Composer, such metadata info won't exists and so update.module will report with unknown version.

This way you can:

  • Generate version information for .info files in ini format
  • Generate version information for .info.yml files in YAML format
  • Compute the rebulid version string for a project, by does some magic in Git to find the latest release tag along the branch we're packaging from, count the number of commits since then, and use that to construct this fancy alternate version string which is useful for the version-specific dependency support in Drupal 7 and higher

In case of Drupal 7.x, following metadata will be injected into .info file:

; Information add by drustack/composer-generate-metadata on 2017-02-18
project = "features"
core = "7.x"
version = "7.x-2.10+3-dev"
datestamp = "1487399547"

In case of Drupal 8.x, following metadata will be injected into .info.yml file:

# Information add by drustack/composer-generate-metadata on 2017-02-18
project: "features"
version: "8.x-3.2+1-dev"
datestamp: "1487399552"

Installation

Simply install the plugin with composer:

$ composer require drustack/composer-generate-metadata:~2.0

Configuration

Drupal projects are not listed on Packagist. Instead, Drupal.org provides its own directory of Drupal projects for Composer to use. Therefore you will need to add Drupal.org as a Composer Repository to your Drupal site's composer.json file.

Drupal.org provides two separate composer repository endpoints: one for Drupal 7 and one for Drupal 8.

To add the repository from the command line you should execute the following command from your repository root:

$ composer config repositories.drupal composer https://packages.drupal.org/7

Composer will then automatically update your Drupal site's composer.json file with a repositories object of the format:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/7"
        }
    ]
}

Example

An example composer.json:

{
    "repositories": [
        {
            "type": "composer",
            "url": "https://packages.drupal.org/7"
        }
    ],
    "require": {
        "drupal/drupal": "~7.54",
        "drupal/features": "2.x-dev",
        "drustack/composer-generate-metadata": "~2.0"
    }
}

License

Author Information