Skip to content

error message on failing copy action is unclear #11506

Open
@Khady

Description

@Khady

To be fair this issue is visible because the rule wasn't written properly. There was no need for a with-stdout-to. But I suppose it can happen in other condition and the lack of details in the error message is really confusing.

Expected Behavior

dune should report exactly which action/command is creating an error.

~/Code/github/dune-demo/dune-empty-stdout-error$ cat dune
(rule (target f.json) (action (with-stdout-to %{target} (copy sub/file.json f.json))))
~/Code/github/dune-demo/dune-empty-stdout-error$ dune build
Error: open(_build/default/f.json): Permission denied
(rule (target f.json) (action (with-stdout-to %{target} (copy sub/file.json f.json))))
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-> required by _build/default/f.json
-> required by alias all
-> required by alias default

Actual Behavior

The error message makes it hard to pinpoint exactly what rule and part of a rule is creating an error.

~/Code/github/dune-demo/dune-empty-stdout-error$ cat dune
(rule (target f.json) (action (with-stdout-to %{target} (copy sub/file.json f.json))))
~/Code/github/dune-demo/dune-empty-stdout-error$ dune build
Error: open(_build/default/f.json): Permission denied
-> required by _build/default/f.json
-> required by alias all
-> required by alias default

Here it's not clear if it's with-stdout-to or copy which fails (I'm guessing on copy but 🤷)

Reproduction

https://github.com/Khady/dune-demo/tree/master/dune-empty-stdout-error

Specifications

  • Version of dune (output of dune --version): 3.17
  • Version of ocaml (output of ocamlc --version): 5.2
  • Operating system (distribution and version): debian

Metadata

Metadata

Assignees

No one assigned

    Labels

    cliCommand line relatedopen-to-contributionExternal contributors are welcomed to do a PR to solve the issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions