I second that git submodules seem to be flaky; I've found it surprisingly
hard to just correctly, consistently update submodules.

And I agree that it can be difficult to safely update code that other
projects depend on - but if we do it right, this could be a forcing function
that causes us to make sure our libraries have stable interfaces.
I suppose this is a good time to mention that continuing to beef up our
automated build/test infrastructure will make this easier to get right.

~Jesse

On Mon, Jan 31, 2011 at 3:19 AM, David Schmitt <[email protected]> wrote:

>
> On Mon, 31 Jan 2011 00:19:11 -0800, Luke Kanies <[email protected]>
> wrote:
> > Hi all,
> >
> > I think there are a few classes or subsystems in Puppet that could, and
> > maybe should, be extracted into separate projects so they can be more
> > widely used; at worst, they could at least be shared by our other
> projects.
> >  I'd love to be able to pull functional bits out of Puppet and use them
> > elsewhere -- e.g., I'd love to have mcollective, Puppet, PMT, and Facter
> > all share the code that creates their applications.
> >
> > I'm thinking of, at the least, our graphing stuff and the application
> > classes (plus the Interface classes I'm working on[1]).
> >
> > The problem with doing this, of course, is that it introduces that
> > external code as a dependency, which doesn't really work.
> >
> > I expect the only real choices are to list them as dependencies, or do a
> > kind of vendoring, like we're doing with Event::Loop and JSON.
> >
> > How do other projects solve this?  Does anyone have any experience doing
> > so?
>
> Two datapoints:
>
> 1) distro packages will need to split out the dependencies to reap the
> benefits of code sharing in the package dependencies too. This in turn
> requires that current versions of the apps always use (work together with)
> the same version of the library.
>
>
> 2) Ayende recommends git subtree:
> http://ayende.com/Blog/archive/2011/01/10/git-subtree.aspx
>
> I've no personal experience with it though. The experience sounds good
> though, since:
> > it is only me that have to use this, everyone else can just work with
> the usual git tools, and not have to be aware that I am sharing code
> between projects in this manner.
>
>
>
> Best Regards, David
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<puppet-dev%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/puppet-dev?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to