There is a number of pre-requisite programs / framework you shall install to be able to correctly contribute to this Puppet module.

Git Branching Model

The Git branching model for this repository follows the guidelines of gitflow. In particular, the central repository holds two main branches with an infinite lifetime:

  • production: the branch holding tags of the successive releases of this tutorial
  • devel: the main branch where the sources are in a state with the latest delivered development changes for the next release. This is the default branch you get when you clone the repository, and the one on which developments will take places.

You should therefore install git-flow, and probably also its associated bash completion.

Ruby, RVM and Bundler

The various operations that can be conducted from this repository are piloted from a Rakefile and assumes you have a running Ruby installation.

The bootstrapping of your repository is based on RVM, thus ensure this tools are installed on your system -- see installation notes.

The ruby stuff part of this repository corresponds to the following files:

  • .ruby-{version,gemset}: RVM configuration, use the name of the project as gemset name
  • Gemfile[.lock]: used by [bundle](

Repository Setup

Then, to make your local copy of the repository ready to use the git-flow workflow and the local RVM setup, you have to run the following commands once you cloned it for the first time:

  $> gem install bundler    # assuming it is not yet available
  $> bundle install
  $> rake -T                # To list the available tasks
  $> rake setup

You probably wants to activate the bash-completion for rake tasks. I personnaly use the one provided here

Also, some of the tasks are hidden. Run rake -T -A to list all of them.

RSpec tests

A set of unitary tests are defined to validate the different function of my library using Rspec

You can run these tests by issuing:

$> rake rspec  # NOT YET IMPLEMENTED

By conventions, you will find all the currently implemented tests in the spec/ directory, in files having the _spec.rb suffix. This is expected from the rspec task of the Rakefile.

Important Kindly stick to this convention, and feature tests for all definitions/classes/modules you might want to add.