I've tried using https://github.com/azimux/externals (referenced in Version 
Control with Git <http://shop.oreilly.com/product/9780596520137.do>) which 
kind of works, but is a bit buggy and I've yet to come up with an easily 
understood workflow.

On Tuesday, 18 December 2012 17:59:48 UTC, Malte Janduda wrote:
>
> 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/-/VZjQExuTnvAJ.
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.

Reply via email to