Problem/Motivation

The apps model aims to address usability and interoperability challenges in Drupal.

To date it has had mixed success. On the plus side, various distros are adopting Apps as their key delivery mechanism, providing a convergence of install-time and post-install UI in distros.

But there are significant issues remaining. Some high profile distros have not priorized Apps, see for example #1512846: Commons position on Open App Standard. In practice, apps are compatible for the most part within a particular distribution's apps set--which pretty much defeats the whole point of interoperability. And in terms of adoption, even the more used apps tend to number in the hundreds of installs--minuscule in the realm of module usage.

There are many remaining barriers to making apps mutually compatible. Some are summarized in this blog post: Drupal Apps: the answer to plug and play Drupal site building?. However, some of the key issues centre around the Apps model's reliance on external, proprietary data servers.

webchick had this to say about Apps in #1500360-4: Facilitate use of Spark components in other distros and non-distro sites:

I really hate the apps model because it seems to fork the concept of modules, yet again, when we already have modules + features that do essentially the same thing. I really wish we'd just make improvements to Update Manager in core, so these nice usability enhancements could help everyone.

Indeed, unless or until we integrate Apps more fully integrated into our community infrastructure, they're likely to remain relatively obscure and tied to particular proprietary distros--severely limiting the interoperability goals that infuse the apps initiative.

Proposed resolution

Proposed goal statement: The aims of the apps initiative - whether under the apps name or not - can be fully realized using drupal.org infrastructure.

Remaining tasks

What would achieving this take?

We can create and link to issues as we go. Here are a few initial rough ideas. Please edit up and improve.

  • Fully package modules and themes, as well as install profiles, on drupal.org. This may be needed so that a module can be downloaded with all its dependencies, including ones not on drupal.org.
  • Enhance the core update manager to handle installs of archives containing packaged code (modules + themes + libraries).
  • Provide manifest-like data, including dependency information, on drupal.org. Leverage the http://drupal.org/project/project_dependency module's data.
  • Provide an improved module-browsing interface, distinct from the current "find a developer tool like Views" one, so that site builders can discover apps.

Comments

areynolds’s picture

Provide an improved module-browsing interface...so that site builders can discover apps.

Agreed. One of my gripes with Drupal apps is that there is no layman-friendly interface for installing them. Providing a home for apps, distributions, and other more easily-digestible Drupal elements on Drupal.org would be a big leap forward for usability. It might even help promote a distro-agnostic app space.

In practice, apps are compatible for the most part within a particular distribution's apps set--which pretty much defeats the whole point of interoperability.

I'm a little dubious that interoperability is the most desirable aspect of apps. Apps should provide more specialized functionality; this type of functionality will typically rely upon distributions and other apps developing existing Drupal functionality into something comprehensible to the site builder or end-user.

Personally, I like the idea of app-powered distributions being semi-autonomous ecosystems built using Drupal components. Distribution and app authors often patch and extend quickly while core and contrib catch up. From what I've seen, this quicker-moving development has helped encourage the improvement of contrib modules; for example, if you don't have a stable Panelizer module, you don't have a stable Panopoly. As long as distro managers utilize existing contrib and core functionality as the basis for their distributions and are open about their efforts, the community benefits.

webchick’s picture

Just a note that there is an improved module browsing interface at http://drupal.org/project/project_browser, but it requires http://drupal.org/project/drupalorg_pbs to be deployed to use it. You can view a video of how it worked on the project page. #1243332: Deploy Project Browser Server and drupalorg_pbs on d.o is the issue to get it deployed on Drupal.org, which chx is now helping to shepherd through, but I'm sure could use help in code reviews, security reviews, testing, and the like. The goal is to get this deployed shortly after the D7 release of d.o, then port it to core for D8, but time is running out since feature freeze is Dec 1.

yktdan’s picture

"I really hate the apps model because it seems to fork the concept of modules, yet again, when we already have modules + features that do essentially the same thing. I really wish we'd just make improvements to Update Manager in core, so these nice usability enhancements could help everyone. (webchick)

This says it all. I really only want to deal with one module-like object. A module should do one thing well and be configurable to as large an extent as reasonable. If it stays within its domain it should have little conflict with other modules, but conflict free should be one of its high priority goals. So for example if needs roles to enforce some permissioning, then the name of the role must be configurable.

areynolds’s picture

Digging the Project Browser effort referenced by @webchick, nice to hear that folks are seeing this stuff through, will follow and try to provide what assistance I can.

juan_g’s picture

Apps -basically like features for end users, with one click install- are a reality that is here, whether we consider them a new category or just a type of features or modules. Since apps are Drupal derivatives and therefore GPL, there was a related issue, #1418352: Add an "Apps Package" term to the module categories vocab on d.o, as an initial step just for development and download -not app server functionality for now- to have apps available to the community also on Drupal.org, not only on external app servers and app stores.

nedjo’s picture

#1621474: Allow Apps to function when offline may help facilitate purely drupal.org based apps by enabling modules to specify their own manifest data, making apps servers no longer required.

nedjo’s picture