Subject: [bug#64249] [PATCH v9 15/34] gnu: Add ocaml-ppx-stable-witness.

From: Julien Lepiller <[email-masked]>
Date: Wed, 10 Jan 2024 08:43:16 +0100

* gnu/packages/ocaml.scm (ocaml-ppx-stable-witness): New variable.
---
 gnu/packages/ocaml.scm | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 56ef2abcfe..062bef401a 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -6467,6 +6467,30 @@ (define-public ocaml-ppx-custom-printf
 string conversion.")
     (license license:asl2.0)))
 
+(define-public ocaml-ppx-stable-witness
+  (package
+    (name "ocaml-ppx-stable-witness")
+    (version "0.16.0")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/janestreet/ppx_stable_witness")
+               (commit (string-append "v" version))))
+        (file-name (git-file-name name version))
+        (sha256
+          (base32 "1ppmazy1vw0j44z1p60ln6fddz414zmyrqkpi54w6cr93giqsl2v"))))
+    (build-system dune-build-system)
+    (propagated-inputs (list ocaml-base ocaml-ppxlib))
+    (properties `((upstream-name . "ppx_stable_witness")))
+    (home-page "https://github.com/janestreet/ppx_stable_witness")
+    (synopsis "Mark a type as stable across versions")
+    (description "This ppx extension is used for deriving a witness that a
+type is intended to be stable.  In this context, stable means that the
+serialization format will never change.  This allows programs running at
+different versions of the code to safely communicate.")
+    (license license:expat)))
+
 (define-public ocaml-bin-prot
   (package
     (name "ocaml-bin-prot")
-- 
2.41.0