Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ocaml-dune for openSUSE:Factory checked in at 2026-08-11 17:13:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ocaml-dune (Old) and /work/SRC/openSUSE:Factory/.ocaml-dune.new.17972 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ocaml-dune" Tue Aug 11 17:13:52 2026 rev:56 rq:1370534 version:3.24.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ocaml-dune/ocaml-dune.changes 2026-07-31 16:09:23.728787503 +0200 +++ /work/SRC/openSUSE:Factory/.ocaml-dune.new.17972/ocaml-dune.changes 2026-08-11 17:15:20.453482619 +0200 @@ -1,0 +2,6 @@ +Mon Aug 3 03:03:03 UTC 2026 - [email protected] + +- Update to version 3.24.2 + see included CHANGES.md file for details + +------------------------------------------------------------------- Old: ---- ocaml-dune-3.24.1.tar.xz New: ---- ocaml-dune-3.24.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ocaml-dune.spec ++++++ --- /var/tmp/diff_new_pack.uYMNEL/_old 2026-08-11 17:15:21.097509910 +0200 +++ /var/tmp/diff_new_pack.uYMNEL/_new 2026-08-11 17:15:21.101510080 +0200 @@ -25,7 +25,7 @@ %define pkg ocaml-dune %global _buildshell /bin/bash Name: %pkg%nsuffix -Version: 3.24.1 +Version: 3.24.2 Release: 0 %{?ocaml_preserve_bytecode} License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.uYMNEL/_old 2026-08-11 17:15:21.165512791 +0200 +++ /var/tmp/diff_new_pack.uYMNEL/_new 2026-08-11 17:15:21.177513300 +0200 @@ -1,7 +1,7 @@ <services> <service name="tar_scm" mode="manual"> <param name="filename">ocaml-dune</param> - <param name="revision">a5d7d322823927dd5d85ae102fd7d442be2f7e66</param> + <param name="revision">ce734ac25ffb06994a4530426bb06ee8cda19e50</param> <param name="scm">git</param> <param name="submodules">disable</param> <param name="url">https://github.com/ocaml/dune.git</param> ++++++ ocaml-dune-3.24.1.tar.xz -> ocaml-dune-3.24.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-dune-3.24.1/CHANGES.md new/ocaml-dune-3.24.2/CHANGES.md --- old/ocaml-dune-3.24.1/CHANGES.md 2026-07-21 09:29:37.000000000 +0200 +++ new/ocaml-dune-3.24.2/CHANGES.md 2026-08-03 12:48:01.000000000 +0200 @@ -1,5 +1,17 @@ <!-- !!! DO NOT EDIT: generated by doc/changes/scripts/build_changelog.sh !!! --> <!-- Contributors: See 'Update the Changelog' in CONTRIBUTING.md. --> +3.24.2 (2026-08-03) +------------------- + +### Fixed + +- Add the implicit `unix` dependency required by MDX 2.6 and later to + generated MDX test executables (#15592, @avsm) + +- Rescan the RPC registry when its directory mtime changes, allowing clients + that poll before Dune registers to discover the new instance (#15634, fixes + #15630, @rgrinberg) + 3.24.1 (2026-07-21) ------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-dune-3.24.1/otherlibs/dune-rpc/registry.ml new/ocaml-dune-3.24.2/otherlibs/dune-rpc/registry.ml --- old/ocaml-dune-3.24.1/otherlibs/dune-rpc/registry.ml 2026-07-21 09:29:37.000000000 +0200 +++ new/ocaml-dune-3.24.2/otherlibs/dune-rpc/registry.ml 2026-08-03 12:48:01.000000000 +0200 @@ -169,11 +169,10 @@ let** (`Mtime mtime) = IO.stat dir in let skip = match t.last_mtime with - | Some last_mtime -> last_mtime <> mtime - | None -> - t.last_mtime <- Some mtime; - false + | Some last_mtime -> last_mtime = mtime + | None -> false in + t.last_mtime <- Some mtime; if skip then Fiber.return (Ok Refresh.empty) else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-dune-3.24.1/src/dune_rules/mdx.ml new/ocaml-dune-3.24.2/src/dune_rules/mdx.ml --- old/ocaml-dune-3.24.1/src/dune_rules/mdx.ml 2026-07-21 09:29:37.000000000 +0200 +++ new/ocaml-dune-3.24.2/src/dune_rules/mdx.ml 2026-08-03 12:48:01.000000000 +0200 @@ -476,7 +476,7 @@ (`Exe Nonempty_list.[ t.loc, name ]) ~allow_overlaps:false ~forbidden_libraries:[] - (lib "mdx.test" :: lib "mdx.top" :: t.libraries) + (lib "mdx.test" :: lib "mdx.top" :: lib "unix" :: t.libraries) ~allow_unused_libraries:[] ~pps:[] ~dune_version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ocaml-dune-3.24.1/test/expect-tests/dune_rpc_e2e/dune_rpc_registry_test.ml new/ocaml-dune-3.24.2/test/expect-tests/dune_rpc_e2e/dune_rpc_registry_test.ml --- old/ocaml-dune-3.24.1/test/expect-tests/dune_rpc_e2e/dune_rpc_registry_test.ml 2026-07-21 09:29:37.000000000 +0200 +++ new/ocaml-dune-3.24.2/test/expect-tests/dune_rpc_e2e/dune_rpc_registry_test.ml 2026-08-03 12:48:01.000000000 +0200 @@ -45,6 +45,70 @@ ())) ;; +let%expect_test "poll skips scans after the registry mtime changes" = + let module IO = struct + let mtime = ref 0.0 + let file : Registry.File.t option ref = ref None + let scans = ref 0 + let stat _ = Fiber.return (Ok (`Mtime !mtime)) + + let scandir _ = + incr scans; + let files = + match !file with + | None -> [] + | Some { Registry.File.path; _ } -> [ Filename.basename path ] + in + Fiber.return (Ok files) + ;; + + let read_file path = + match !file with + | Some { Registry.File.path = registered_path; contents } + when String.equal path registered_path -> Fiber.return (Ok contents) + | None | Some _ -> Fiber.return (Error (Failure path)) + ;; + end + in + let module Poll = Registry.Poll (Fiber) (IO) in + let case () = + let config = + Registry.Config.create + (Xdg.create + ~env:(function + | "XDG_RUNTIME_DIR" -> Some "." + | _ -> None) + ()) + in + let registry = Registry.create config in + let poll description = + let+ result = Poll.poll registry in + match result with + | Error exn -> raise exn + | Ok refresh -> + printfn + "%s: scans=%d added=%d current=%d" + description + !IO.scans + (List.length (Registry.Refresh.added refresh)) + (List.length (Registry.current registry)) + in + let* () = poll "initial" in + let dune = Registry.Dune.create ~where:(`Unix "rpc") ~root:"." ~pid:1 in + let (`Caller_should_write file) = Registry.Config.register config dune in + IO.file := Some file; + IO.mtime := 1.0; + let* () = poll "after change" in + poll "subsequent poll" + in + run case; + [%expect + {| + initial: scans=1 added=0 current=0 + after change: scans=2 added=1 current=1 + subsequent poll: scans=2 added=0 current=1 |}] +;; + let%expect_test "turn on dune watch and wait until the connection is listed" = let case () = let runtime_dir = "_runtime_dir" in
