[ANNOUNCE] charm-helpers project

Matthew Wedgwood matthew.wedgwood at canonical.com
Mon May 13 16:42:10 UTC 2013

TL;DR: lp:charm-helpers is now the recommended place to land support 
code for charms. Please use it in your charms and contribute!

I've pushed the first version of the python charmhelpers library to 
lp:charm-helpers. In its current state, charmhelpers is a conglomeration 
of other charm support libraries built by various groups at Canonical.

  - The original charmhelpers library written by Clint Byrum
  - Imported python module and tests from helpers/python/charmhelpers
  - Used in production by Canonical IS and Online services
  - Written by myself and Sidnei DaSilva with contributions from others
  - Imported all code
  - Retained build and test infrastructure
  - Retained top-level project layout
  - Tools used in the juju-gui charm
  - Written by the Juju GUI team
  - Imported hooks/utils.py and related tests
  - Tools used for Openstack deployment charms
  - Written by James Page and Adam Gandelman

Imported code can be found in charmhelpers/contrib/<project_name>. Each 
imported project now has an IMPORT file describing the source and 
destination of each file that was imported. I imported each project 
separately with fixup steps in-between so that required changes can 
easily be reviewed by diffing commits.

All existing test pass (although coverage is not 100% and ha-helpers has 
no tests), so you *should* be able to use the new project immediately by 
copying it into your charm and fixing up imports.

Next steps:
* design a package layout
* set policies


1. Identify duplicate code amongst the contributed projects, choose the 
best implementation, and begin building the main modules (outside contrib).
2. Design a maintainable structure for the command-line interface and 
begin exposing functionality to shell/non-python charms.

Marco Ceppi may have more to add. I'll follow-up with some proposals on 
package layout.

More information about the Juju mailing list