the goal of vcs-pkg (was: v3 Debian source package formats)

martin f krafft madduck at debian.org
Thu Oct 2 06:40:16 UTC 2008


also sprach Manoj Srivastava <srivasta at acm.org> [2008.10.02.0236 +0200]:
>         Emacs has a gret package called dvc - that provides a consistent
>  front end to all the VCS'  I mentioned above. You use the same commands
>  irrespective of your actual VCS. Perhaps some front ends like that can
>  be written (they are feasible, since one is already in place).

Yes, I'd say this is one of the goals of vcs-pkg: to create
a VCS-agnostic tool that supports cross-distro packaging workflows.

To do that, we first need to establish what's in a workflow. Manoj's
workflow seems fundamentally different, but it's not:

  - his debian/common/ is basically just like debhelper or cdbs
  - his debian/ is a submodule, while it seems most common these
    days to maintain debian/ as a subdirectory in a branch. Both of
    these approaches surely have advantages and disadvantages, and
    maybe Manoj could start a table on the wiki allowing us to
    compare the two approaches[0].

    When I said yesterday that having submodules isolates
    maintainers[1], I was referring to the benefits of having
    a common ancestry to all debian/ directories in all your
    packages. However, assuming I take over a package from Manoj,
    that ancestry doesn't really matter to me anymore, I just
    basically create a fork.

So I think we need to compare submodules to branches for
storing/tracking debian/, and otherwise just assume they are the
same for the rest of this discussion.

If we can do this, then let's look at what is actually happening.
I can see people using/toying with two approaches[2]:

  1. a. track package and topics in VCS,
     b. merge changed branches into an integration branch,
     c. tag,
     d. build.
  2. a. track package and topics in VCS,
     b. merge changed branches into an integration branch,
     c. export patches into a quilt series,
     d. store patches in build branch
     e. tag,
     f. build

This is surely simplified[3], but do you see the point? We are
basically talking about the same thing. More specifically: given
a VCS repo with topic branches, it's trivial to cater to both.

Manoj (and others) vehemently oppose to a patch series[4] and prefer
a monolithic diff.gz, and I think that's because of either of two
reasons, or both:

  1. they don't want extra work to obtain the patch series,
  2. they don't see the benefit of source packages based on a patch
     series.

I hope TopGit (and similar tools), and especially the vcs-pkg
packaging tool we'll hopefully develop at the end of all this, will
make (1) a non-issue. Let's assume that it won't be much work to
create this patch series, and I think I am not too idealistic in
saying this.

Wrt (2), I think efforts like patch-tracking.debian.net (aka.
patches.debian.net btw., and also patches.ubuntu.com[5]) and the v3
source package format speak for a patch series and against
a monolithic diff, *especially* because the patch series can always
be squashed into a monolithic diff, but not vice versa.

Sure, quilt does not allow you to test only topics A and
F together[6], but neither does a monolithic diff.

I think one of the core issues is that Manoj likes the fact that
creating the source tree right now can be done with a single tar
+ a single patch invocation, and I like that too, mainly because
I've been doing it for 12 years. patch is a *standard*. I agree that
quilt might already be too complex to ever make it into the ranks of
those tools, but as I said before, we don't actually need quilt:
it's just a series of patches, so instead of your single patch
invocation, it's now a for loop.

Given the benefits of splitting a monolithic diff into patches, I'd
say that in 12 years, we're likely going ot have forgotten that we
ever had anything else than debian/patches/*.

So I guess what I am trying to say is: let's move forward. Let's

- figure out how to extract historic packages from VCS using tools
  like TopGit,
- figure out how we can unify workflows using submodules and
  branches, ideally with a qualitative comparison of the two,
- figure out the actual steps of packaging, with the goal to
  automate them in a flexible manner.



0. on a side note, I seem to have come across a little snarky
   yesterday, and at least Manoj thinks I despise submodules. That's
   not true. I don't know enough about the implications of using
   them for Debian yet, so I have reservations. However, I think
   that submodules or not is only a minor facet of the whole
   discussion (which is what I am trying to argue in the above, and
   I was simply getting annoyed by how the discussion only focused
   on this stuff...
1. <20081001093353.GC31092 at piper.oerlikon.madduck.net>
2. cf. <20080930205430.GA5744 at piper.oerlikon.madduck.net>
3. in the context of my topgit workflow: the integration branch in
   (b) is called stage-* and is short-lived, which may or may not be
   a good idea; I didn't think too much about it yet.
4. I purposely call it a patch series, not a quilt series: it's just
   patches, I don't need quilt to process them, although it's a lot
   easier with quilt.
5. cf. <20080517120743.GS7654 at vuntz.net> on debian-devel
6. <87r670t6z3.fsf at anzu.internal.golden-gryphon.com>

-- 
 .''`.   martin f. krafft <madduck at debian.org>
: :'  :  proud Debian developer, author, administrator, and user
`. `'`   http://people.debian.org/~madduck - http://debiansystem.info
  `-  Debian - when you have better things to do than fixing systems
 
"literature always anticipates life.
 it does not copy it, but moulds it to its purpose.
 the nineteenth century, as we know it,
 is largely an invention of balzac."
                                                        -- oscar wilde
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature (see http://martin-krafft.net/gpg/)
Url : http://lists.alioth.debian.org/pipermail/vcs-pkg-discuss/attachments/20081002/c2c74fa3/attachment.pgp 


More information about the vcs-pkg-discuss mailing list