CI builds on GitGitGadget, was Re: [RFC/PATCH 0/5] Fix fetch regression with transport helpers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Junio,

On Thu, 6 Jun 2019, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes:
>
> >> I vaguely recall seeing just one 'x' once. I think last time I had a
> >> problem with truncating st_ino, but that should be fixed in e66ceca94b
> >> (clone: fix colliding file detection on APFS, 2018-11-20). So no idea
> >> how this happens again.
> >
> > Good catch. I think the reason it happens again is simply that Junio
> > picked a base commit that is older than the commit you referenced.
>
> Yeah, that is because the patch specifically targetted a single
> commit as culprit, so naturally the topic that introduced that
> commit was the place to be "fixed" ;-)

Yes, that matches my impression.

I should maybe describe a bit better what *is* tested on GitGitGadget when
it runs the build & test suite for the individual branches (as opposed to
the integration branches maint, master, next & pu): the Azure Pipeline
obviously *cannot* be defined in `azure-pipelines.yml`, as many of those
branches do not even have that file.

One of the features I like most about Azure Pipelines (yes, I really like
Pipelines, they save me from so much work by enabling me to automate a
*lot* in Git for Windows' maintenance, such as building and packaging
quite a few of the components such as OpenSSH, cURL, etc... but I digress)
is that it offers *both* to define the builds via a file that is committed
*and also* in a definition that is maintained outside of the source code.

So what I did was to port azure-pipelines.yml from the former to the
latter, and *that* is run on those individual branches.

As we noticed here, this opens the door for running into regressions that
have been long fixed, just not in the tested branch.

Side note: many projects that want to rely on the confidence instilled by
automated testing therefore change their workflow to a more "topic
branches are based on master, or on the release branches' tips" one. I am
not saying that you, Junio, should switch to such a workflow because you
are clearly comfortable with the current one. I mention this mainly for
the benefit of readers who might wonder what options they have in their
own projects to deal with this.

What I usually do is a hack: this "manual" job definition tries to
cherry-pick all kinds of known fixes to known regressions, and this
APFS-name-collision one is just not one of them. When I find the time
(hopefully next week, probably not), I shall try to take care of that.

> I was wondering if the base commit _before_ the fixes, i.e. e198b3a7
> ("fetch: replace string-list used as a look-up table with a
> hashmap", 2018-09-25), failed the same test you saw problems with.
> It does predate e66ceca9 ("clone: fix colliding file detection on
> APFS", 2018-11-20), so my current theory is that it was broken
> already adn these patches that fixed a breakge had nothing to do
> with the t5601 tests failing.

Yes, I agree.

One might ask why I even bother with testing the individual branches. The
reason is that bisecting breakages in `pu` is a *nightmare*. Most of those
breakages are present already in the individual branches, though, so if I
can catch the breakages there, I have a much easier time keeping the CI
builds green.

Ciao,
Dscho




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux