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

Add (locks) to (mdx) stanza #5628

Merged
merged 1 commit into from
May 13, 2022
Merged

Add (locks) to (mdx) stanza #5628

merged 1 commit into from
May 13, 2022

Conversation

emillon
Copy link
Collaborator

@emillon emillon commented Apr 27, 2022

This adds a (locks) field to the mdx stanza. This field is versioned against the extension.

@rgrinberg
Copy link
Member

Should we version against dune lang or the mdx extension?

What's the argument of vendoring it against dune's lang? To me doing it against the extension is the most natural option.

@rgrinberg
Copy link
Member

Tests are a bit flaky for now - find a better strategy?

IMO, it's not so important to test the implementation of locks at this PR. We use the same implementation of locks for all actions, so the existing locks tests cover lock functionality fairly well. And if those tests are deemed insufficient, I'd rather us work on making those sufficient than adding more redundant tests.

@emillon emillon linked an issue Apr 28, 2022 that may be closed by this pull request
@emillon
Copy link
Collaborator Author

emillon commented Apr 28, 2022

Agree about the locks - I changed it to test just the parsing parts.
As for versioning, there are already a couple of fields versioned against dune lang (such as (package)). But I think that the mdx stanza is getting more stable so we should merge that back into dune lang and make that not experimental anymore.

@emillon emillon force-pushed the mdx-stanza-locks branch 3 times, most recently from 735addb to f5ac1ee Compare May 13, 2022 14:12
@emillon emillon marked this pull request as ready for review May 13, 2022 14:12
@emillon emillon requested a review from christinerose as a code owner May 13, 2022 14:12
@emillon emillon requested a review from rgrinberg May 13, 2022 14:12
@emillon emillon added this to the 3.2.0 milestone May 13, 2022
and+ locks =
field "locks"
(Dune_lang.Syntax.since syntax (0, 3)
>>> repeat String_with_vars.decode)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to share all the locks field related stuff between the stanzas. At least the field decoder for example

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK I'll try something!

@emillon
Copy link
Collaborator Author

emillon commented May 13, 2022

I changed my mind about the versioning and went back to the extension. You're right, that's the one that makes the most sense. I also checked on RWO and adding the locks makes the race go away as expected.

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 emillon force-pushed the mdx-stanza-locks branch from e58d4e3 to fac0a4e Compare May 13, 2022 16:11
@emillon emillon merged commit 9783f3f into ocaml:main May 13, 2022
@emillon emillon deleted the mdx-stanza-locks branch May 13, 2022 16:17
rgrinberg added a commit to rgrinberg/opam-repository that referenced this pull request 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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

locks support for (mdx) stanza
2 participants