From 8b3d7e363a6621fe85a22ac434ec4253c700b01a Mon Sep 17 00:00:00 2001 From: Martin Tomazic Date: Mon, 7 Aug 2023 20:34:57 +0200 Subject: [PATCH 1/6] Kaitai: Give a constructor to `NumericType` case --- contrib/kaitai-ocaml/src/types.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib/kaitai-ocaml/src/types.ml b/contrib/kaitai-ocaml/src/types.ml index 1e0f13f456e9..c07e49cac2b4 100644 --- a/contrib/kaitai-ocaml/src/types.ml +++ b/contrib/kaitai-ocaml/src/types.ml @@ -110,7 +110,7 @@ end module DataType = struct (* https://github.com/kaitai-io/kaitai_struct_compiler/blob/master/shared/src/main/scala/io/kaitai/struct/datatype/DataType.scala *) type data_type = - | NumericType + | NumericType of numeric_type | BooleanType | BytesType of bytes_type | StrType of str_type @@ -119,6 +119,8 @@ module DataType = struct and int_width = W1 | W2 | W4 | W8 + and numeric_type = Int_type of int_type | Float_type of float_type + and int_type = | CalcIntType | Int1Type of {signed : bool} -- GitLab From 7a25a664c0afc6015e6b95d8aa823cded29e96e8 Mon Sep 17 00:00:00 2001 From: Martin Tomazic Date: Mon, 7 Aug 2023 21:26:42 +0200 Subject: [PATCH 2/6] Kaitai: `to_yaml` also translates attribute type (unless AnyType) --- contrib/kaitai-ocaml/src/print.ml | 13 ++++++++++++- contrib/kaitai-ocaml/src/types.ml | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/contrib/kaitai-ocaml/src/print.ml b/contrib/kaitai-ocaml/src/print.ml index 91fde364bc67..0b35df9be074 100644 --- a/contrib/kaitai-ocaml/src/print.ml +++ b/contrib/kaitai-ocaml/src/print.ml @@ -84,7 +84,18 @@ let to_yaml (t : ClassSpec.t) = "seq", sequence (t.seq - |> List.map (fun v -> mapping [("id", scalar v.AttrSpec.id)])) ); + |> List.map (fun v -> + mapping + (("id", scalar v.AttrSpec.id) + :: + (* We only add "type" to Yaml if not [AnyType]. + TODO: This is only correct if [AnyType] means no type? *) + (if v.AttrSpec.dataType = AnyType then [] + else + [ + ( "type", + scalar (DataType.to_string v.AttrSpec.dataType) ); + ])))) ); ]) let print t = diff --git a/contrib/kaitai-ocaml/src/types.ml b/contrib/kaitai-ocaml/src/types.ml index c07e49cac2b4..cf7c8821ccc1 100644 --- a/contrib/kaitai-ocaml/src/types.ml +++ b/contrib/kaitai-ocaml/src/types.ml @@ -179,6 +179,11 @@ module DataType = struct } type t = data_type + + let to_string = function + | NumericType (Int_type (Int1Type {signed})) -> + if signed then "s1" else "u1" + | _ -> failwith "not supported" end module DocSpec = struct -- GitLab From 0e9f3438939d52728ac222907a9284c438c90c5f Mon Sep 17 00:00:00 2001 From: Martin Tomazic Date: Mon, 7 Aug 2023 20:21:17 +0200 Subject: [PATCH 3/6] Manifest: Make `kaitai` library public `Kaitai` library has to be public, in order to use it as a dependency inside `kaitai-of-data-encoding. --- .gitlab/ci/jobs/packaging/opam_package.yml | 2 ++ contrib/kaitai-ocaml/src/dune | 1 + dune-project | 1 + manifest/main.ml | 7 ++++++- opam/kaitai.opam | 20 ++++++++++++++++++++ 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 opam/kaitai.opam diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index c92a3456943b..064c964187c2 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -416,6 +416,8 @@ opam:bls12-381: # Ignoring unreleased package internal-devtools. +# Ignoring unreleased package kaitai. + opam:octez-accuser-Proxford: extends: - .opam_template diff --git a/contrib/kaitai-ocaml/src/dune b/contrib/kaitai-ocaml/src/dune index b2b88e8fff05..cf5762d3d40e 100644 --- a/contrib/kaitai-ocaml/src/dune +++ b/contrib/kaitai-ocaml/src/dune @@ -3,6 +3,7 @@ (library (name kaitai) + (public_name kaitai) (instrumentation (backend bisect_ppx)) (libraries yaml)) diff --git a/dune-project b/dune-project index 226c2e8f4f8a..52415fd2cdb9 100644 --- a/dune-project +++ b/dune-project @@ -4,6 +4,7 @@ (using ctypes 0.1) (package (name bls12-381)) (package (name internal-devtools)) +(package (name kaitai)) (package (name octez-accuser-Proxford)) (package (name octez-accuser-PtNairob)) (package (name octez-accuser-alpha)) diff --git a/manifest/main.ml b/manifest/main.ml index 518f9290ab82..ffbe033c3efe 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -7997,7 +7997,12 @@ let octez_scoru_wasm_regressions = ~preprocess:[staged_pps [ppx_import; ppx_deriving_show]] let kaitai = - private_lib ~opam:"" "kaitai" ~path:"contrib/kaitai-ocaml/src" ~deps:[yaml] + public_lib + ~opam:"kaitai" + "kaitai" + ~path:"contrib/kaitai-ocaml/src" + ~deps:[yaml] + ~synopsis:"OCaml library for reading Kaitai spec files" (* We use a private-lib with inline-tests in order to run the tests normally, but without placing all the code for the tests within the main kaitai diff --git a/opam/kaitai.opam b/opam/kaitai.opam new file mode 100644 index 000000000000..0bead736b62f --- /dev/null +++ b/opam/kaitai.opam @@ -0,0 +1,20 @@ +# This file was automatically generated, do not edit. +# Edit file manifest/main.ml instead. +opam-version: "2.0" +maintainer: "contact@tezos.com" +authors: ["Tezos devteam"] +homepage: "https://www.tezos.com/" +bug-reports: "https://gitlab.com/tezos/tezos/issues" +dev-repo: "git+https://gitlab.com/tezos/tezos.git" +license: "MIT" +depends: [ + "dune" { >= "3.0" } + "ocaml" { >= "4.14" } + "yaml" { >= "3.1.0" } +] +build: [ + ["rm" "-r" "vendors" "contrib"] + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +synopsis: "OCaml library for reading Kaitai spec files" -- GitLab From 63c7ef2e42dec4c1dc14b8cbfa9f81fe29ef2454 Mon Sep 17 00:00:00 2001 From: Martin Tomazic Date: Thu, 3 Aug 2023 13:00:48 +0200 Subject: [PATCH 4/6] Manifest: Define `kaitai_of_data_encoding` private library --- .gitlab/ci/jobs/packaging/opam_package.yml | 2 ++ contrib/lib_kaitai_of_data_encoding/dune | 10 +++++++++ contrib/lib_kaitai_of_data_encoding/test/dune | 12 ++++++++++ dune-project | 1 + manifest/main.ml | 19 ++++++++++++++++ opam/kaitai-of-data-encoding.opam | 22 +++++++++++++++++++ 6 files changed, 66 insertions(+) create mode 100644 contrib/lib_kaitai_of_data_encoding/dune create mode 100644 contrib/lib_kaitai_of_data_encoding/test/dune create mode 100644 opam/kaitai-of-data-encoding.opam diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 064c964187c2..87eab65c646a 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -418,6 +418,8 @@ opam:bls12-381: # Ignoring unreleased package kaitai. +# Ignoring unreleased package kaitai-of-data-encoding. + opam:octez-accuser-Proxford: extends: - .opam_template diff --git a/contrib/lib_kaitai_of_data_encoding/dune b/contrib/lib_kaitai_of_data_encoding/dune new file mode 100644 index 000000000000..866581542cca --- /dev/null +++ b/contrib/lib_kaitai_of_data_encoding/dune @@ -0,0 +1,10 @@ +; This file was automatically generated, do not edit. +; Edit file manifest/main.ml instead. + +(library + (name kaitai_of_data_encoding) + (package kaitai-of-data-encoding) + (libraries + yaml + data-encoding + kaitai)) diff --git a/contrib/lib_kaitai_of_data_encoding/test/dune b/contrib/lib_kaitai_of_data_encoding/test/dune new file mode 100644 index 000000000000..d2cf8c0544bf --- /dev/null +++ b/contrib/lib_kaitai_of_data_encoding/test/dune @@ -0,0 +1,12 @@ +; This file was automatically generated, do not edit. +; Edit file manifest/main.ml instead. + +(library + (name kaitai_of_data_encoding_test) + (libraries + yaml + data-encoding + kaitai + kaitai_of_data_encoding) + (inline_tests (flags -verbose) (modes native)) + (preprocess (pps ppx_expect))) diff --git a/dune-project b/dune-project index 52415fd2cdb9..0810ed24876f 100644 --- a/dune-project +++ b/dune-project @@ -5,6 +5,7 @@ (package (name bls12-381)) (package (name internal-devtools)) (package (name kaitai)) +(package (name kaitai-of-data-encoding)(allow_empty)) (package (name octez-accuser-Proxford)) (package (name octez-accuser-PtNairob)) (package (name octez-accuser-alpha)) diff --git a/manifest/main.ml b/manifest/main.ml index ffbe033c3efe..84288d88af08 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -8015,6 +8015,25 @@ let _kaitai_test = ~inline_tests:ppx_expect ~deps:[kaitai] +let kaitai_of_data_encoding = + private_lib + "kaitai_of_data_encoding" + ~opam:"kaitai-of-data-encoding" + ~path:"contrib/lib_kaitai_of_data_encoding" + ~synopsis:"Kaitai spec generator for data-encoding library" + ~deps:[yaml; data_encoding; kaitai] + ~bisect_ppx:No + +let _kaitai_of_data_encoding_test = + private_lib + "kaitai_of_data_encoding_test" + ~opam:"" + ~path:"contrib/lib_kaitai_of_data_encoding/test" + ~synopsis:"Tests for kaitai_of_data_encoding library" + ~deps:[yaml; data_encoding; kaitai; kaitai_of_data_encoding] + ~bisect_ppx:No + ~inline_tests:ppx_expect + (* Add entries to this function to declare that some dune and .opam files are not generated by the manifest on purpose. diff --git a/opam/kaitai-of-data-encoding.opam b/opam/kaitai-of-data-encoding.opam new file mode 100644 index 000000000000..b263d1cd1bd8 --- /dev/null +++ b/opam/kaitai-of-data-encoding.opam @@ -0,0 +1,22 @@ +# This file was automatically generated, do not edit. +# Edit file manifest/main.ml instead. +opam-version: "2.0" +maintainer: "contact@tezos.com" +authors: ["Tezos devteam"] +homepage: "https://www.tezos.com/" +bug-reports: "https://gitlab.com/tezos/tezos/issues" +dev-repo: "git+https://gitlab.com/tezos/tezos.git" +license: "MIT" +depends: [ + "dune" { >= "3.0" } + "ocaml" { >= "4.14" } + "yaml" { >= "3.1.0" } + "data-encoding" { >= "0.7.1" & < "1.0.0" } + "kaitai" +] +build: [ + ["rm" "-r" "vendors" "contrib"] + ["dune" "build" "-p" name "-j" jobs] + ["dune" "runtest" "-p" name "-j" jobs] {with-test} +] +synopsis: "Kaitai spec generator for data-encoding library" -- GitLab From 21fee8aaea11564df839b2f8d5a0a10dbed78a72 Mon Sep 17 00:00:00 2001 From: Martin Tomazic Date: Mon, 7 Aug 2023 02:00:22 +0200 Subject: [PATCH 5/6] Kaitai_of_data_encoding: e2e translation from `uint8` to `u1` --- .../test/test_translation_of_ground_types.ml | 44 ++++++++++ .../lib_kaitai_of_data_encoding/translate.ml | 82 +++++++++++++++++++ .../lib_kaitai_of_data_encoding/translate.mli | 32 ++++++++ 3 files changed, 158 insertions(+) create mode 100644 contrib/lib_kaitai_of_data_encoding/test/test_translation_of_ground_types.ml create mode 100644 contrib/lib_kaitai_of_data_encoding/translate.ml create mode 100644 contrib/lib_kaitai_of_data_encoding/translate.mli diff --git a/contrib/lib_kaitai_of_data_encoding/test/test_translation_of_ground_types.ml b/contrib/lib_kaitai_of_data_encoding/test/test_translation_of_ground_types.ml new file mode 100644 index 000000000000..9a8e92169665 --- /dev/null +++ b/contrib/lib_kaitai_of_data_encoding/test/test_translation_of_ground_types.ml @@ -0,0 +1,44 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Marigold, *) +(* Copyright (c) 2023 Nomadic Labs, *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +(* This test suite is meant to test translation of ground encodings + to [Kaitai.Types.ClassSpec.t] *) + +let%expect_test "test uint8 translation" = + let s = + Kaitai_of_data_encoding.Translate.from_data_encoding + ~encoding_name:"ground_uint8" + Data_encoding.uint8 + in + print_endline (Kaitai.Print.print s) ; + [%expect + {| + meta: + id: ground_uint8 + seq: + - id: uint8 + type: u1 + |}] diff --git a/contrib/lib_kaitai_of_data_encoding/translate.ml b/contrib/lib_kaitai_of_data_encoding/translate.ml new file mode 100644 index 000000000000..b9898b5a4862 --- /dev/null +++ b/contrib/lib_kaitai_of_data_encoding/translate.ml @@ -0,0 +1,82 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Marigold, *) +(* Copyright (c) 2023 Nomadic Labs, *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +open Kaitai.Types + +(* We need to access the definition of data-encoding's [descr] type. For this + reason we open the private/internal module [Data_encoding__Encoding] (rather + than the public module [Data_encoding.Encoding]. *) +open Data_encoding__Encoding + +let default_meta_spec ~encoding_name = + MetaSpec. + { + path = []; + isOpaque = false; + id = Some encoding_name; + endian = None; + bitEndian = None; + encoding = None; + forceDebug = false; + opaqueTypes = None; + zeroCopySubstream = None; + imports = []; + } + +let default_doc_spec = DocSpec.{summary = None; refs = []} + +let default_class_spec ~encoding_name = + ClassSpec. + { + fileName = None; + path = []; + meta = default_meta_spec ~encoding_name; + doc = default_doc_spec; + toStringExpr = None; + params = []; + seq = []; + types = []; + instances = []; + enums = []; + } + +let u1_attr_spec = + AttrSpec. + { + path = []; + id = "uint8"; + dataType = DataType.(NumericType (Int_type (Int1Type {signed = false}))); + cond = ConditionalSpec.{ifExpr = None; repeat = RepeatSpec.NoRepeat}; + valid = None; + doc = default_doc_spec; + } + +let from_data_encoding : + type a. encoding_name:string -> a Data_encoding.t -> ClassSpec.t = + fun ~encoding_name {encoding; json_encoding = _} -> + match encoding with + | Uint8 -> {(default_class_spec ~encoding_name) with seq = [u1_attr_spec]} + | _ -> failwith "Not implemented" diff --git a/contrib/lib_kaitai_of_data_encoding/translate.mli b/contrib/lib_kaitai_of_data_encoding/translate.mli new file mode 100644 index 000000000000..56eb68758c88 --- /dev/null +++ b/contrib/lib_kaitai_of_data_encoding/translate.mli @@ -0,0 +1,32 @@ +(*****************************************************************************) +(* *) +(* Open Source License *) +(* Copyright (c) 2023 Marigold, *) +(* Copyright (c) 2023 Nomadic Labs, *) +(* *) +(* Permission is hereby granted, free of charge, to any person obtaining a *) +(* copy of this software and associated documentation files (the "Software"),*) +(* to deal in the Software without restriction, including without limitation *) +(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *) +(* and/or sell copies of the Software, and to permit persons to whom the *) +(* Software is furnished to do so, subject to the following conditions: *) +(* *) +(* The above copyright notice and this permission notice shall be included *) +(* in all copies or substantial portions of the Software. *) +(* *) +(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*) +(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *) +(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *) +(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*) +(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *) +(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *) +(* DEALINGS IN THE SOFTWARE. *) +(* *) +(*****************************************************************************) + +(** [from_data_encoding ~encoding_name encoding] generates a formal description + of [encoding] as a kaitai [ClassSpec]. + + @param [encoding_name] is added to the "meta" section of the class-spec. *) +val from_data_encoding : + encoding_name:string -> 'a Data_encoding.t -> Kaitai.Types.ClassSpec.t -- GitLab From ad8f74f174e2c546b3ebfc46a84a1cfbc241d728 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Fri, 25 Aug 2023 11:39:48 +0200 Subject: [PATCH 6/6] Manifest: use more standard packaging for kaitai This is to please some packaging checks in the CI. Note that eventually we probably want to remove the `contrib/` directory from the octez release tarballs, but in the meantime the `contrib/` directory must play nice with the `src/` neighbour. --- contrib/kaitai-ocaml/test/dune | 1 + contrib/lib_kaitai_of_data_encoding/dune | 2 +- contrib/lib_kaitai_of_data_encoding/test/dune | 3 ++- dune-project | 2 +- manifest/main.ml | 11 ++++------- opam/kaitai-of-data-encoding.opam | 1 + opam/kaitai.opam | 1 + 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/contrib/kaitai-ocaml/test/dune b/contrib/kaitai-ocaml/test/dune index 2da41d4d5ebb..112ea428dcd9 100644 --- a/contrib/kaitai-ocaml/test/dune +++ b/contrib/kaitai-ocaml/test/dune @@ -3,6 +3,7 @@ (library (name kaitai_test) + (package kaitai) (instrumentation (backend bisect_ppx)) (libraries kaitai) diff --git a/contrib/lib_kaitai_of_data_encoding/dune b/contrib/lib_kaitai_of_data_encoding/dune index 866581542cca..44f3e5217a7a 100644 --- a/contrib/lib_kaitai_of_data_encoding/dune +++ b/contrib/lib_kaitai_of_data_encoding/dune @@ -3,7 +3,7 @@ (library (name kaitai_of_data_encoding) - (package kaitai-of-data-encoding) + (public_name kaitai-of-data-encoding) (libraries yaml data-encoding diff --git a/contrib/lib_kaitai_of_data_encoding/test/dune b/contrib/lib_kaitai_of_data_encoding/test/dune index d2cf8c0544bf..fe5cfcafcd33 100644 --- a/contrib/lib_kaitai_of_data_encoding/test/dune +++ b/contrib/lib_kaitai_of_data_encoding/test/dune @@ -3,10 +3,11 @@ (library (name kaitai_of_data_encoding_test) + (package kaitai-of-data-encoding) (libraries yaml data-encoding kaitai - kaitai_of_data_encoding) + kaitai-of-data-encoding) (inline_tests (flags -verbose) (modes native)) (preprocess (pps ppx_expect))) diff --git a/dune-project b/dune-project index 0810ed24876f..0b8d168b52ec 100644 --- a/dune-project +++ b/dune-project @@ -5,7 +5,7 @@ (package (name bls12-381)) (package (name internal-devtools)) (package (name kaitai)) -(package (name kaitai-of-data-encoding)(allow_empty)) +(package (name kaitai-of-data-encoding)) (package (name octez-accuser-Proxford)) (package (name octez-accuser-PtNairob)) (package (name octez-accuser-alpha)) diff --git a/manifest/main.ml b/manifest/main.ml index 84288d88af08..b5e5215bd22c 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -7998,7 +7998,6 @@ let octez_scoru_wasm_regressions = let kaitai = public_lib - ~opam:"kaitai" "kaitai" ~path:"contrib/kaitai-ocaml/src" ~deps:[yaml] @@ -8009,16 +8008,15 @@ let kaitai = library. *) let _kaitai_test = private_lib - ~opam:"" "kaitai_test" + ~opam:"kaitai" ~path:"contrib/kaitai-ocaml/test" ~inline_tests:ppx_expect ~deps:[kaitai] let kaitai_of_data_encoding = - private_lib - "kaitai_of_data_encoding" - ~opam:"kaitai-of-data-encoding" + public_lib + "kaitai-of-data-encoding" ~path:"contrib/lib_kaitai_of_data_encoding" ~synopsis:"Kaitai spec generator for data-encoding library" ~deps:[yaml; data_encoding; kaitai] @@ -8027,9 +8025,8 @@ let kaitai_of_data_encoding = let _kaitai_of_data_encoding_test = private_lib "kaitai_of_data_encoding_test" - ~opam:"" + ~opam:"kaitai-of-data-encoding" ~path:"contrib/lib_kaitai_of_data_encoding/test" - ~synopsis:"Tests for kaitai_of_data_encoding library" ~deps:[yaml; data_encoding; kaitai; kaitai_of_data_encoding] ~bisect_ppx:No ~inline_tests:ppx_expect diff --git a/opam/kaitai-of-data-encoding.opam b/opam/kaitai-of-data-encoding.opam index b263d1cd1bd8..67e175d24d39 100644 --- a/opam/kaitai-of-data-encoding.opam +++ b/opam/kaitai-of-data-encoding.opam @@ -13,6 +13,7 @@ depends: [ "yaml" { >= "3.1.0" } "data-encoding" { >= "0.7.1" & < "1.0.0" } "kaitai" + "ppx_expect" ] build: [ ["rm" "-r" "vendors" "contrib"] diff --git a/opam/kaitai.opam b/opam/kaitai.opam index 0bead736b62f..324d6c0fc7f1 100644 --- a/opam/kaitai.opam +++ b/opam/kaitai.opam @@ -11,6 +11,7 @@ depends: [ "dune" { >= "3.0" } "ocaml" { >= "4.14" } "yaml" { >= "3.1.0" } + "ppx_expect" ] build: [ ["rm" "-r" "vendors" "contrib"] -- GitLab