-
Notifications
You must be signed in to change notification settings - Fork 414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Retain ANSI escape sequences in buffered builds without a tty #6323
Closed
MisterDA opened this issue
Oct 25, 2022
· 0 comments
· Fixed by #6340 or ocaml/opam-repository#22498
Closed
Retain ANSI escape sequences in buffered builds without a tty #6323
MisterDA opened this issue
Oct 25, 2022
· 0 comments
· Fixed by #6340 or ocaml/opam-repository#22498
Comments
This was referenced Oct 27, 2022
emillon
added a commit
to emillon/opam-repository
that referenced
this issue
Nov 14, 2022
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info, dune-action-plugin and chrome-trace (3.6.0) CHANGES: - Forbid multiple instances of dune running concurrently in the same workspace. (ocaml/dune#6360, fixes ocaml/dune#236, @rgrinberg) - Allow promoting into source directories specified by `subdir` (ocaml/dune#6404, fixes ocaml/dune#3502, @rgrinberg) - Make dune describe workspace return the correct root path (ocaml/dune#6380, fixes ocaml/dune#6379, @esope) - Introduce a `$ dune ocaml top-module` subcommand to load modules directly without sealing them behind the signature. (ocaml/dune#5940, @rgrinberg) - [ctypes] do not mangle user written names in the ctypes stanza (ocaml/dune#6374, fixes ocaml/dune#5561, @rgrinberg) - Support `CLICOLOR` and `CLICOLOR_FORCE` to enable/disable/force ANSI colors. (ocaml/dune#6340, fixes ocaml/dune#6323, @MisterDA). - Forbid private libraries with `(package ..)` set from depending on private libraries that don't belong to a package (ocaml/dune#6385, fixes ocaml/dune#6153, @rgrinberg) - Allow `Byte_complete` binaries to be installable (ocaml/dune#4873, @AltGr, @rgrinberg) - Revive `$ dune external-lib-deps` under `$ dune describe external-lib-deps`. (ocaml/dune#6045, @moyodiallo) - Fix running inline tests in bytecode mode (ocaml/dune#5622, fixes ocaml/dune#5515, @dariusf) - [ctypes] always re-run `pkg-config` because we aren't tracking its external dependencies (ocaml/dune#6052, @rgrinberg) - [ctypes] remove dependency on configurator in the generated rules (ocaml/dune#6052, @rgrinberg) - Build progress status now shows number of failed jobs (ocaml/dune#6242, @Alizter) - Allow absolute build directories to find public executables. For example, those specified with `(deps %{bin:...})` (ocaml/dune#6326, @anmonteiro) - Create a fake socket file `_build/.rpc/dune` on windows to allow rpc clients to connect using the build directory. (ocaml/dune#6329, @rgrinberg) - Prevent crash if absolute paths are used in the install stanza and in recursive globs. These cases now result in a user error. (ocaml/dune#6331, @gridbugs) - Add `(glob_files <glob>)` and `(glob_files_rec <glob>)` terms to the `files` field of the `install` stanza (ocaml/dune#6250, closes ocaml/dune#6018, @gridbugs) - Allow `:standard` in the `(modules)` field of the `coq.pp` stanza (ocaml/dune#6229, fixes ocaml/dune#2414, @Alizter) - Fix passing of flags to dune coq top (ocaml/dune#6369, fixes ocaml/dune#6366, @Alizter) - Extend the promotion CLI to a `dune promotion` group: `dune promote` is moved to `dune promotion apply` (the former still works) and the new `dune promotion diff` command can be used to just display the promotion without applying it. (ocaml/dune#6160, fixes ocaml/dune#5368, @emillon)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello all!
I've noticed that alcotest, the colorful test framework, doesn't show colors when run in CI (ocaml-ci or setup-ocaml in GitHub Actions). The culprit is that both CI systems run
dune runtest
, which removes ANSI escape sequences. A solution could be to run dune using--no-buffer
. This won't write the tests logs to a file, but I think we don't care too much about that since users usually look at the log feed produced and don't extract the log files as artifacts from the CI run (in ocaml-ci that's not possible, with GHA this is possible with additional scripting). So, defaulting to--no-buffer
seems sensible, but the manual page advices to use-j 1
to avoid interleaved output of parallel commands (and use the--verbose
flag too, but that's less of a concern). It's a performance problem for me to disable parallelism.Could it be possible to have the cake and eat it too? A buffered mode for Dune so that parallel command outputs are not interleaved and we can still have parallelism, that would act as a pass-through for ANSI escape codes?
For instance in Irmin there's always
(run %{exe:test.exe} -q --color=always)
in Dune stanzas, so people try to force colors (Alcotest already outputs them because ofINSIDE_DUNE
) butdune runtest
removes them.Furthermore, if I mock
isatty
to return false, tweak the action stanza with :and run
the output has (escaped) ANSI sequences, but run (unescaped) without
hexdump -C
they're suppressed by dune.This is apparently controlled by
Ansi_colors.strip
. Could we add another escape hatch to prevent Dune from stripping the colors?The text was updated successfully, but these errors were encountered: