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

locks support for (mdx) stanza #5489

Closed
emillon opened this issue Feb 25, 2022 · 0 comments · Fixed by #5628 or ocaml/opam-repository#21380
Closed

locks support for (mdx) stanza #5489

emillon opened this issue Feb 25, 2022 · 0 comments · Fixed by #5628 or ocaml/opam-repository#21380
Assignees

Comments

@emillon
Copy link
Collaborator

emillon commented Feb 25, 2022

Hi,

At the moment there is no way to add a lock to a (mdx) stanza.

The context is realworldocaml/book#3566 - more precisely mdx can invoke external commands (dune in this particular case) and it would be useful to serialize these executions.

The syntax and semantics would be straightforward:

(mdx
  (locks ...)
  ...)

would propagate the list of locks to the rule that runs ocaml-mdx test (or the mdx driver). The stanza generates other rules (one for ocaml-mdx deps, one for ocaml-mdx dune-gen and a diff action) but those should not be affected by this and can remain unlocked.

@emillon emillon self-assigned this Feb 25, 2022
emillon added a commit to emillon/dune that referenced this issue Apr 27, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against dune lang (not the extension). Tests are a bit flaky for now.

Closes: ocaml#5489
Signed-off-by: Etienne Millon <[email protected]>
@emillon emillon linked a pull request Apr 28, 2022 that will close this issue
emillon added a commit to emillon/dune that referenced this issue Apr 28, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against dune lang (not the extension). Tests are a bit flaky for now.

Closes: ocaml#5489
Signed-off-by: Etienne Millon <[email protected]>
emillon added a commit to emillon/dune that referenced this issue May 13, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against dune lang (not the extension). Tests are a bit flaky for now.

Closes: ocaml#5489
Signed-off-by: Etienne Millon <[email protected]>
emillon added a commit to emillon/dune that referenced this issue May 13, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against the extension.

Closes ocaml#5489

Signed-off-by: Etienne Millon <[email protected]>
emillon added a commit to emillon/dune that referenced this issue May 13, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against the extension.

Closes ocaml#5489

Signed-off-by: Etienne Millon <[email protected]>
emillon added a commit to emillon/dune that referenced this issue May 13, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against the extension.

Closes ocaml#5489

Signed-off-by: Etienne Millon <[email protected]>
emillon added a commit that referenced this issue May 13, 2022
This adds a (locks) field to the mdx stanza. This field is versioned
against the extension.

Closes #5489

Signed-off-by: Etienne Millon <[email protected]>
rgrinberg added a commit to rgrinberg/opam-repository that referenced this issue May 17, 2022
…ne-site, dune-rpc, dune-rpc-lwt, dune-private-libs, dune-glob, dune-configurator, dune-build-info, dune-action-plugin and chrome-trace (3.2.0)

CHANGES:

- Fixed ``dune describe workspace --with-deps`` so that it correctly
  handles Reason files, as well as files any other dialect. (ocaml/dune#5701, @esope)

- Disable alerts when compiling code in vendored directories (ocaml/dune#5683,
  @NathanReb)

- Fixed ``dune describe --with-deps``, that crashed when some
  preprocessing was required in a dune file using ``per_module``.
  (ocaml/dune#5682, fixes ocaml/dune#5680, @esope)

- Add `$ dune describe pp` to print the preprocssed ast of sources. (ocaml/dune#5615,
  fixes ocaml/dune#4470, @cannorin)

- Report dune file evaluation errors concurrently. In the same way we report
  build errors. (ocaml/dune#5655, @rgrinberg)

- Watch mode now default to clearing the terminal on rebuild (ocaml/dune#5636, fixes,
  ocaml/dune#5216, @rgrinberg)

- The output of jobs that finished but were cancelled is now omitted. (ocaml/dune#5631,
  fixes ocaml/dune#5482, @rgrinberg)

- Allows to configure all the default destination directories with `./configure`
  (adds `bin`, `sbin`, `data`, `libexec`). Use `OPAM_SWITCH_PREFIX` instead of
  calling the `opam` binaries in `dune install`. Fix handling of multiple
  `libdir` in `./configure` for handling `/usr/lib/ocaml/` and
  `/usr/local/lib/ocaml`. In `dune install` forbid relative directories in
  `libdir`, `docdir` and others specific directory setting because their handling
  was inconsistent (ocaml/dune#5516, fixes ocaml/dune#3978 and ocaml/dune#5455, @bobot)

- `--terminal-persistence=clear-on-rebuild` will no longer destroy scrollback
  on some terminals (ocaml/dune#5646, @rgrinberg)

- Add a fmt command as a shortcut of `dune build @fmt --auto-promote` (ocaml/dune#5574,
  @tmattio)

- Watch mode now tracks copied external files, external directories for
  dependencies, dune files in OCaml syntax, files used by `include` stanzas,
  dune-project, opam files, libraries builtin with compiler, and foreign
  sources (ocaml/dune#5627, ocaml/dune#5645, ocaml/dune#5652, ocaml/dune#5656, ocaml/dune#5672, ocaml/dune#5691, ocaml/dune#5722, fixes ocaml/dune#5331,
  @rgrinberg)

- Improve metrics for cram tests. Include test names in the event and add a
  category for cram tests (ocaml/dune#5626, @rgrinberg)

- Allow specifying multiple licenses in project file (ocaml/dune#5579, fixes ocaml/dune#5574,
  @liyishuai)

- Match `glob_files` only against files in external directories (ocaml/dune#5614, fixes
  ocaml/dune#5540, @rgrinberg)

- Add pid's to chrome trace output (ocaml/dune#5617, @rgrinberg)

- Fix race when creating local cache directory (ocaml/dune#5613, fixes ocaml/dune#5461, @rgrinberg)

- Add `not` to boolean expressions (ocaml/dune#5610, fix ocaml/dune#5503, @rgrinberg)

- Fix relative dependencies outside the workspace (ocaml/dune#4035, fixes ocaml/dune#5572, @bobot)

- Allow to specify `--prefix` via the environment variable
  `DUNE_INSTALL_PREFIX` (ocaml/dune#5589, @vapourismo)

- Dune-site.plugin: add support for `archive(native|byte, plugin)` used in the
  wild before findlib documented `plugin(native|byte)` in 2015 (ocaml/dune#5518, @bobot)

- Fix a bug where Dune would not correctly interpret `META` files in alternative
  layout (ie when the META file is named `META.$pkg`). The `Llvm` bindings were
  affected by this issue. (ocaml/dune#5619, fixes ocaml/dune#5616, @nojb)

- Support `(binaries)` in `(env)` in dune-workspace files (ocaml/dune#5560, fix ocaml/dune#5555,
  @emillon)

- (mdx) stanza: add support for (locks). (ocaml/dune#5628, fixes ocaml/dune#5489, @emillon)

- (mdx) stanza: support including files in different directories using relative
  paths, and provide better error messages when paths are invalid (ocaml/dune#5703, ocaml/dune#5704,
  fixes ocaml/dune#5596, @emillon)

- Fix ctypes rules for external lib names which aren't valid ocaml names
  (ocaml/dune#5667, fixes ocaml/dune#5511, @Khady)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment