How to cope with patches sanely
Manoj Srivastava
srivasta at debian.org
Sat Feb 23 15:08:23 UTC 2008
On Sat, 23 Feb 2008 08:46:03 -0500, David Nusinow <dnusinow at speakeasy.net> said:
> On Fri, Feb 22, 2008 at 09:37:24AM -0600, Manoj Srivastava wrote:
>> On Thu, 21 Feb 2008 16:20:49 +0100, martin f krafft
>> <madduck at debian.org> said:
>> > That does not help me during an NMU from the source package.
>>
>> For an NMU of one of my source packages, if you can't deal with the
>> distributed SCM, then you need not worry about differentiating the
>> feature branches, fix the source conflicts, upload. I'll deal with
>> fallout. Comes with the territory.
> If you're applying 10 to 20 different feature branches to your
> upstream, then that all comes to the NMU'er as one giant diff. This
> obviously sucks and it's what we've been complaining about Ubuntu
> doing to us for years. We can do better.
I have hear you say this before, but I am not convinced that the
situations are really similar. You see, with Ubuntu, I do not see any
place they provide the information in a nice separate area, even using
their preferred SCM, bzr.
That is not the case when using featrure branches, the NMUer can
get the information they need.
Now, we should also consider the type of NMU, and the need for
being able to tell the distinction between different threads of
development. As a maintainer, where you are juggling user needs for
features, and trying to add features, and so on, you do need to deal
with large changes, perhaps touching a large number of files. Here, it
do need to tell the lines of development apart, and ensure that all the
lines of development are indivdually undamaged.
For this kind of NMU, you need to be familiar with the package,
and yes, you need to be able to keep features apart.
Quilt is suboptimal here, since it can't keep features
independent; since all feaures are impacted by all other features prior
to it in the linear chain, but I guess it performs well enough.
Nothing beats a pure featrure ranch in keeping the features
independent.
But if you are a security NMUer, you have a short time frame,
and a very targeted fix to install, and you do not have to keep track
of independent features, and I believe not having a patched source to
deal with immediately inder such a use case. The feature branch wins
again, since dpkg-source -x gives you the sources that are used to
build from, no special shennanigans needed.
> If you want to use your special custom system then that's fine, but I
> think that ultimately shipping things as a linear patch stack in the
> package makes a lot of sense because you can provide the NMU'er with
> the ability to conceptually see the differences in your branches
> without having to learn your DVCS. That way you can still use whatever
> custom system you want to manage your packages, but at the same time
> you present your packages to others in a way that makes it easier for
> them to work on.
In this day and age a DSCM is not a mere "custom system". If
you want to hack on modern packages, you need to be aware of modern
tools. Being a Luddite is not something I would encourage.
Now, you are trying to make me go towards a mechanism I think is
inferior (a liner, dependent, and in my opinion, opaque, and somewhat
shaky linear patch series) as opposed to pure, independent feature
branches, for benefits I still think are dubious, so expect serious
push back. Especially if for every upload I'll have to redo all the
integration work of the past; ain't gonna happen.
I am not trying to convince you of the error of your ways.
Please desist trying to convince me of mine.
> This argument assumes that dpkg-source -x will apply that patch stack
> automatically as well, which has been discussed elsewhere.
Currently vapourware, no?
manoj
--
You will be singled out for promotion in your work.
Manoj Srivastava <srivasta at debian.org> <http://www.debian.org/~srivasta/>
1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C
More information about the vcs-pkg-discuss
mailing list