Merging some repos?

Daniele E. Domenichelli daniele.domenichelli at gmail.com
Thu Mar 22 02:20:42 UTC 2012


I'm a kind of against it, but at the same time I'm a little bit confused 
and tired and perhaps you are right, so here are a few random 3AM 
comments/thoughts/opinions/questions in random order.

1) Whatever we choose to do, do not rush. Let's plan this properly. We 
changed everything for 0.3, if we are changing everything again for 0.4 
and then we realize that something is not good and we change again for 
0.5 packagers, sysadmin and translators will kill us. I suggest to keep 
this structure for 0.4 and eventually start changing right after the 
release (also because the freeze is quite close).

8) I don't completely agree with Martin's repository layout, but we can 
discuss this later. Anyway, for ktp-utils in 0.4, ktp-kipi-plugin does 
not belong to any other repository than itself, that repository is an 
ugly temporary hack because libkipiplugin is actually a private library. 
"ktp-kopete-logs-import" should be in a bigger repository 
"ktp-kopete-migrator" and we shouldn't ship it until we can import 
automatically everything we need at first kde login after installation 
(that's how t rush. Let's plan this properly. We changed everything for 
0.3, if we are changing everything again for 0.4 and then we realize 
that something is not good and we change again for 0.5 packagers, 
sysadmin and translators will kill us. I suggest to keep this structure 
for 0.4 and eventually start changing right after the release (also 
because the freeze is quite close).

8) I don't completely agree with Martin's repository layout, but we can 
discuss this later. Anyway, for ktp-utils in 0.4, ktp-kipi-plugin does 
not belong to any other repository than itself, that repository is an 
ugly temporary hack because libkipiplugin is actually a private library. 
"ktp-kopete-logs-import" should be in a bigger repository 
"ktp-kopete-migrator" and we shouldn't ship it until we can import 
automatically everything we need at first kde login after installation 
(that's how other migration tools work) so not in 0.4. Thatother 
migration tools work) so not in 0.4. That means in 0.4 a repo for 
ktp-send-file and ktp-ssh-contacts. Perhaps it could make sense if we 
had at least an app to start a call, but again I'd say 0.5.

2a) Handling small packages is a lot easier.
2b) Building a lot of small packages is complicated, especially if those 
have different dependencies. But there are scripts for this.
2c) Updating smaller packages is easier, because you can update just 
some of them.
2d) Updating all the small packages is complicated. But there are 
scripts for this.
2e) Following the development of a small module is way easier than 
following the development of a big module (checking the commits, etc)

w) Dependencies on KDE is a very big problem for me. I'm running Debian 
testing, so I don't have KDE 4.8 yet, therefore if you have small 
components and one of them depends on 4.8 I can have almost all of them, 
if you have bigger you need to write complicated cmake scripts. Also 
this will be a problem if someone wants to bump the version because he 
needs something, but someone else don't want it because his distribution 
don't package that version yet.

%) Git allows submodules. You can make a ktp package without merging the 
repositories. Handling submodules is not really easy, but you can write 
some scripts and cmake custom targets for that. Using submodules you 
could update just one component. If you just want to do a "super-repo", 
imho that's the way to go... A super-repo that can build everything, but 
you can still build just one module.

£) Submodules have also advantages. For example if you push something in 
ktp-common-internals and you need to update some other repositories, 
people will start complaining on irc that stuff is not building or 
doesn't work any more (trust me, 15 seconds are enough). If you have a 
repo with submodule you can push your changes to the submodules and then 
update the "meta" repository in just one commit without breaking anything.

() This is not a problem that only ktp has, this is a problem also for 
KDE modules, perhaps they have already thought how to handle this. I 
think that in Qt5 they are already doing something similar. Before doing 
anything we should check how they have planned this.

æ) Please don't do it, I don't want to change all my scripts again :)

ð) The unmaintained stuff should just have a section (i.e. 
Extragear/Review/Playground/Unmaintained) but this should be supported 
by projects.kde.org. It's a bad idea to trash it since it contains a lot 
of valuable code.

:) SVN was basically a huge repository, but you were able to get just 
one component and build just that, with git you can do the same, but if 
you merge repositories into one you lose this ability

☺) For a packager it might be boring to do a lot of packages, but that 
also make their life easier, because they don't have to split stuff, we 
already do it for them.

♏) I'm not expecting any of our component to be replaced by someone with 
another component, I'm expecting exactly the opposite: empathy users 
using some of our components.

  ) Bisecting is a lot faster with small repositories, and this alone is 
in my opinion a very good reason not to switch to "super-repositories".


Now I'm tired, but if you read the whole mail you are probably tired 
too, so goodnight.

Daniele


More information about the KDE-Telepathy mailing list