Hi; On 21 January 2016 at 15:22, SAHIL SAREEN <sahil.sar...@hotmail.com> wrote:
> I feel we should spend time building a simple "build sheriff" (maybe an > extension of https://build.gnome.org) that auto-files a "cri" bug for the > module whose build failed. This should make sure that it isn't creating > duplicate bugs(reopening the old one if exists) for the same module and > append a comment giving the link to the respective build failure. > > The package maintainers(or the #testable s) should then either revert the bad > commits or fix them and close the bug. > > Thoughts? There are two issues with that, and they cannot be solved via automation: 1. since Continuous does not do reverse dependencies when building, the component that may be breaking the build may not be the actual component that needs a tag or a revert. If, say, component X introduces an API change, then component X will likely build fine, but every other component that depends on component X and uses that API will fail to build. We cannot send an email/notify on IRC/open a bug for other components. 2. the goal is not to notify maintainers; the notification is actually an anti-goal. The goal, here, is to ensure that the maximum time for a build breakage is around an hour. The goal is to ensure that the *whole* of GNOME *always* builds at any given time of day. We notify maintainers today, by filing bugs; by joining IRC channels; by sending emails. That can take ages to get a response because maintainers are humans, and have other things to do. I filed a bug and tagged a component of the manifest because of a broken build (caused by one of its dependencies) mid-December, and the maintainer was on vacation. This means that the components in question were not built for three weeks because of the tag. A revert would have avoided the tag, and kept the world building. Bugzilla can deal with duplicate bugs; the amount of effort spent there is negligible. Ciao, Emmanuele. > From: desktop-devel-list <desktop-devel-list-boun...@gnome.org> on behalf of > Emmanuele Bassi <eba...@gmail.com> > Sent: Thursday, January 21, 2016 8:24 PM > To: Desktop Development List > Subject: Build sheriffs for GNOME > > Hi all; > > Many of you know about GNOME Continuous, and build.gnome.org — and for > those who don't, here's two handy links: > > - https://build.gnome.org > - https://wiki.gnome.org/Projects/GnomeContinuous > > In short: we're currently building the core GNOME and some > applications every time something gets committed to git.gnome.org; > we're also doing various tests — like smoketesting the session and > running applications — and building VM images out of the build > process. > > This effort led to various benefits, including JHBuild not constantly > being in a broken state, and most projects hosted on git.gnome.org > finally building when builddir != srcdir, which should improve the > ability of maintainers to do `make distcheck` on release days. > > What we need now, though, are "build sheriffs", i.e. people that watch > the build process and ensure that it continues smoothly. Ideally, > every maintainer would be on IRC, and would join the #testable > channel; sadly, that's not the case. Many are not even on > #gnome-hackers, which means they miss the notification that the > something broke the build. We cannot always send emails to the last > committer of a broken module because GNOME is a complex project, and a > change in a dependency may indeed break your project, even if you > didn't know about it. > > For the past few months a few people, myself included, have been > hunting down build breakages; if we exclude the issues with the build > machine itself throwing a fit — something that usually gets fixed by > Colin kicking it — the vast majority of build breakages come from > issues inside GNOME projects. > > What usually happens when a build goes into perma-red (i.e. it keeps > failing over the same component) is that somebody on the #testable IRC > (usually me or Colin Walters) tags the module inside the manifest, > opens a bug, and hopes that a fix get applied and on the channel so > that the tag gets reverted. > > This is not enough, and it does not raise the bar in keeping GNOME in > a buildable state. It actually lowers it a fair , to the effective > point that *nobody* cares about Continuous builds. > > I want this to change. I want to be able to revert failing commits on > the offending modules, if they are hosted on GNOME infrastructure, if > they fail for more than N hours, and *then* open a bug about it. > Ideally, I want to tag only modules that are *not* hosted on GNOME > infrastructure, as they are beyond our control and commit > capabilities. In short, I want to ensure that GNOME maintainers become > a bit more proactive in giving a crap about their modules breaking on > something that is not their own computers. > > So, here's what will happen in the near future in case of a build break: > > - a build sheriff will identify the component that is actually > breaking; this usually takes about a minute of reading the build log > linked by the IRC bot > - the build sheriff will try to reach the maintainer of the > component and see if they are on IRC or any other form of IM; I > strongly suggest you either use the same nickname as your GNOME user > id in the DOAP file of your projects, or we'll need to figure out a > way to link your IRC nickname with the project description > - if nothing happens for a reasonable amount of time (I'd give one > to three hours) > - if the offending component is not hosted on git.gnome.org, the > build sheriff will tag the component in the gnome-continuous manifest > file > - if the offending component is hosted on git.gnome.org, the build > sheriff will revert the commits that caused the breakage > - in either case, a bug will be filed in the bug tracker for the > component, if one is not already open (that's why you should always > list bugs into the commit message) > > What does a build sheriff need to know? Usually, breakages involve the > build system. If you know autotools and/or CMake enough to fix issues > with them, you should consider joining. The wiki page on GNOME > Continuous describes the system — so you should take some time to > familiarise yourself with it: > > https://git.gnome.org/browse/gnome-continuous > > Especially the manifest file. > > The process of keeping GNOME building will be much more smooth and > painless the more people we have watching the Continuous build on > #testable. Ideally, you should *always* look at > https://build.gnome.org or join the #testable IRC channel. > > For the time being, Colin Walters, Javier Jardón, and myself will be > watching the build as much as we can spare (we're also busy with our > own jobs ;-)) and try to fix issues; any help is much appreciated, > though. > > Ciao, > Emmanuele. > > -- > https://www.bassi.io > [@] ebassi [@gmail.com] > _______________________________________________ > desktop-devel-list mailing list > desktop-devel-list@gnome.org > https://mail.gnome.org/mailman/listinfo/desktop-devel-list -- https://www.bassi.io [@] ebassi [@gmail.com] _______________________________________________ desktop-devel-list mailing list desktop-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/desktop-devel-list