Distribution best practices

38
Distribution best practices Bojan Zivanovic (bojanz) 13.04.2013

description

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

Transcript of Distribution best practices

Page 1: Distribution best practices

Distribution best practices

Bojan Zivanovic (bojanz)13.04.2013

Page 2: Distribution best practices

Bojan Živanović (bojanz)

- Developer from Serbia

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

Lead developer of Commerce Kickstart v2.

Page 3: Distribution best practices

Paris, France

Ann Arbor, Michigan

Commerce Guys is the

Based in

London, UK

COMPANY

Page 4: Distribution best practices

Meanwhile, in 2006...

Page 5: Distribution best practices

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

Page 6: Distribution best practices

Panopoly

• Mobile-ready responsive design

• Panels powered

• In-Place Page Building

• Faceted search

• Streamlined administration

• Apps powered

Page 7: Distribution best practices

Drupal Commons• Mobile-ready responsive design

• Community building tools

• Blogs, discussions, documents, wikis, events

• Activity streams

• Faceted search

• Streamlined administration

Page 8: Distribution best practices

Expectations from a distribution

Responsive frontend theme Improved admin experience Facetted search

Batteries included Demo content

Page 9: Distribution best practices

Basic concepts and problems

Page 10: Distribution best practices

Distribution building blocks

1) Install profile

2) Drush make

3) Features

4) Demo content

Page 11: Distribution best practices

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

Page 12: Distribution best practices

Drush Make

Page 13: Distribution best practices

Features – the promise

Page 14: Distribution best practices

Features – the promise

Page 15: Distribution best practices

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?

Page 16: Distribution best practices

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

Page 17: Distribution best practices

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

http://drupal.org/project/defaultcontent

deprecated in favor of “”UID Features”

DIY? Migrate

Page 18: Distribution best practices

Community problems

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

Page 19: Distribution best practices

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).

Page 20: Distribution best practices

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?

Page 21: Distribution best practices

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?

Page 22: Distribution best practices

Sustainability

Page 23: Distribution best practices

Sustainability

Page 24: Distribution best practices

Diving in

Page 25: Distribution best practices

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

Page 26: Distribution best practices

Customizing the install process

Page 27: Distribution best practices

Customizing the install process

Page 28: Distribution best practices

Customizing the install process

Page 29: Distribution best practices

Customizing the install process

Page 30: Distribution best practices

Customizing the install process

Page 31: Distribution best practices

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

Page 32: Distribution best practices

Facetted search

Page 33: Distribution best practices

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

Page 34: Distribution best practices

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..)

Page 35: Distribution best practices

Other Emails and activity streams- Message & Message Notify

Breadcrumbs:- Crumbs- Path Breadcrumbs

Social links and logins: - Service Links, Sharethis

- OAuth Connector

Page 36: Distribution best practices

Now go and build something

Page 37: Distribution best practices

Questions & Answers

Page 38: Distribution best practices

Thank you!

[email protected]