Distribution best practices

Post on 17-Jun-2015

183 views 0 download

Tags:

description

http://www.drupalalpeadria.org/session/distribution-best-practices

Transcript of Distribution best practices

Distribution best practices

Bojan Zivanovic (bojanz)13.04.2013

Bojan Živanović (bojanz)

- Developer from Serbia

Projects: Drupal Commerce, Views, Views Bulk Operations, Inline Entity Form, etc.

Lead developer of Commerce Kickstart v2.

Paris, France

Ann Arbor, Michigan

Commerce Guys is the

Based in

London, UK

COMPANY

Meanwhile, in 2006...

Commerce Kickstart v2

• Mobile-ready responsive design

• Enhanced product marketing (image zooms, fancy

attributes, slideshows)

• Faceted product search

• Streamlined administration

• Built-in payment gateways, analytics

Panopoly

• Mobile-ready responsive design

• Panels powered

• In-Place Page Building

• Faceted search

• Streamlined administration

• Apps powered

Drupal Commons• Mobile-ready responsive design

• Community building tools

• Blogs, discussions, documents, wikis, events

• Activity streams

• Faceted search

• Streamlined administration

Expectations from a distribution

Responsive frontend theme Improved admin experience Facetted search

Batteries included Demo content

Basic concepts and problems

Distribution building blocks

1) Install profile

2) Drush make

3) Features

4) Demo content

Installation profile

- The heart of a Drupal installation

- Enables the basic (or not so basic)

set of modules, sets the default theme

- Can add any number of pages and tasks

to the installer, and alter its appeariance

- Can implement hooks

Drush Make

Features – the promise

Features – the promise

Features – reality

Can't depend one on another. Not uninstallable. Not interoperable (across distributions) Not optimized for “default configuration”. What to do about default content?

Default configuration Installed initially, restorable. Modifiable by the user (everything can be deleted, export not marked as “overridden”)

Possible solution: http://drupal.org/project/defaultconfig

Default content Easy to create / import, easy to remove.

http://drupal.org/project/defaultcontent

deprecated in favor of “”UID Features”

DIY? Migrate

Community problems

Dealing with (nearly) abandoned projects. Dealing with patches Dealing with old releases

Handling updates

Distributions need to be updated as a whole Hide update status for included projects The need for more frequent releases Security updates need to be fast ( < 48h).

Support and maintenance

- Get off your island. - Separate bug reports from the support requests - Send the support requests to StackExchange - Send any relevant bug reports to contribs - How can we keep this sustainable?

Sustainability- Distributions are expensive

- Currently mostly a lead generation tool.

- Low usage: Drupal core installs: 869 852 Commerce Kickstart installs: 7 041 Next 10 distributions combined: 4300 Distributions make up 1.2% of all Drupal installs

- App stores?

Sustainability

Sustainability

Diving in

Customizing the install process

Theme it! Hide redundant pages Custom pages for additional configuration Additional tasks for creating demo content, enabling additional modules. Post-installation help

Customizing the install process

Customizing the install process

Customizing the install process

Customizing the install process

Customizing the install process

Fixing the admin UX Don't be afraid to create a custom theme Or use ours: Shiny

Views & VBO for all listings (admin_views) Date Chosen / Select2 Module Filter Backport, Special Menu Admin

Facetted search

Responsive design Being responsive is no longer optional. Start with a base theme:

- Omega (Commerce Kickstart, Recruiter)- Adaptivetheme (Commons)

- Zen

- Admin pages are not responsive http://drupal.org/project/navbar http://drupal.org/project/responsive_tables

Panels Are you using it today?

Different layouts for different pages Responsive layouts In-place page building Layouts for forms too (node add / edit) Used by most distributions (Panopoly, Commons, Recruiter, Nodestream..)

Other Emails and activity streams- Message & Message Notify

Breadcrumbs:- Crumbs- Path Breadcrumbs

Social links and logins: - Service Links, Sharethis

- OAuth Connector

Now go and build something

Questions & Answers

Thank you!

bojan@commerceguys.com