Re: What can Debian do to provide complex applications to its users?
Sean Whitton writes ("Re: What can Debian do to provide complex applications to its users?"):
> On Tue, Feb 27 2018, Ian Jackson wrote:
> > I would like to suggest a radical approach to the source code
> > management for your system: abandon source *packages* in favour of git
> > trees.
> Why do you think Didier's proposal, in particular, represents an
> opportunity to do this? Is it simply that it will require whole new
> tools to prepare and distribute the .vdebs, so we might as well not use
> source packages from the start?
In particular, Didier's proposal is mostly a change to _source code_
Most of Didier's features require no changes to the binary package
format; none require changes to the binary package distribution
mechanisms, nor the development of significant amounts of new software
for managing the construction and publication of (repositories of)
However, Didier's suggestion involves a radical departure in source
code management: specifically, automatic bulk conversion of upstream
sources with very lightweight human approval. And, a new approach to
build scheduling and source->binary (build) management. That involves
writing new software.
That new software should be as small as possible.
In Didier's proposal, there is no actual need to publish source
*packages*. All the upstreams are all using the same VCS (git) in
roughly the same way, and developers who are used to working with this
software in other contexts all expect to be working with VCS trees
(git branches) rather than tarballs. Ie, the reasons why Debian uses
.dscs rather than git branches do not apply.
Didier's approach *does* involve creating a new tool to do the
automatic conversion (and merging of any delta). That tool will have
to consume upstream git branches because that's how the upstreams
publish things. It would be daft not to publish the resulting Debian
source packages as git branches.
So the tool has to consume and produce git branches. Having it
produce source packages too is more work. Work that is not
neceessary. For the success of Didier's suggested project,
nonessential work should be postponed until (i) the project has become
a success enough to justify adding bells and whistles (ii) someone
actually cares enough to do it.
(It is possible that building source packages rather than git branches
would enable the reuse, rather than replacement, of tools like
wanna-build. But wanna-build is much more complicated than is needed
for Didier's suggestion, and not easy to set up - in part because of
its need to support multiple architectures, which Didier's proposal
> > Furthermore, abandon the patch queue approach to Debian package
> > management. We will not be able to maintain a big delta to any of
> > these packages anyway.
> No, but we might often have reason to maintain a small delta. We patch
> upstream source for all sorts of reasons; it is hard to believe it
> wouldn't come up.
Yes. But the changes will be very small. Partly because the upstream
packages are usually very small, and partly because rebasing of a
large delta is inherently difficult and will therefore be impractical
to do automatically, frequently and reliably.
This means that there is a much reduced need to represent the delta
(where there is one) in a rich patch-queue form. Using plain "git
merge" is good for small deltas. (As you recognise yourself in your
dgit-maint-merge(7) tutorial manpage...)
Ian Jackson <email@example.com> These opinions are my own.
If I emailed you from an address @fyvzl.net or @evade.org.uk, that is
a private address which bypasses my fierce spamfilter.