Switching KDE packaging to git
Modestas Vainius
modestas at vainius.eu
Sat Jul 24 23:56:59 UTC 2010
Hello,
On sekmadienis 18 Liepa 2010 23:57:19 Modestas Vainius wrote:
> so Git migration is moving forward slowly. A few notes:
>
> 1) Qt 3 / KDE 3 stuff will remain on subversion. Their subversion history
> is too messed up (retagging, svn externals) to be worthwhile migrating.
>
> 2) Our Git repos will not have a full graded access control like subversion
> did. Everyone in the alioth pkg-kde project with SCM permissions will have
> commit access everywhere.
so I plan to be done with Git conversion of kde-{sc,req,std},attic by
tomorrow. I'll do krap a bit later, I won't do kde-extras.
Hierarchy stays the same as described in the previous mail with addition of
attic/ where the following will be moved:
'blitz' => 'attic',
'decibel' => 'attic',
'meta-kde4' => 'attic',
'kdelibs-experimental' => 'attic',
'cdbs' => 'attic',
wv2 will be moved to krap/.
> 3) I think we will need to add git hooks in order to enforce some
> rules in the repositories. To be honest, our subversion history is not in
> the very good shape wrt consistency (which is partly fault of svn itself).
I also wrote an update hook which will enforce the following rules (as of
now):
Packaging tags:
* tag is under debian/ namespace;
* tag is annotated;
* format of the tag message first line (<version> <distribution>;
urgency=<urgency>);
* tag message is in sync with debian/changelog;
* distribution is valid and allowed (unstable, experimental);
* tag commit has a merge base in the master branch;
* tagged tree does not contain anything else but debian/ subdir and
optionally .git* (can be disabled by hooks.pkgkdeDontRestrictTree);
* a couple of more basic consistency rules;
Packaging branches (master, unstable, experimental etc.):
* branch update is fast-forward;
* branch is not being deleted;
* tree does not contain anything else but debian/ subdir and optionally
.git* (can be disabled by hooks.pkgkdeDontRestrictTree);
* branch is not scoped (doesn't have /; applies to all branches)
Configuration variables:
* hooks.pkgkdeDontRestrictTree (bool) - do not restrict tree contents to
debian subdirectory and .git*. Useful for native packages.
Branches rules won't apply to non-packaging branches (i.e. not master,
unstable or experimental).
Proper painless formatting of the tags may be achieved with `pkgkde-vcs tag`
tool as of pkg-kde-tools 0.9.3 (just uploaded). The main rationale for rather
strict tagging rules is the following:
1) avoid bogus tags in the VCS. This happened quite a number of times with svn
so such a automated checking is clearly needed;
2) ensure that the tag message is informative. I do believe that having
version, distro and urgency of the upload in the VCS quickly accessible (e.g.
over gitweb or `git tag -n1`) is quite useful.
I do plan to extend pkgkde-vcs with more functionality like mass
changes/committing, (mass) cloning, mass pushing etc.
--
Modestas Vainius <modestas at vainius.eu>
More information about the pkg-kde-talk
mailing list