Skip to content
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

dune shouldn't require dependencies to be installed in order to run @fmt #8630

Closed
edwintorok opened this issue Sep 12, 2023 · 0 comments · Fixed by #8948
Closed

dune shouldn't require dependencies to be installed in order to run @fmt #8630

edwintorok opened this issue Sep 12, 2023 · 0 comments · Fixed by #8948
Labels

Comments

@edwintorok
Copy link
Contributor

Desired Behavior

dune build @fmt should succeed even when using the site stanza in install.

Example

Here is an example of the failure:
https://ocaml.ci.dev/github/edwintorok/lintcstubs/commit/8db4abc2ae1f8c579940a6a98940a41419a7aca0/variant/%28lint-fmt%29

It is caused by this stanza in dune:

(install
 (section
  (site
   (goblint lib_stub_src)))
 (files ocaml_runtime.model.c)
 (package lintcstubs))

Which causes dune to fail when goblint is not installed.

dune shouldn't make that a hard failure unless it actually wants to run the install rule (which it shouldn't need to for @fmt).

P.S.: for setup-ocaml based CIs this can be worked around by explicitly installing goblint before running @fmt, but to reduce time spent it may be desirable to avoid the installation of unnecessary packages.

@rgrinberg rgrinberg added the bug label Sep 18, 2023
rgrinberg added a commit that referenced this issue Oct 15, 2023
Demonstrate that looking up a package breaks rule loading in the entire
directory.

Signed-off-by: Rudi Grinberg <[email protected]>

<!-- ps-id: 3acfde16-8547-4bc4-9aa5-bef4926acdae -->
rgrinberg added a commit that referenced this issue Oct 15, 2023
Demonstrate that looking up a package breaks rule loading in the entire
directory.

Signed-off-by: Rudi Grinberg <[email protected]>
emillon added a commit to emillon/opam-repository that referenced this issue Nov 28, 2023
CHANGES:

- Introduce `$ dune ocaml doc` to open and browse documentation. (ocaml/dune#7262, fixes
  ocaml/dune#6831, @EmileTrotignon)

- `dune cache trim` now accepts binary byte units: `KiB`, `MiB`, etc. (ocaml/dune#8618,
  @Alizter)

- No longer force colors for OCaml 4.03 and 4.04 (ocaml/dune#8778, @rgrinberg)

- Introduce new experimental odoc rules (ocaml/dune#8803, @jonjudlam)

- Introduce the `runtest_alias` field to the `cram` stanza. This allows
  removing default `runtest` alias from tests. (@rgrinberg, ocaml/dune#8887)

- Do not ignore libraries named `bigarray` when they are defined in conjunction
  with OCaml 5.0 (ocaml/dune#8902, fixes ocaml/dune#8901, @rgrinberg)

- Dependencies in the copying sandbox are now writeable (ocaml/dune#8920, @rgrinberg)

- Absent packages shouldn't prevent all rules from being loaded (ocaml/dune#8948, fixes
  ocaml/dune#8630, @rgrinberg)

- Correctly determine the stanza of menhir modules when `(include_subdirs
  qualified)` is enabled (@rgrinberg, ocaml/dune#8949, fixes ocaml/dune#7610)

- Display cache location in Dune log (ocaml/dune#8974, @nojb)

- Re-run actions whenever `(expand_aliases_in_sandbox)` changes (ocaml/dune#8990,
  @rgrinberg)

- Rules that only use internal dune actions (`write-file`, `echo`, etc.) can
  now be sandboxed. (ocaml/dune#9041, fixes ocaml/dune#8854, @rgrinberg)

- Do not re-run rules when their location changes (ocaml/dune#9052, @rgrinberg)

- Correctly ignore `bigarray` on recent version of OCaml (ocaml/dune#9076, @rgrinberg)

- Add `test_` prefix to default test name in `dune init project` (ocaml/dune#9257, fixes
  ocaml/dune#9131, @9sako6)

- Add `coqdoc_flags` field to `coq` field of `env` stanza allowing the setting
  of workspace-wide defaults for `coqdoc_flags`. (ocaml/dune#9280, fixes ocaml/dune#9139, @Alizter)

- [coq rules] Be more tolerant when coqc --print-version / --config don't work
  properly, and fallback to a reasonable default. This fixes problems when
  building Coq projects with `(stdlib no)` and likely other cases. (ocaml/dune#8966, fix
  ocaml/dune#8958, @Alizter, reported by Lasse Blaauwbroek)

- Dune will now run at a lower framerate of 15 fps rather than 60 when
  `INSIDE_EMACS`. (ocaml/dune#8812, @Alizter)

- dune-build-info: when `version=""` is found in a `META` file, we now return
  `None` as a version string (ocaml/dune#9177, @emillon)

- Dune can now be built and installed on Haiku (ocaml/dune#8795, fix ocaml/dune#8551, @Alizter)

- Mark installed directories in `dune-package` files. This fixes `(package)`
  dependencies against packages that contain such directories. (ocaml/dune#8953, fixes
  ocaml/dune#8915, @emillon)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants