Hi folks, we are looking for a way to manage our puppet modules in a convenient way. At the moment we have about 30 modules which are versionized with git or mercurial. Most of them are self-made, some are from github. We thought it would be a good idea to use mercurial subrepositories to manage the versions of those modules. Well, it is not. Everytime you push your commits to the server all subrepositories are checked for updates. It takes minutes to push your changes! And if you have to merge something you do not really know what happens. You just try every command which appears in your mind - multiple times and in different order :D It happened three times that every developer had to delete the whole module tree and check it out again because something was broken. git submodules do not seem to be fun either.
I have looked for an alternative to submodules/subrepositories and found librarian-puppet (https://github.com/rodjek/librarian-puppet). Unfortunately it does not really work good for me. A lot of useless error messages if something is configured wrong. This is pretty important for us. All developers should be able to use the versioning tool. It has to be easy to use. Further the librarian-puppet does not seem to be backed by a healthy community. Just every few months a commit and a lot of open issues and pull-requests. I have hacked some Python code to realize something similar: dyps - https://github.com/MalteJ/dyps You have a yaml file which defines your modules: name, source, version and DVCS system (git/hg): - dep: mysql source: https://github.com/puppetlabs/puppetlabs-mysql.git type: git version: af4b8bff0ad59f21211be2a98d31588066c41e0c All modules are downloaded to the folder "dependencies" when executing "dyps run". You can decide if you want to get a specific changeset at the next run or if you want to get the latest changes - just discard the version property or execute "dyps release your-module-name". If you want to keep the current version execute "dyps keep your-module". You can update one or all versionized modules via "dyps update your-module" or "dyps update-all". The modules without a defined versioned are updated at every dyps run. I have added an import function for mercurial subrepository .hgsub files. Feel free to extend it with an importGitSubmodules function ;-) What do you think about this approach? How are you managing your modules/dependencies? Best, Malte -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/puppet-users/-/wXsxrloQTVYJ. To post to this group, send email to puppet-users@googlegroups.com. To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.