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

Re: jessie release goal: verbose build logs

Joey Hess wrote:
> Making all builds verbose by default has both advantages and
> disadvantages.
> The disadvantages include making builds possibly so noisy that when one
> runs them during daily work, once ignores all output. Including
> important compiler warnings.
> (This is the same reason why it's a bad idea to let a codebase
> accumulate a lot of compiler warnings!)

At DebConf, Enrico came up with this idea: When the package is building
with the display going to the console, something could intercept the
stdout and convert \n to \r. Let stderr through untouched. The result
would be a build that makes it *very* easy to focus on the warnings, while
still providing a progress display of what is going on at any given
moment in the build.

I've attached a simple proof of concept you can try it out with building
your own packages.  For example:

   dpkg-buildpackage | ssssssh

(The implementation needs to be improved; it should read both stdout and
stderr and multiplex them properly. And it should check if stdout is not
to a TTY, and if so avoid munging the build log output. The only other
problem is that `make` outputs the lines it runs to stderr and so those
continue to pollute the build display.)

I'd like to see dpkg-buildpackage modified to use something like this by
default, because it would reduce the level of cruft we wade through
(often up to our eyeballs) when building packages, and allow
concentrating on what's important. At the same time, it allows adding as
verbose output as we like and getting that saved in the build logs for
when a detailed analysis is needed.

see shy jo
my $width=$ENV{COLUMNS} || 80;
while (<>) {
	print substr($_, 0, $width - 1).(" " x ($width - 1 - length $_))."\r";

Attachment: signature.asc
Description: Digital signature

Reply to: