1DUNE-DESCRIBE(1)                  Dune Manual                 DUNE-DESCRIBE(1)
2
3
4

NAME

6       dune-describe - Describe the workspace.
7

SYNOPSIS

9       dune describe [COMMAND] …
10

DESCRIPTION

12       Describe what is in the current workspace in either human or machine
13       readable form. By default, this command output a human readable
14       description of the current workspace. This output is aimed at human and
15       is not suitable for machine processing. In particular, it is not
16       versioned. If you want to interpret the output of this command from a
17       program, you must use the --format option to specify a machine readable
18       format as well as the --lang option to get a stable output.
19

COMMANDS

21       aliases [OPTION]… [DIR]…
22           Print aliases in a given directory. Works similalry to ls.
23
24       env [OPTION]… [PATH]
25           Print the environment of a directory
26
27       external-lib-deps [OPTION]…
28           Print out external libraries needed to build the project. It's an
29           approximated set of libraries.
30
31       installed-libraries [OPTION]…
32           Print out libraries installed on the system.
33
34       opam-files [OPTION]…
35           Print information about the opam files that have been discovered.
36
37       package-entries [OPTION]…
38           prints information about the entries per package
39
40       pp [OPTION]… FILE
41           Build a given FILE and print the preprocessed output.
42
43       rules [OPTION]… [TARGET]…
44           Dump rules.
45
46       targets [OPTION]… [DIR]…
47           Print targets in a given directory. Works similalry to ls.
48
49       workspace [OPTION]… [DIRS]…
50           Print a description of the workspace's structure. If some
51           directories DIRS are provided, then only those directories of the
52           workspace are considered.
53

ARGUMENTS

55       DIRS
56           prints a description of the workspace's structure. If some
57           directories DIRS are provided, then only those directories of the
58           workspace are considered.
59

OPTIONS

61       --action-stderr-on-success=VAL
62           Same as --action-stdout-on-success but for the standard output for
63           error messages. A good default for large mono-repositories is
64           --action-stdout-on-success=swallow
65           --action-stderr-on-success=must-be-empty. This ensures that a
66           successful build has a "clean" empty output.
67
68       --action-stdout-on-success=VAL
69           Specify how to deal with the standard output of actions when they
70           succeed. Possible values are: print to just print it to Dune's
71           output, swallow to completely ignore it and must-be-empty to
72           enforce that the action printed nothing. With must-be-empty, Dune
73           will consider that the action failed if it printed something to its
74           standard output. The default is print.
75
76       --build-info
77           Show build information.
78
79       --context=CONTEXT (absent=default)
80           Build context to use.
81
82       --display-separate-messages
83           Separate error messages with a blank line.
84
85       --error-reporting=VAL (absent=deterministic)
86           Controls when the build errors are reported. early - report errors
87           as soon as they are discovered. deterministic - report errors at
88           the end of the build in a deterministic order. twice - report each
89           error twice: once as soon as the error is discovered and then again
90           at the end of the build, in a deterministic order.
91
92       -f, --force
93           Force actions associated to aliases to be re-executed even if their
94           dependencies haven't changed.
95
96       --file-watcher=VAL (absent=automatic)
97           Mechanism to detect changes in the source. Automatic to make dune
98           run an external program to detect changes. Manual to notify dune
99           that files have changed manually."
100
101       --format=FORMAT (absent=sexp)
102           FORMAT must be either sexp or csexp
103
104       --lang=VERSION (absent=0.1)
105           Behave the same as this version of Dune.
106
107       --passive-watch-mode
108           Similar to [--watch], but only start a build when instructed
109           externally by an RPC.
110
111       --react-to-insignificant-changes
112           react to insignificant file system changes; this is only useful for
113           benchmarking dune
114
115       --sandbox=VAL (absent DUNE_SANDBOX env)
116           Sandboxing mode to use by default. Some actions require a certain
117           sandboxing mode, so they will ignore this setting. The allowed
118           values are: none, symlink, copy, hardlink.
119
120       --sanitize-for-tests
121           Sanitize the absolute paths in workspace items, and the associated
122           UIDs, so that the output is reproducible.
123
124       -w, --watch
125           Instead of terminating build after completion, wait continuously
126           for file changes.
127
128       --wait-for-filesystem-clock
129           Dune digest file contents for better incrementally. These digests
130           are themselves cached. In some cases, Dune needs to drop some
131           digest cache entries in order for things to be reliable. This
132           option makes Dune wait for the file system clock to advance so that
133           it doesn't need to drop anything. You should probably not care
134           about this option; it is mostly useful for Dune developers to make
135           Dune tests of the digest cache more reproducible.
136
137       --with-deps
138           Whether the dependencies between modules should be printed.
139
140       --with-pps
141           Whether the dependencies towards ppx-rewriters (that are called at
142           compile time) should be taken into account.
143

