Missing dependency file after upgrading lang dune above 2.9


I have a custom test in my code base that is defined this way:

 (names test_json_parsing)
 (libraries yojson stork test_utils)
  (glob_files *.json))
  (:standard -linkall -g -open StdLabels -w +A-48-42-40-70)))

It worked without problem before but since I upgraded lang dune from 2.9 to 3.3, it complains with the following error:

File "test/single_version/dune", line 18, characters 8-25:
18 |  (names test_json_parsing)
Fatal error: exception Sys_error("single_version_1.json: No such file or directory")

Did dune change the way dependency files are supposed to be defined?

Thanks for your help

edit: updated with my findings, this issue is related to lang dune and not dune version itself.

There have been changes in the sandboxing mechanism (how files are copied in a temporary directory) but I don’t think that it should change how this particular dune file is interpreted. It looks correct to me. In other words, I think that it’s a dune bug. Can you report it here? Thanks!

1 Like

ok thanks, I’ll file an issue, it’s an open source project anyway so there’s no problem in sharing the context.

edit: filed here

For information, I think I narrowed down the issue, it’s not really because I upgraded dune but because I updated lang dune in dune-project from 2.9. to 3.3. Keeping it at 2.9 makes it work even with dune 3.3.1.

I’ve seen that it changes the generated opam file and adds options about --create-install-files, or --promote-install-files in the build command, maybe it’s related.

for the records, this is fixed in dune 3.4