More CI woes

Seb seb at wilzba.ch
Sun Sep 20 06:35:22 UTC 2020


On Sunday, 20 September 2020 at 03:16:57 UTC, Andrei Alexandrescu 
wrote:
> Several CI pipelines are failing for 
> https://github.com/dlang/phobos/pull/7638, so I moseyed to what 
> I thought would be a simple one, the doc build:
>
> http://dtest.dlang.io/results/d42adbc33e821c4223291e64541d57ffbb5b3b0d/eb9e6443fd3231b8d086509d950283587ac6ee9e/build.log
>
> I spent some time trying to make heads and tails of it. A few 
> things that could be improved:
>
> * It's 2942 lines long. Most of these lines are just chaff, 
> e.g. do we really need to log every single cp operation, or 
> would a "Copied all files" line suffice?
>
> * The word '\Werror\W' appears in the log 25 times. Although I 
> assume most are to be ignored, some occur in quite dire 
> contexts, such as: "Error parsing type 'const(void function()* 
> function() pure nothrow @property @nogc)': Missing ')' for 
> 'const('". Is it possible to massage error messages known to be 
> benign?
>
> * Some of the command lines being run are printed like this:
>
> [2020-09-20 02:25:55.606583] dautotest: Running: 'timeout' 
> '1800' 'make' '-f' 'posix.mak' 
> 'DMD=/home/dtest/DAutoTest/work/build/bin/dmd' '-j' '8' 
> 'MODEL=64'
>
> Command lines are definitely something people would want to 
> copy and paste from the log. They should be printed like this:
>
> [2020-09-20 02:25:55.606583] dautotest: Running: 'timeout 1800 
> make -f posix.mak DMD=/home/dtest/DAutoTest/work/build/bin/dmd 
> -j 8 MODEL=64'
>
> The lines that carry actual information appear like this:
>
> src/dmd/frontend.d(142): Error: template 
> std.algorithm.iteration.each cannot deduce function from argument types !(addGlobalIdent)(const(string[])), candidates are:
> /dev/shm/dtest/work/repo/dmd/generated/linux/release/64/../../../../../phobos/std/algorithm/iteration.d(805):        each(alias fun = "a", Range)(auto ref Range range)
>   with fun = addGlobalIdent,
>        Range = 
> const(string[])
>   must satisfy one of the following constraints:
>        isInputRange!Range
>        isStaticArray!Range
>        hasMember!(Range, 
> "opApply")
>
> They have escape sequences for pretty printing with colors. 
> Whatever system is producing that output should detect it's not 
> running in a console and omit the escape sequences.
>
> Thanks in advance!

Well, your PRs break the world and this time the CIs actually 
manage to catch it.
Have a look at the Buildkite output of your PR: 
https://buildkite.com/dlang/phobos/builds/3903 where it breaks 
the build of many real-world projects:

---
make[1]: Entering directory 
'/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize'
---> Running tsv-summarize unit tests
dmd 
-I/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/utils.d /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/numerics.d /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/fieldlist.d /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/getopt_inorder.d /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/unittest_utils.d /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/common/src/tsv_utils/common/tsvutils_version.d  -unittest -main -run /var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(815): Error: template `std.algorithm.iteration.each` cannot deduce function from argument types `!((x) => x.processHeaderLine(lineFields))(DList!(Operator))`, candidates are:
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/distribution/bin/../imports/std/algorithm/iteration.d(805):        `each(alias fun = "a", Range)(auto ref Range range)`
   with `fun = __lambda2,
        Range = DList!(Operator)`
   must satisfy one of the following constraints:
`       isInputRange!Range
        isStaticArray!Range
        hasMember!(Range, "opApply")`
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(842): Error: template instance `tsv_utils.tsv_summarize.SummarizerBase!(BufferedOutputRange!(File))` error instantiating
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(559):        instantiated from here: `NoKeySummarizer!(BufferedOutputRange!(File))`
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(815): Error: template `std.algorithm.iteration.each` cannot deduce function from argument types `!((x) => x.processHeaderLine(lineFields))(DList!(Operator))`, candidates are:
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/distribution/bin/../imports/std/algorithm/iteration.d(805):        `each(alias fun = "a", Range)(auto ref Range range)`
   with `fun = __lambda2,
        Range = DList!(Operator)`
   must satisfy one of the following constraints:
`       isInputRange!Range
        isStaticArray!Range
        hasMember!(Range, "opApply")`
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(842): Error: template instance `tsv_utils.tsv_summarize.SummarizerBase!(Appender!(char[]))` error instantiating
/var/lib/buildkite-agent/builds/ci-agent-f16edc43-2dc3-4961-b9ae-3fc8efb9b382-4/dlang/phobos/build/eBay-tsv-utils/tsv-summarize/src/tsv_utils/tsv-summarize.d(1091):        instantiated from here: `NoKeySummarizer!(Appender!(char[]))`
../makeapp.mk:48: recipe for target 'unittest' failed
---

> * It's 2942 lines long. Most of these lines are just chaff,

Well, extra verbosity is nice when things fail.
Why don't you scroll to the bottom?

> I spent some time trying to make heads and tails of it.

Huh, it yields a fairly nice nice error message: (it's from the 
link you posted)

---
The following operation failed:
Dependencies:
  -> dmd
  -> 
/dev/shm/dtest/work/repo/dmd/generated/linux/release/64/VERSION
  -> 
/dev/shm/dtest/work/repo/dmd/generated/linux/release/64/SYSCONFDIR.imp

Sources:
  -> /dev/shm/dtest/work/repo/dmd/src/dmd/frontend.d

Targets:
  -> 
/dev/shm/dtest/work/repo/dlang.org/web/phobos-prerelease/dmd_frontend.html

Command: 
/dev/shm/dtest/work/repo/dmd/generated/linux/release/64/dmd -o- 
-c -Dd/dev/shm/dtest/work/repo/dlang.org 
-J/dev/shm/dtest/work/repo/dmd/src/dmd/res 
-I/dev/shm/dtest/work/repo/dmd/src/dmd 
/dev/shm/dtest/work/repo/dmd/src/project.ddoc 
-Df/dev/shm/dtest/work/repo/dlang.org/web/phobos-prerelease/dmd_frontend.html src/dmd/frontend.d -version=MARS -w -de -fPIC -m64 -J/dev/shm/dtest/work/repo/dmd/generated/linux/release/64 -I/dev/shm/dtest/work/repo/dmd/src -dip25 -g -color=on
---

> Command lines are definitely something people would want to 
> copy and paste from the log. They should be printed like this:

I am sorry, but I don't see your point.
1) The command as run must be displayed (no modification)
2) They actually work as displayed. Try `'timeout' '2s' 'sleep' 
'5s'` in your shell.

> > They have escape sequences for pretty printing with colors.
> Whatever system is producing that output should detect it's not 
> running in a console and omit the escape sequences.

https://issues.dlang.org/show_bug.cgi?id=21266


More information about the Digitalmars-d mailing list