On 10/11/2016 08:13 PM, Ondrej Novy wrote:
> 2016-10-11 18:58 GMT+02:00 Thomas Goirand <z...@debian.org
> It is impossible maintain 400+ interacting packages the way you would
> with your single pet package.
> I don't see any problem using source-only upload for all OS packages.
> buildd will wait for missed deps automatically and it's cross-check of
> your work.
> The only way I see to fix this, is deploying the same kind of CI/CD we
> have designed in the OpenStack infrastructure, but using Sid, and
> this is not needed. We should use source-only upload, that's all. We
> already have something like CI/CD - buildd with source-only uploads +
> repro builds.
The issue is inter-(build-)dependencies. Let's say we have package A
that build-depends on B, which itself build-depends on C. We then have
to do a source-only upload of C, wait for the next dak run, wait for it
to be built, then installed in the master repository. Then it has to
reach the mirrors of buildd machines (hint: packages propagate at
different speed on each dak run, depending on the mirror configuration,
Internet connectivity, and so on). Then only, B can be built, which also
takes so long. Then only A can be built.
All of this could take maybe 2 days.
And that's not the only issue. In the OpenStack packages, there's cyclic
build-dependencies. We'd have to (temporarily) remove some unit tests
and build-dependencies for some packages to be buildable.
While you do all of this, as soon as package C is uploaded, maybe all of
OpenStack is broken (who knows? I wouldn't be surprised, I have seen
such things in the past...).
What I tried to achieve was uploading everything in a single Dak run, in
order to minimize the time when we're switching from Mitaka to Newton.
That's the best service I can do to both our users (so they get updates
at once if they run unstable), and to everyone that is contributing bug
reports, as it avoids FTBFS, runtime problems and such, just because we
don't have the correct working together set of packages.
So yeah, really, source-only uploads are nice, but it will never replace
a real CI, and it prevents mass-uploads. Yes, I did forget a
build-dependency, though that's still much nicer than living unstable
broken for days/weeks with the workflow you're both proposing.
If you still don't agree, let me know. I'd love to hear counter
arguments, or a solution if there's one.
Thomas Goirand (zigo)