Problem/Motivation
Coming from #1730160: Allow themes to be included in App, where there is interest in expanding the apps API to facilitate creating apps that are limited to a specific distro.
On the face of it, apps limited to a specific distro would be at odds with the primary goal as stated in the OAS:
the high level goal of the project is to achieve interoperability of apps between sites so that the Drupal platform does not become fragmented as specific distributions become widely adopted. That is, an app which conforms to the open app standard will be capable of being installed onto any site which conforms to the same standard.
However, as febbraro says in #1730160, in practice some app (or at least app-like) development will indeed be tied to a particular distro and not suitable to installation onto sites not based on the distro.
"Distro features" are specifically discussed within the Kit Feature Specification:
### Distro features
Some features cannot comply with this specification and should not aim to. Features that package configuration above and beyond any specific user stories or play a setup and site configuration role similar to install profiles are called distro features. Kit compliant features can expect distro features to
claim variables like `site_frontpage` and permissions like `access content`.
Before expanding the Apps module APIs in specific ways that facilitate distro-specific apps, we should address the general case.
Proposed resolution
Proposed addition to OAS:
In certain cases, a distribution developer will wish to produce an app that is highly customized to the specific distribution and unlikely to be usable outside the distribution.
To ensure that such distro-specific apps are not confused with interoperable apps, any app specific to a distro should include the 'distribution' parameter in its manifest. Example:
"distribution": "OpenPublish"
Any OAS compatible client, such as the Apps module, should include special handling of any app that is marked as distro-specific. Special handling should include a test to determine if the site is based on the distribution named in the standard (based on the "install_profile" variable). Handling for apps that specify distributions other than the one the site is based on could be:
* Show the apps and allow them to be enabled but provide a warning to users that the app is incompatible with their site.
* Show the apps but don't allow them to be enabled.
* Hide all such apps altogether.
Comments
Comment #0.0
nedjoCut out some verbiage.
Comment #0.1
nedjoCut out more verbiage.
Comment #1
nedjoRemembered that the Kit Feature Spec discusses "Distro features" so added that to the summary.
Comment #1.0
nedjoCite relevant section from Kit Feature Specification.