Problem/Motivation
At present it feels like we're constantly adding new modules to core so that core can compete with market competitors on features.
However, the only thing we have to show to compete against these products is the standard install profile, which on its own solves no-one's use-case.
We have
#2809635: Create experimental installation profile β
to try to at least present a cohesive product that demonstrates the power of Drupal.
However there are many ways to put Drupal together.
Proposed resolution
Let's think of it like Lego, something we've always identified with.
You have your base building blocks like entities, views, plugins.
And what core currently ships is like a bucket of bricks, you can build whatever you want - but there isn't much guidance. And if you've never played with the bricks before, you're not really sure how to put them together.
On the competitor side of the spectrum, they're shipping assembled sets. Like a Police Station Lego set, but where you open the box and its already assembled (no assembly required).
The experimental install profile, which takes its cue from the User Guide is analagous to the standard lego set, where you get the parts and you get some instructions and you get the fun of putting it together yourself. Next time you get a big bucket of bricks, you can draw on your experience following instructions to build something useful.
But we also have an analogy to the competitors fully assembled set. These are contrib install profiles. Unlike standard, these are profiles that are built to serve a specific purpose - for example
- open social - build your own social network
- lightning - a media focussed publishing platform
- aGov - focussed on the common needs of the Australian (and other) governments
- Commerce kickstart - a store in a box
We should promote and allow installation/download of vetted profiles from the installer.
Precedence
We already download language packs from the installer, so downloading additional profiles shouldn't be much more of a stretch
Benefits
Instead of feeling like we have to keep adding modules to core to compete with fully baked products, in-turn increasing our maintenance burden - we can let core focus on what it does well - providing a solid framework for building fully baked products. I.e. core focuses on generic building blocks instead of boat hulls.
We still retain the fanfare around new releases. Drupal 8.X now comes with the ability to install the fizbar profile. Drupal 8.Y includes updates to the portfolio profile to support an image gallery. Drupal 8.Z now comes with inline entity form to power even greater site building opportunities.
In this model the vetting is done by the product managers, via this queue. Code in core maintains a manifest of vetted profiles, and their versions. The installer uses this to populate the list of options. Profile maintainers wanting core to bump to a newer version of their profile must open a core issue and provide a patch. Reviewers review it for suitability. If a version isn't ready, core doesn't fetch it, it only promotes stable, vetted versions.
People can see the full power of Drupal if they're evaluating it - and we greater convey the notion that the possibilities are endless.