Projects/MoveToGit/Layout

From KDE TechBase

Definitions

modules:

  • each SC module is one repository except kdepim, it will be split into kdepim and kdepim-runtime.
  • each extragear application is one repository.
  • kdereview and playground are implemented with individual repos and/or branches?
  • tarballs stay the same as it is now

split:

  • each SC application is one repository.
  • kdelibs, and kdepimlibs are one repo each kdepim will be split into kdepim and kdepim-runtime. kdebase can be split on workspace/runtime/apps, where optionally apps could be split further
  • extragear and review/playground as above.
  • tarballs stay the same as it is now

Comparison

Pros for each option (cons are rephrased as a pro for the other one) Note: no mention of the magnitude of each point has been made yet.

svn2git

modules:

  • some work has already been done on creating module repos
  • moves within modules can be ignored

split:

  • existing rules can be used with minor changes for "self contained" applications

Reviewboard

modules:

  • less projects to choose from when submitting a patch? [web only, not an issue with post-review]
  • no namespacing issue

split:

  • if something moves to another module, no changes are needed
  • ability to autocreate (and possibly assign) a review group per app, instead of per module

comments:

  • the reviewer groups won't be affected

Redmine

modules:

  • no namespacing issue

split:

  • source code links are automatically available on each applicaton page, instead of the module page

gitolite

modules:

  • no namespacing issue

split:

  • easier to find projects

git

modules:

  • projects can keep their interdependencies, module-wide libraries and so on
  • less server space

split:

  • moving a project (eg. to unmaintained) moves its whole history

user workflow

modules:

  • keeps a sense of community by having a whole module kept together
  • increases passive testing of trunk (more people to notice if the build's broken)
  • lower barrier to hacking on other projects in the module
  • easier to refactor a module [rare]
  • less downloading & disk space for those who want entire modules

split:

  • less downloading & disk space for people who only want a small part of a module
  • easier to get started on one little app?
  • easier to avoid being exposed to unstable versions of other projects [I think that's a bit selfish though]

comments:

  • kdesrc-build, build-tool and mr make it easy to handle large numbers of repos, although there's still room for improvement on userfriendliness.

releases

modules:

  • closer to what we have with svn??

split: