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

Reply via email to