COMMON OPTIONS

145       These options are common to all commands.
146
147       --always-show-command-line
148           Always show the full command lines of programs executed by dune
149
150       --auto-promote
151           Automatically promote files. This is similar to running dune
152           promote after the build.
153
154       --build-dir=FILE (absent DUNE_BUILD_DIR env)
155           Specified build directory. _build if unspecified
156
157       --cache=VAL (absent DUNE_CACHE env)
158           Enable or disable Dune cache (either enabled or disabled). Default
159           is `disabled'.
160
161       --cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
162           Check build reproducibility by re-executing randomly chosen rules
163           and comparing their results with those stored in Dune cache. Note:
164           by increasing the probability of such checks you slow down the
165           build. The default probability is zero, i.e. no rules are checked.
166
167       --cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
168           Dune cache storage mode (one of auto, hardlink or copy). Default is
169           `auto'.
170
171       --config-file=FILE
172           Load this configuration file instead of the default one.
173
174       --debug-artifact-substitution
175           Print debugging info about artifact substitution
176
177       --debug-backtraces
178           Always print exception backtraces.
179
180       --debug-cache=VAL
181           Show debug messages on cache misses for the given cache layers.
182           Value is a comma-separated list of cache layer names. All available
183           cache layers: shared,workspace-local,fs.
184
185       --debug-dependency-path
186           In case of error, print the dependency path from the targets on the
187           command line to the rule that failed.
188
189       --debug-digests
190           Explain why Dune decides to re-digest some files
191
192       --debug-load-dir
193           Print debugging info about directory loading
194
195       --debug-store-digest-preimage
196           Store digest preimage for all computed digests, so that it's
197           possible to reverse them later, for debugging. The digests are
198           stored in the shared cache (see --cache flag) as values, even if
199           cache is otherwise disabled. This should be used only for
200           debugging, since it's slow and it litters the shared cache.
201
202       --default-target=TARGET (absent=@@default)
203           Set the default target that when none is specified to dune build.
204
205       --diff-command=VAL (absent DUNE_DIFF_COMMAND env)
206           Shell command to use to diff files. Use - to disable printing the
207           diff.
208
209       --disable-promotion (absent DUNE_DISABLE_PROMOTION env)
210           Disable all promotion rules
211
212       --display=MODE
213           Control the display mode of Dune. See dune-config(5) for more
214           details. Valid values for this option are progress, verbose, short,
215           quiet or tui.
216
217       --dump-gc-stats=FILE
218           Dump the garbage collector stats to a file after the build is
219           complete.
220
221       --dump-memo-graph=FILE
222           Dumps the dependency graph to a file after the build is complete
223
224       --dump-memo-graph-format=FORMAT (absent=gexf)
225           File format to be used when dumping dependency graph
226
227       --dump-memo-graph-with-timing
228           With --dump-memo-graph, will re-run each cached node in the Memo
229           graph after building and include the runtime in the output. Since
230           all nodes contain a cached value, this will measure just the
231           runtime of each node
232
233       --help[=FMT] (default=auto)
234           Show this help in format FMT. The value FMT must be one of auto,
235           pager, groff or plain. With auto, the format is pager or plain
236           whenever the TERM env var is dumb or undefined.
237
238       --ignore-promoted-rules
239           Ignore rules with (mode promote), except ones with (only ...). The
240           variable %{ignoring_promoted_rules} in dune files reflects whether
241           this option was passed or not.
242
243       --instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
244           "Enable instrumentation by BACKENDS. BACKENDS is a comma-separated
245           list of library names, each one of which must declare an
246           instrumentation backend.
247
248       -j JOBS
249           Run no more than JOBS commands simultaneously.
250
251       --no-buffer
252           Do not buffer the output of commands executed by dune. By default
253           dune buffers the output of subcommands, in order to prevent
254           interleaving when multiple commands are executed in parallel.
255           However, this can be an issue when debugging long running tests.
256           With --no-buffer, commands have direct access to the terminal. Note
257           that as a result their output won't be captured in the log file.
258           You should use this option in conjunction with -j 1, to avoid
259           interleaving. Additionally you should use --verbose as well, to
260           make sure that commands are printed before they are being executed.
261
262       --no-config
263           Do not load the configuration file
264
265       --no-print-directory
266           Suppress "Entering directory" messages
267
268       --only-packages=PACKAGES
269           Ignore stanzas referring to a package that is not in PACKAGES.
270           PACKAGES is a comma-separated list of package names. Note that this
271           has the same effect as deleting the relevant stanzas from dune
272           files. It is mostly meant for releases. During development, it is
273           likely that what you want instead is to build a particular
274           <package>.install target.
275
276       -p PACKAGES, --for-release-of-packages=PACKAGES (required)
277           Shorthand for --release --only-packages PACKAGE. You must use this
278           option in your <package>.opam files, in order to build only what's
279           necessary when your project contains multiple packages as well as
280           getting reproducible builds.
281
282       --print-metrics
283           Print out various performance metrics after every build
284
285       --profile=VAL (absent DUNE_PROFILE env)
286           Select the build profile, for instance dev or release. The default
287           is dev.
288
289       --promote-install-files[=VAL] (default=true)
290           Promote the generated <package>.install files to the source tree
291
292       --release
293           Put dune into a reproducible release mode. This is in fact a
294           shorthand for --root . --ignore-promoted-rules --no-config
295           --profile release --always-show-command-line
296           --promote-install-files --default-target @install
297           --require-dune-project-file. You should use this option for release
298           builds. For instance, you must use this option in your
299           <package>.opam files. Except if you already use -p, as -p implies
300           this option.
301
302       --require-dune-project-file[=VAL] (default=true)
303           Fail if a dune-project file is missing.
304
305       --root=DIR
306           Use this directory as workspace root instead of guessing it. Note
307           that this option doesn't change the interpretation of targets given
308           on the command line. It is only intended for scripts.
309
310       --store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
311           Store original source location in dune-package metadata
312
313       --terminal-persistence=MODE
314           Changes how the log of build results are displayed to the console
315           between rebuilds while in --watch mode. Supported modes: preserve,
316           clear-on-rebuild, clear-on-rebuild-and-flush-history.
317
318       --trace-extended
319           Output extended trace data (requires trace-file)
320
321       --trace-file=FILE
322           Output trace data in catapult format (compatible with
323           chrome://tracing)
324
325       --verbose
326           Same as --display verbose
327
328       --version
329           Show version information.
330
331       --watch-exclusions=REGEX
332           Adds a POSIX regular expression that will exclude matching
333           directories from `dune build --watch`. The option
334           --watch-exclusions can be repeated to add multiple exclusions.
335           Semicolons can be also used as a separator. If no exclusions are
336           provided, then a standard set of exclusions is used; however, if
337           one or more --watch-exclusions are used, none of the standard
338           exclusions are used. The standard exclusions are: ^_opam /_opam
339           ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$
340           /.git /.hg :/windows
341
342       --workspace=FILE (absent DUNE_WORKSPACE env)
343           Use this specific workspace file instead of looking it up.
344
345       -x VAL
346           Cross-compile using this toolchain.
347

MORE HELP

349       Use `dune COMMAND --help' for help on a single command.
350

EXIT STATUS

352       describe exits with the following status:
353
354       0   on success.
355
356       1   if an error happened.
357
358       130 if it was interrupted by a signal.
359

ENVIRONMENT

361       These environment variables affect the execution of describe:
362
363       DUNE_BUILD_DIR
364           Specified build directory. _build if unspecified
365
366       DUNE_CACHE
367           Enable or disable Dune cache (either enabled or disabled). Default
368           is `disabled'.
369
370       DUNE_CACHE_CHECK_PROBABILITY
371           Check build reproducibility by re-executing randomly chosen rules
372           and comparing their results with those stored in Dune cache. Note:
373           by increasing the probability of such checks you slow down the
374           build. The default probability is zero, i.e. no rules are checked.
375
376       DUNE_CACHE_STORAGE_MODE
377           Dune cache storage mode (one of auto, hardlink or copy). Default is
378           `auto'.
379
380       DUNE_DIFF_COMMAND
381           Shell command to use to diff files. Use - to disable printing the
382           diff.
383
384       DUNE_DISABLE_PROMOTION
385           Disable all promotion rules
386
387       DUNE_INSTRUMENT_WITH
388           "Enable instrumentation by BACKENDS. BACKENDS is a comma-separated
389           list of library names, each one of which must declare an
390           instrumentation backend.
391
392       DUNE_PROFILE
393           Build profile. dev if unspecified or release if -p is set.
394
395       DUNE_SANDBOX
396           Sandboxing mode to use by default. (see --sandbox)
397
398       DUNE_STORE_ORIG_SOURCE_DIR
399           Store original source location in dune-package metadata
400
401       DUNE_WORKSPACE
402           Use this specific workspace file instead of looking it up.
403

BUGS

405       Check bug reports at https://github.com/ocaml/dune/issues
406

SEE ALSO

408       dune(1)
409
410
411
412Dune n/a                                                      DUNE-DESCRIBE(1)
Impressum