Successfully reported this slideshow.

Collective Good: Create, Release & Maintain the Best Add-on Products for Plone


Published on

Published in: Technology
  • Be the first to comment

Collective Good: Create, Release & Maintain the Best Add-on Products for Plone

  1. 1. Collective Good Create, Release & Maintain The Best Add-on Products for Plone Jon Baldivieso ONE/Northwest
  2. 2. I work for ONE/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
  3. 3. 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?
  4. 4. First, do no harm Uninstall 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
  5. 5. Play well with others Work 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
  6. 6. Plan for widespread use Unit 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
  7. 7. Plan for customization Separate logic and presentation Use browser views
  8. 8. Am I ready for parenthood? Releasing code to is the point of commitment Half way option: code in Collective, but no page in Plone Soft ware Center
  9. 9. 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 and PyPI;
  10. 10. Stewardship release! 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’s methods to detect reinstalls
  11. 11. Learn more docs on third-party add ons Martin Aspeli’s book read PloneFormGen code