|
Boost : |
Subject: Re: [boost] Pull request sanitise run on Travis CI (Re: [git] Near future.. How do we deal with git-native libraries?)
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2013-12-02 12:48:50
On 2 Dec 2013 at 16:20, Mateusz Loskot wrote:
> > Later on I think it very likely a script might scan all pull requests
> > to ensure their commits were made using the canonical Boost
> > .gitattributes, and if they weren't to refuse the pull request.
>
> GitHub pull requests (PR) are nicely handled by Travis CI service
> (https://travis-ci.org/).
While a good idea, we can do a lot better again.
I have a reasonable Jenkins + Travis + Coveralls implementation also
working for every pull request to master branch. It took a while to
get the kinks out, but you can see the pull request commentary at
https://github.com/BoostGSoC/boost.afio/pull/48 where the bots
decided if my "Boost v1.55 RC merge" pull request was valid.
> Perhaps, it would make sense to set up Travis for Boost repositories as well.
> Then, for every PR submitted to one of Boost repos, a Travis build is performed
> and PR sanitisation script could be part of that build.
Given the work involved, and Travis's fairly restricted per job
timeout, I think this will be a per-maintainer effort. It might be
possible for a single "Does it build on Linux with default GCC?"
sanity run yes, but for anything beyond that I fear it will be a
per-project initiative. It took me many weeks to get AFIO's automated
build infrastructure working right. I can't see anyone volunteering
that time except for their own libraries.
> A nice feature of GitHub+Travis integration is that GitHub PR ticked
> will automatically display status of corresponding Travis build,
> warning about broken that particular PR is broken, so merge with caution, etc.
While nice, it's too subtle for me. It also doesn't work if multiple
bots are posting status to the same pull request, so if say the
Windows unit test run succeeds but Linux fails, you have a 50/50
chance of seeing that the pull request has failed. This is a stupid
limitation of github, where apparently the only possible CI target is
one.
While messy and generating a lot of unhelpful noise, I haven't found
any way better than bot-posted comments so far. Unfortunate, but it
does work.
Niall
-- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk