Re: Standardizing the layout of git packaging repositories
On Sat, Aug 16, 2014 at 01:59:46PM +0200, Raphael Hertzog wrote:
> Hi,
>
> On Fri, 15 Aug 2014, Guido Günther wrote:
> > The gbp manual has a recommended branch layout:
> >
> > http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.import.html#GBP.BRANCH.NAMING
> >
> > which could serve as a basis. There's plenty of room for improvement,
> > e.g. the case where one tracks upstream git isn't yet mentioned (I
> > started to follow the above layout also in this case).
>
> Some comments on this recommended layout:
>
> 1/ I suggested <vendor>/master rather than <vendor>/unstable (or sid)
> because it means we don't have to know the default codename/suite used
> for packaging of new upstream versions (in particular for
> downstreams)
There is no such default. Most projects I work in package release
candidates on debian/experimental, sometimes (depending on e.g. the
state of the freeze) also releases. Point releases on the other hand
go to debian/wheezy or security/wheezy. This information can't be
coded in the branch naming.
> 2/ having multiple upstream/<codename> is bound to never be up-to-date
> when I do "git checkout debian/experimental && git merge
> debian/master", upstream/experimental will get out of sync and I
> won't notice it because my package builds just fine
>
> However multiple upstream/* branches can be useful, they should
> just match real upstream branches... so things like upstream/master,
> upstream/4.8.x, upstream/4.9.x, etc.
(If upstream doesn't use git) matching this to Debian releases is more
clear imho. I do acknowledge that you have to keep these in sync (e.g.
via git update-ref) but it helps packaging tools to match the release
in the changelog to the build and upstream branch.
> 3/ I don't see the need for backports/<codename>, I would rather
> use debian/wheezy-backports (which actually is just a specific case
> of <vendor>/<codename> since wheezy-backports is the Codename in the
> Release file)
Agreed, but...
>
> and security/<codename> is just the continuation of <vendor>/<codename>
> after a stable release, so again I don't see the need for a specific
> branch here (and if we really need a separate branch, it can again
> be <vendor>/<codename>-security)
There are situations where you have an upload for stable-security and
for stable. The review and acceptance of these packages happens by
different teams at different points so it's nicer to have them separated.
> > > - upstream/<version>
> > > (note: we don't need an "upstream" branch, having the good tag for any
> > > release that the distros are packaging is enough, it can point to a
> > > synthetic commit built with tools like git-import-orig or to a real
> > > upstream commit)
> >
> > Agreed, although having a branch (and recommended naming convention)
> > can be useful.
>
> Yes.
>
> > > - pkg/<version>
> > > (note: git-buildpackage uses debian/<version> but I find this confusing
> > > as we then also have the "debian/" prefix for ubuntu or kali uploads, we
> > > don't need the vendor prefix as the usual versioning rules embed the
> > > downstream distribution name (e.g. 1.0-0ubuntu1) and thus there can't be
> > > any conflict on the namespace, keeping a prefix is important to easily
> > > differentiate tags created by upstream developers from tags created
> > > by packagers)
> >
> > The tag format is configurable in gbp and I'd expect downstreams to
> > use a different name space (e.g. ubuntu/<version>). This makes it
> > simpler to tab complete (or delete) certain groups of tags. A patch to
> > make the tag message configurable too is waiting to be applied. pkg/
> > is too generic since we'll have more of the RPM support upstreamed
> > soonish.
>
> Anything that needs to be configured is a source of error. I'd rather
> have gbp do the right thing and pull the information from dpkg-vendor.
Good idea. We could add this as --debian-tag='auto' or similar and
make it the default.
Cheers,
-- Guido
Reply to: