Silverstripe-framework: Simple theme assets not exposed / composer.json is different when re-installing themes

Created on 8 Jun 2018  路  6Comments  路  Source: silverstripe/silverstripe-framework

Affected Version

phpunit/phpunit            5.7.27             The PHP Unit Testing framework.
silverstripe-themes/simple dev-master e4b3aa2 The SilverStripe simple theme (default SilverStripe 3 theme)
silverstripe/recipe-cms    1.1.1              SilverStripe recipe for fully featured page and asset content editing
silverstripe/recipe-plugin 1.2.0              Helper plugin to install SilverStripe recipes

Description

When re-installing the simple theme with composer, you're unable to expose the assets (css, js, webfonts) through composer vendor-expose.

When using composer create-project the them installs and the assets are exposed. But removing the theme using composer remove and then re-installing it using composer require mean it has a different composer.json file and is missing the extra metadata.

Steps to Reproduce

  • Create project
composer create-project silverstripe/installer myproject
  • Run through silverstripe installer
  • View home page correctly displaying the simple theme
composer remove silverstripe-themes/simple
composer require silverstripe-themes/simple
composer vendor-expose

Note: nothing from the simple theme is exposed.

  • Load the home page.
affectv4 changpatch efformedium impacmedium typbug

Most helpful comment

@chillu When you run composer create-project it seems to pull in an "unstable" (the latest) version of the simple theme.

When your remove it and run composer require silverstripe-themes/simple it'll pull in the latest stable version which only works with SilverStripe 3, not 4.

All 6 comments

Initial composer.json when installing with create-project:

{
    "name": "silverstripe-themes/simple",
    "description": "The SilverStripe simple theme (default SilverStripe 3 theme)",
    "type": "silverstripe-theme",
    "keywords": ["silverstripe", "theme"],
    "license": "BSD-3-Clause",
    "authors": [
        {
            "name": "Sara Tu拧ar (Innovaif)",
            "homepage": "http://www.saratusar.com"
        }
    ],
    "require": {
        "composer/installers": "*",
        "silverstripe/framework": ">=3.5"
    },
    "extra": {
        "branch-alias": {
            "dev-master": "3.2.x-dev"
        },
        "expose": [
            "css",
            "images",
            "javascript",
            "webfonts"
        ]
    }
}

composer.json when installing with composer require:

{
    "name": "silverstripe-themes/simple",
    "description": "The SilverStripe simple theme (default SilverStripe 3 theme)",
    "type": "silverstripe-theme",
    "keywords": ["silverstripe", "theme"],
    "license": "BSD-3-Clause",
    "authors": [
        {
            "name": "Sara Tu拧ar (Innovaif)",
            "homepage": "http://www.saratusar.com"
        }
    ],
    "require": {
        "composer/installers": "*",
        "silverstripe/framework": ">=3.0"
    }
}

ah... This is just because we're pulling in dev-master from the recipe. Can the theme have a stable release?

@micmania1 How is this related to pulling in dev-master?

@chillu When you run composer create-project it seems to pull in an "unstable" (the latest) version of the simple theme.

When your remove it and run composer require silverstripe-themes/simple it'll pull in the latest stable version which only works with SilverStripe 3, not 4.

@andrewandante raised an issue this morning for this: https://github.com/silverstripe-themes/silverstripe-simple/issues/56

I've tagged 3.2.0 of simple theme; hopefully this is fixed by that

Was this page helpful?
0 / 5 - 0 ratings