Puppet modules and git master branch

The events in this post happened 5+ months prior to the posting date. I have been a bit behind on things, but wanted to get this out there.


Here I am minding my own business, testing my modules on Travis-CI and I start to get failures in the rspec tests.  I only updated the Geppetto .project file, how is my CI now failing?


  1) vmwaretools on a supported osfamily, vmware platform, default parameters for osfamily Debian and operatingsystem Ubuntu should contain Class[vmwaretools::repo] with before => ["Package[vmware-tools-esx-nox]", "Package[vmware-tools-esx-kmods-3.8.0-29-generic]"]
     Failure/Error: )}
       Syntax error at '{'; expected '}' at /home/travis/build/razorsedge/puppet-vmwaretools/spec/fixtures/modules/apt/manifests/init.pp:18 on node testing-worker-linux-docker-1ea89b31-3400-linux-15.prod.travis-ci.org
     # ./spec/classes/vmwaretools_init_spec.rb:159

It turns out that puppetlabs/apt has a syntax error in init.pp.  But why am I testing against a non-released (to the Forge) version of the APT module? I won’t ask how a syntax error even got committed.

The same goes for puppetlabs/concat:


  27) cloudera::cm5::server on a supported operatingsystem, custom parameters, db_type => postgresql with defaults should contain File[/etc/cloudera-scm-server/db.properties] with ensure => "present"
     Failure/Error: it { should contain_file('/etc/cloudera-scm-server/db.properties').with_ensure('present') }
       Puppet::Parser::AST::Resource failed with error ArgumentError: Invalid resource type file_concat at /home/travis/build/razorsedge/puppet-cloudera/spec/fixtures/modules/concat/manifests/init.pp:106 on node testing-worker-linux-docker-e5c6f7ca-3360-linux-7.prod.travis-ci.org
     # ./spec/classes/cloudera_cm5_server_spec.rb:313

It looks like puppetlabs/concat is switching to using a second module (electrical/file_concat). Now I have to update my .fixtures.yml (which is fine, I do want to know about dependency changes), but there isn’t a released version of puppetlabs/concat with electrical/file_concat yet.

All of the rspec testing in the world won’t help if dependencies are unstable.  Puppet module git repository master branch should at all times be the same as the code released to the Forge.


What Is Your Forge Module about?


Ok Puppet Forge module creators. This one is for you. For those of you who have graduated to providing a useful README file with you module, I implore you to also provide not only a description of what your module’s software is and does, but also a link to it’s homepage. I may want to learn more about it and forcing me to copy and paste into my favorite search engine has really got me irritated. (Yes, I am lazy.)

Case in point: (Apologies to dcoxall for using him as an example.) I am following links from a blog post to the golang Puppet module. It looks interesting. It even tells me what Go is, but I want to know more. Why not provide a link to Go? Everything else looks spot-on.