collective good: create, release & maintain the best add-on products for plone

Post on 12-May-2015

1.366 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Collective GoodCreate, Release & Maintain

The Best Add-on Products for Plone

Jon BaldiviesoONE/Northwest

I work forONE/Northwest

a non-profit environmental organization that helps other groups engage people around the environment.

5-person web team; we’ve been doing Plone sites for 4+ years now.

host 45-some Plone 2.0 sites; 35-some Plone 2.1 sites; 45-some Plone 2.5 sites; 35-some Plone 3.x sites

we’ve been upgrading old sites with plenty of old 3rd party addons: some pain there

Should I really do this?

Does this scratch an itch?

Really worth a new project?Worth a new product, or collab on existing?

Am I willing to maintain this?

First, do no harmUninstall needs to uninstall

no cruft leftover

great use for unit (functional) tests

Install only affects ONE site

browser layers in 3.0 sites

Install really shouldn’t nuke your site

needs to be reversible

Play well with othersWork with existing Plone paradigms, naming conventions, CSS classes

In Plone 3, use viewlets instead of custom templates, when possible

Also in P3, not adding new content types is preferred if at all possible

subtypes

archetypes.schemaextender

Plan for widespread useUnit tests

i18n

eggify

compatibility

support 2 most recent major Plone versions if possible

i.e. now: 2.5.x, 3.x

see PloneFormGen or Scrawl for examples

Plan for customization

Separate logic and presentation

Use browser views

Am I ready for parenthood?

Releasing code to plone.org/products is the point of commitment

Halfway option: code in Collective, but no page in Plone Software Center

Best practices for release

good name

Limi’s “namespace is not the product”

good documentation

PSC page; HISTORY.txt; README.txt; release manager contact info

comments in code: inc in GS profiles, CSS

good storage

code stored in collective, released to plone.org and PyPI;

Stewardshiprelease!

release early, release often

alpha/beta/final release cycle

never delete releases from PSC OR tags from svn

maintenance branch for critical bugfixes rather than dropping support for a Plone version entirely

document this well

clean up after yourself. obvious, but no:

.svn cruft (use svn export); set.trace(), for gods sake

find a replacement if you can’t make the time to maintain

migrate : bring your users along with migrations. you can hook into Install.py’s methods to detect reinstalls

Learn more

plone.org docs on third-party add onshttp://plone.org/documentation/manual/add-on-products-developer-manual

Martin Aspeli’s book

read PloneFormGen code

top related