Re: better doc (and build) validation

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

 



On Tue, Dec 5, 2017 at 12:44 PM, Gregory Farnum <gfarnum@xxxxxxxxxx> wrote:
> On Tue, Dec 5, 2017 at 5:31 AM, Alfredo Deza <adeza@xxxxxxxxxx> wrote:
>> It seems like we keep hitting catastrophic build errors with minor doc
>> changes. The last one was introduced by a change I made to the
>> ceph-disk man page that updated the title:
>>
>> https://github.com/ceph/ceph/pull/19241/commits/bd00560c20caeeb1ded211cb81533280338014d1
>>
>> That change builds correctly (!) and will render just fine, and it was
>> merged after the docs build reported as successful.
>>
>> However, this also made all subsequent binary builds break. This
>> disconnect has caused similar issues in the past. At some point the
>> docs build was completely broken for days, because there was no
>> visibility from pull requests.
>>
>> To mitigate that, we now have the docs job building for every pull
>> request, regardless if it is only editing rst files (because, yes, one
>> can break the docs build with C++).
>>
>> This has helped a lot, but it still falls short because the binary
>> build process for Ceph is different from how we build docs (including
>> man pages). This is why a successful docs build in a PR can still
>> break a binary build.
>
> Do we understand why it failed on the binary build but not the docs build?
>
> Seems like that would help us see if we can replicate any other issues.

It failed there because the man pages are generated differently, using
a couple of ad-hoc helpers that try to ensure certain conditions. In
this case, it was a Python
utility (ceph/man/conf.py). It was trying to make sure that the title
of the man page matched the name of the man page.
I had added "[DEPRECATED]" to the ceph-disk title, which failed the assertion.

But because the utilities use plain asserts, you don't get any of that
rich error reporting, just that some value != some other value.

Regardless, the reason is because the code paths are not the same, so
we need to find a way to either make them the same, or try to report
whatever code paths
we need to touch for a PR.

>
>> There are a couple of things that could help:
>>
>> 1) I don't entirely follow how CMake is building the man/doc pages,
>> but a job that tries to replicate that path could catch these
>> inconsistencies in PRs.
>>
>> 2) Build binaries on every PR, and report them as status.
>>
>> I don't know enough of CMake to attempt #1, and #2 would cause
>> contributors a lot of pain because it would involve having to push to
>> ceph-ci.git always.
>>
>> I am open to any other ideas or suggestions here.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux