[Kde-scm-interest] Package splitting

Thiago Macieira thiago at kde.org
Wed Jan 27 14:01:28 CET 2010


Em Quarta-feira 27 Janeiro 2010, às 12:38:21, Thomas Zander escreveu:
> On Wednesday 27. January 2010 10.45.09 Thiago Macieira wrote:
> > You don't update the supermodule unless you want to say something.
> > 
> > For example, when we're about to tag, tag all repositories, then the
> > supermodule.
> > 
> > Other than that, there's no need to change the supermodule at all.
> 
> This is only true if you keep on thinking the way that subversion thinks.
> That it is ok that commits are not atomic.
> I've had too many accusations of breaking the build in koffice just because
> the user updated only his app and forgot to type 'svn update' in the
> libraries. The same happens on backports, though they tend to have a worse
> effect as those break it for everyone else too.
> Being able to update only the app and not the libs dir is possible because
> svn doesn't do atomic commits, and that causes confusion.

I don't agree.

We're talking here about independent projects. Independent projects don't 
depend on each other. So updating A without updating B should work.

Or we're talking about libraries. In the case of libraries (including 
kdelibs), this is a matter of convention. If this works for kdelibs today, why 
wouldn't it work for kofficelibs?

> If you, on the other hand, think its actually pretty useful to avoid this
> kind of problems[1] with the concept Git introduces of atomic commits then
> you'll see that the suggestion of using submodules is not as simple as
> Thiago writes above.
> You still need to change the supermodule a lot of times if you want to see
> it as a developer tool instead of a way to tag releases only.

I don't agree.

Git submodule isn't atomic at all. It cannot be used to indicate atomicity 
because it requires at *least* two operations (two pushes), any of which could 
fail. In our case, it would require three: two submodules and the supermodule.

If we have split repositories, then we lose atomicity. Period.

This includes for example having kdelibs separated from kdebase. If someone 
adds a new feature to kdelibs and then uses it in any application, that 
already requires non-atomic updates.

And no one is suggesting making one huge KDE repository with everything in.

So forget atomicity. It's not an argument.

> When I tried to develop with submodules I found them a real PITA, svn
> externals by comparison are a walk in the park.
> 
> 1) Interestingly; when we introduced cmake the atomicity of commits was
> expected already. Typing 'make' in your app will cause cmake to compile
> your libs dir first, as it depends on that.

That's not atomicity.

That's dependency tracking, done by CMake.

-- 
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-scm-interest/attachments/20100127/ec9c2756/attachment.sig 


More information about the Kde-scm-interest mailing list