ocaml / dune

A composable build system for OCaml.
https://dune.build/
MIT License
1.6k stars 397 forks source link

Watermarking works only in the GIT root, not dune root #1593

Open pdonadeo opened 5 years ago

pdonadeo commented 5 years ago

I'm having problems with dune subst. The documentation states that subst only occurs in the root of the project which should be, in my understanding, the directory where "dune-workspace" or "dune-project" reside.

But in the source code the test is against ".git", which is preventing to structure a GIT repository in subfolders.

In particular in my project I have several components (OCaml of course, but also a Django web app and more) and the OCaml part has its own subfolder.

Is this behavior the intended one or is it a bug?

ghost commented 5 years ago

Originally, it was matching the behavior of topkg. IIRC, you have a project composed of several git repositories and you would like dune subst to rewrite everything. Is that correct?

pdonadeo commented 5 years ago

@diml I have a single GIT repository with several folder inside, something like this:

.
├── .git ⇐ This one is the root for GIT
├── isybox
│   ├── daemon ⇐ This one is an OPAM/dune project
│   ├── Documentation
│   ├── System
│   └── webapp
└── isycloud
    ├── isycloud
    └── site

In this moment if I cd isybox/daemon both opam install . and opam pin . work as expected: the project is built and installed (and pinned in the second case) in the current OPAM prefix, but no substitutions are performed.

Ideally (at least for me) dune subst should do its job, because the dir isybox/daemon is a root for dune or at least dune-project is present there.

ghost commented 5 years ago

Yes, that makes sense and that seems like a good improvement.