Add theme dependencies in specification

Now a list of child theme components can be specified in about.json file for top-level themes. For example

{
  "name": "Material Design Theme",
  "about_url": "https://meta.discourse.org/t/material-design-stock-theme/47142",
  "license_url": "https://github.com/discourse/material-design-stock-theme/blob/master/LICENSE.txt",
  "components": ["https://github.com/discourse/discourse-brand-header", "https://github.com/Chaboi45/Take-a-break-component"]
  .
  .
  .
}

Currently, it has below limitations

  1. All the child theme components will be installed only on the initial install.
  2. If components are removed in about.json later then it won’t remove the installed child theme component.
  3. If an installed theme component is removed manually the system won’t install it again.
  4. You can’t specify child theme components for another theme component.
5 Likes