[ANN] charm-tools 1.11.0

Marco Ceppi marco.ceppi at canonical.com
Thu Dec 17 02:12:42 UTC 2015


Hello everyone,

Following what has quickly become a 2 week release cadence as we prepare
for charm-tools 2.0, I'm happy to announce yet another release! Charm Tools
1.11.0 succeeds 1.10.0 and 1.10.1 as the latest release of charm-tools. If
you've managed to install 1.10.0 or 1.10.1 please be sure to upgrade. As
always you can verify the version you are running by executing: `charm
version`

# Changes

8b23dcd [Marco Ceppi] version bump
2dba307 [Marco Ceppi] Match source dependency as found in Xenial
e6890e0 [Cory Johns] Resolve #65: Add support for layer options in
layer.yaml
0b06f42 [Cory Johns] Refactor common code out of InterfaceBind and
StorageBind
892578f [Cory Johns] Revert unnecessary move of BuildError
15ea634 [Cory Johns] Removed superfluous HOOK_TEMPLATE_FILES and fix doc
copypasta error
8ce76ee [Cory Johns] Resolve #74: Use hook template from layers instead of
embedding in charm-tools

# Highlights

This fix includes a mix of new feature and bug fixes. Here are a few
highlights.

## Base layers determine hook templates

This is an advantage which paves the way for hook templates to be in
additional languages, such as powershell, and makes it easier to address
and plug future hooks into the build process

## Support for layer options in layer.yaml

This is a great new feature that helps steamline the charm build process.
Currently, several layers attempt to handle distribution data, they do this
by saying "fill out this yaml file" and the yaml file is usually named
after the layer, IE nginx.yaml, apache.yaml, django.yaml this makes it
harder for users to find options and provides no build time inspection.

With 1.11.0 layer authors can declare what their layer `defines` and an
`options` key in their layer.yaml. These "defines" are a jsonschema of the
"options" each layer accepts. Other layers can set values for these
"options" in their layer.yaml files. At build time, charm-tools will
validate that the options provided matches the defines schema to avoid
errors at deploy time. Furthermore the build process automatically
namespaces these options to avoid collisions between layers.

For more information about this feature, please see
https://github.com/juju/charm-tools/issues/65. I will follow up to this
post with an actual example of this implementation.

# Install

Charm Tools is available to users either via the juju/stable PPA, Homebrew,
or pip

## PPA

    sudo add-apt-repository ppa:juju/stable
    sudo apt-get update
    sudo apt-get install charm-tools

* There is a delay with precise version as some deps, mainly jsonschema,
are not available yet for this platform

## Homebrew

    brew install charm-tools

* Will be available once https://github.com/Homebrew/homebrew/pull/47095 is
merged

## PIP

    pip install -U charm-tools

Given our rapid release pace, we will be adding a new feature to
charm-tools which will provide a warning when charm-tools running locally
is out of date. This should help prompt swift upgrades as bugs are fixed
and new features land in our continued march to charm-tools 2.0!

Thanks,
Marco Ceppi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju/attachments/20151217/c2df582f/attachment.html>


More information about the Juju mailing list