From 2175fada713a64bc67ac8d1928072d0785940e57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Tue, 5 Sep 2023 15:43:20 +0200 Subject: [PATCH 1/5] Build: mark codec as unreleased Codec has been moved to `contrib/` recently and this is incompatible with the released status in our build system. --- .gitlab/ci/jobs/packaging/opam_package.yml | 26 +++++++--------------- manifest/main.ml | 2 +- script-inputs/released-executables | 1 - 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/.gitlab/ci/jobs/packaging/opam_package.yml b/.gitlab/ci/jobs/packaging/opam_package.yml index 79a0d37c6d30..901d12994f2e 100644 --- a/.gitlab/ci/jobs/packaging/opam_package.yml +++ b/.gitlab/ci/jobs/packaging/opam_package.yml @@ -416,12 +416,7 @@ opam:bls12-381: # Ignoring unreleased package internal-devtools. -opam:kaitai: - extends: - - .opam_template - - .rules_template__trigger_all_opam_batch_7 - variables: - package: kaitai +# Ignoring unreleased package kaitai. opam:octez-accuser-Proxford: extends: @@ -469,12 +464,7 @@ opam:octez-client: variables: package: octez-client -opam:octez-codec: - extends: - - .opam_template - - .rules_template__trigger_exec_opam_batch_1 - variables: - package: octez-codec +# Ignoring unreleased package octez-codec. opam:octez-crawler: extends: @@ -653,7 +643,7 @@ opam:tezos-017-PtNairob-test-helpers: opam:tezos-018-Proxford-test-helpers: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_2 + - .rules_template__trigger_all_opam_batch_1 variables: package: tezos-018-Proxford-test-helpers @@ -880,7 +870,7 @@ opam:tezos-client-base: opam:tezos-client-base-unix: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_3 + - .rules_template__trigger_all_opam_batch_2 variables: package: tezos-client-base-unix @@ -1121,7 +1111,7 @@ opam:tezos-embedded-protocol-017-PtNairob: opam:tezos-embedded-protocol-018-Proxford: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_5 + - .rules_template__trigger_all_opam_batch_4 variables: package: tezos-embedded-protocol-018-Proxford @@ -1306,7 +1296,7 @@ opam:tezos-protocol-010-PtGRANAD: opam:tezos-protocol-011-PtHangz2: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_7 + - .rules_template__trigger_all_opam_batch_6 variables: package: tezos-protocol-011-PtHangz2 @@ -1508,7 +1498,7 @@ opam:tezos-protocol-plugin-014-PtKathma-registerer: opam:tezos-protocol-plugin-015-PtLimaPt: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_6 + - .rules_template__trigger_all_opam_batch_5 variables: package: tezos-protocol-plugin-015-PtLimaPt @@ -1559,7 +1549,7 @@ opam:tezos-protocol-plugin-018-Proxford: opam:tezos-protocol-plugin-018-Proxford-registerer: extends: - .opam_template - - .rules_template__trigger_all_opam_batch_4 + - .rules_template__trigger_all_opam_batch_3 variables: package: tezos-protocol-plugin-018-Proxford-registerer diff --git a/manifest/main.ml b/manifest/main.ml index 20c1d401cf5d..495b482735f0 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -7551,7 +7551,7 @@ let _octez_codec = ~path:"contrib/bin_codec" ~internal_name:"codec" ~synopsis:"Tezos: `octez-codec` binary to encode and decode values" - ~release_status:Released + ~release_status:Unreleased ~with_macos_security_framework:true ~deps: ([ diff --git a/script-inputs/released-executables b/script-inputs/released-executables index cb3a8c16c086..f1942dd1d121 100644 --- a/script-inputs/released-executables +++ b/script-inputs/released-executables @@ -3,7 +3,6 @@ octez-dac-client octez-dac-node octez-signer octez-proxy-server -octez-codec octez-client octez-admin-client octez-node -- GitLab From 1dc98e8f8136810b08433973fd4712a9fc21ee1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Tue, 5 Sep 2023 16:58:45 +0200 Subject: [PATCH 2/5] Build: add `Contrib` as a possible release-status, use for codec --- Makefile | 3 ++- manifest/main.ml | 3 ++- manifest/manifest.ml | 41 +++++++++++++++++++++++-------- manifest/manifest.mli | 30 ++++++++++++++-------- script-inputs/contrib-executables | 1 + 5 files changed, 56 insertions(+), 22 deletions(-) create mode 100644 script-inputs/contrib-executables diff --git a/Makefile b/Makefile index ba7dfd8dd107..ced18ebf1102 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ VALID_PROFILES=dev release static # See the documentation of [~release_status] in [manifest/manifest.mli]. RELEASED_EXECUTABLES := $(shell cat script-inputs/released-executables) EXPERIMENTAL_EXECUTABLES := $(shell cat script-inputs/experimental-executables) +CONTRIB_EXECUTABLES := $(shell cat script-inputs/contrib-executables) # Executables that developers need at the root of the repository but that # are not useful for users. @@ -40,7 +41,7 @@ EXPERIMENTAL_EXECUTABLES := $(shell cat script-inputs/experimental-executables) # - Some tests expect octez-snoop to be at the root. DEV_EXECUTABLES := $(shell cat script-inputs/dev-executables) -ALL_EXECUTABLES := $(RELEASED_EXECUTABLES) $(EXPERIMENTAL_EXECUTABLES) $(DEV_EXECUTABLES) +ALL_EXECUTABLES := $(RELEASED_EXECUTABLES) $(EXPERIMENTAL_EXECUTABLES) $(DEV_EXECUTABLES) $(CONTRIB_EXECUTABLES) # Set of Dune targets to build, in addition to OCTEZ_EXECUTABLES, in # the `build` target's Dune invocation. This is used in the CI to diff --git a/manifest/main.ml b/manifest/main.ml index 495b482735f0..46ea8b951367 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -7514,6 +7514,7 @@ let kaitai = public_lib "kaitai.ast" ~path:"contrib/kaitai-ocaml/src" + ~release_status:Contrib ~deps:[yaml] ~synopsis:"OCaml library for reading Kaitai spec files" @@ -7551,7 +7552,7 @@ let _octez_codec = ~path:"contrib/bin_codec" ~internal_name:"codec" ~synopsis:"Tezos: `octez-codec` binary to encode and decode values" - ~release_status:Unreleased + ~release_status:Contrib ~with_macos_security_framework:true ~deps: ([ diff --git a/manifest/manifest.ml b/manifest/manifest.ml index 9ddb6a2b2f1c..2f963e26c6f8 100644 --- a/manifest/manifest.ml +++ b/manifest/manifest.ml @@ -1104,7 +1104,12 @@ module Target = struct type preprocessor_dep = File of string - type release_status = Unreleased | Experimental | Released | Auto_opam + type release_status = + | Unreleased + | Experimental + | Released + | Auto_opam + | Contrib type bisect_ppx = No | Yes | With_sigterm @@ -1113,6 +1118,7 @@ module Target = struct | Experimental -> "Experimental" | Released -> "Released" | Auto_opam -> "Auto_opam" + | Contrib -> "Contrib" type kind = | Public_library of full_name @@ -2443,6 +2449,7 @@ type opam_release_status = | Explicitly_released of Target.internal | Transitively_released of string | Auto + | Explicitly_contrib of Target.internal (* [height] is 1 for leaves, 1 + max dependency height for nodes. *) type opam_dependency_graph_node = { @@ -2464,6 +2471,7 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = let node_of_internals package_name internals = let released_example = ref None in let unreleased_example = ref None in + let contrib_example = ref None in let executable internal = match internal.Target.kind with | Public_executable _ -> true @@ -2476,14 +2484,17 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = | Auto_opam -> () | Unreleased | Experimental -> unreleased_example := Some internal | Released -> released_example := Some internal + | Contrib -> contrib_example := Some internal in List.iter add_status internals ; let release_status = - match (!released_example, !unreleased_example) with - | None, None -> Auto - | Some internal, None -> Explicitly_released internal - | None, Some internal -> Explicitly_unreleased internal - | Some a, Some b -> + match (!released_example, !unreleased_example, !contrib_example) with + | None, None, None -> Auto + | Some internal, None, None -> Explicitly_released internal + | None, Some internal, None -> Explicitly_unreleased internal + | None, None, Some internal -> Explicitly_contrib internal + | None, Some _, Some internal -> Explicitly_contrib internal + | Some a, Some b, _ | Some a, None, Some b -> error "In %s, %S has release status %s, and in %s, %S has release \ status %s; those two targets cannot be in the same opam package \ @@ -2549,7 +2560,8 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = let rec propagate_from parent_name parent_node = if not parent_node.propagated then match parent_node.release_status with - | Explicitly_unreleased _ | Auto -> parent_node.propagated <- true + | Explicitly_unreleased _ | Auto | Explicitly_contrib _ -> + parent_node.propagated <- true | Explicitly_released _ | Transitively_released _ -> let propagate_to dependency_name = with_node dependency_name @@ fun dependency_node -> @@ -2576,6 +2588,11 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = (* Package is neither released nor released, why is there a contradiction? *) assert false + | Explicitly_contrib internal -> + Printf.eprintf + " because in %s, %S is explicitly contrib\n" + internal.path + (Target.kind_name_for_errors internal.kind) in Printf.eprintf "Package %S is released\n" parent_name ; output_reason parent_node.release_status ; @@ -2598,6 +2615,7 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = we need to re-propagate it now that it has changed. *) dependency_node.propagated <- false ; propagate_from dependency_name dependency_node + | Explicitly_contrib _ -> failwith "TODO" in String_set.iter propagate_to parent_node.dependencies ; parent_node.propagated <- true @@ -2984,7 +3002,8 @@ let generate_opam_meta_package opam_release_graph add_to_meta_package : Opam.t = Fun.flip List.filter_map (String_map.bindings opam_release_graph) @@ fun (package, node) -> match node.release_status with - | Explicitly_unreleased _ | Auto | Transitively_released _ -> + | Explicitly_unreleased _ | Auto | Transitively_released _ + | Explicitly_contrib _ -> (* No need to put transitively released packages explicitly in the meta-package. They are, by definition, transitive dependencies of explicitly released opam packages, which we do put in the meta-package. *) @@ -3042,7 +3061,8 @@ let generate_opam_files_for_release packages_dir opam_release_graph | Some node -> ( match node.release_status with | Explicitly_unreleased _ | Auto -> () - | Explicitly_released _ | Transitively_released _ -> + | Explicitly_released _ | Transitively_released _ | Explicitly_contrib _ + -> write_opam package (generate_opam ~release package internal_pkgs)) ) ; write_opam @@ -3492,7 +3512,7 @@ let generate_opam_ci opam_release_graph = List.partition (fun (_, node) -> match node.release_status with - | Explicitly_unreleased _ | Auto -> false + | Explicitly_unreleased _ | Auto | Explicitly_contrib _ -> false | Explicitly_released _ | Transitively_released _ -> true) (String_map.bindings opam_release_graph) in @@ -3697,6 +3717,7 @@ let generate ~make_tezt_exe ~default_profile ~add_to_meta_package = generate_executable_list "script-inputs/experimental-executables" Experimental ; + generate_executable_list "script-inputs/contrib-executables" Contrib ; generate_profiles ~default_profile ; Option.iter (generate_opam_files_for_release diff --git a/manifest/manifest.mli b/manifest/manifest.mli index e91684db03a2..34027b9447bf 100644 --- a/manifest/manifest.mli +++ b/manifest/manifest.mli @@ -584,15 +584,15 @@ type with_test = Always | Never | Only_on_64_arch The semantics of release statuses is summed up in this table: - | | Unreleased | Experimental | Released | Auto_opam | - |-----------------------+------------+--------------+----------+-----------| - | make experimental | no | yes | yes | no | - | docker (master) | no | yes | yes | no | - | static (master) | no | yes | yes | no | - | make | no | no | yes | no | - | docker (release tag)) | no | no | yes | no | - | static (release tag) | no | no | yes | no | - | opam (release tag) | no | no | yes | if needed | + | | Unreleased | Experimental | Released | Auto_opam | Contrib | + |-----------------------+------------+--------------+----------+-----------+---------| + | make experimental | no | yes | yes | no | yes | + | docker (master) | no | yes | yes | no | no | + | static (master) | no | yes | yes | no | no | + | make | no | no | yes | no | yes | + | docker (release tag)) | no | no | yes | no | no | + | static (release tag) | no | no | yes | no | no | + | opam (release tag) | no | no | yes | if needed | yes | [Unreleased] means: never release. @@ -613,12 +613,22 @@ type with_test = Always | Never | Only_on_64_arch - one of its targets is released; - or it is a transitive dependency of another released opam package. + [Contrib] means: build but do not release. + This is intended for code in the [contrib/] and other similar directory. + Code that should not be broken but that is not distributed (at least not + through the same release mechanisms as [octez]. + Note that a given opam package cannot be both published and not published. This means that it is not possible to have an [Unreleased] or [Experimental] target in the same package as a [Released] target. It is also not possible for a target to be [Unreleased] or [Experimental] if it is in an opam package which is needed as a transitive dependency of a [Released] target. *) -type release_status = Unreleased | Experimental | Released | Auto_opam +type release_status = + | Unreleased + | Experimental + | Released + | Auto_opam + | Contrib (** Configure [bisect_ppx] instrumentation. diff --git a/script-inputs/contrib-executables b/script-inputs/contrib-executables new file mode 100644 index 000000000000..0a6c7cab530e --- /dev/null +++ b/script-inputs/contrib-executables @@ -0,0 +1 @@ +octez-codec -- GitLab From b060da62ed15378136bb94219ea8f61462527e29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Wed, 6 Sep 2023 16:43:41 +0200 Subject: [PATCH 3/5] Manifest: automatically propagate contrib status --- manifest/main.ml | 1 - manifest/manifest.ml | 39 +++++++++++++++++++++++++++++++++------ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/manifest/main.ml b/manifest/main.ml index 46ea8b951367..a02a40fc848d 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -7514,7 +7514,6 @@ let kaitai = public_lib "kaitai.ast" ~path:"contrib/kaitai-ocaml/src" - ~release_status:Contrib ~deps:[yaml] ~synopsis:"OCaml library for reading Kaitai spec files" diff --git a/manifest/manifest.ml b/manifest/manifest.ml index 2f963e26c6f8..fcd8b4032923 100644 --- a/manifest/manifest.ml +++ b/manifest/manifest.ml @@ -2450,6 +2450,7 @@ type opam_release_status = | Transitively_released of string | Auto | Explicitly_contrib of Target.internal + | Transitively_contrib of string (* [height] is 1 for leaves, 1 + max dependency height for nodes. *) type opam_dependency_graph_node = { @@ -2560,7 +2561,27 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = let rec propagate_from parent_name parent_node = if not parent_node.propagated then match parent_node.release_status with - | Explicitly_unreleased _ | Auto | Explicitly_contrib _ -> + | Explicitly_unreleased _ | Auto -> parent_node.propagated <- true + | Explicitly_contrib _ | Transitively_contrib _ -> + let propagate_to dependency_name = + with_node dependency_name @@ fun dependency_node -> + match dependency_node.release_status with + | Explicitly_unreleased _ -> () + | Explicitly_released _ | Transitively_released _ -> + (* Either [dependency_node] has already been propagated, + or it hasn't but will be later since we visit all nodes + with [String_map.iter]. *) + () + | Auto -> + dependency_node.release_status <- + Transitively_contrib parent_name ; + (* In case [dependency_node] has already been propagated, + we need to re-propagate it now that it has changed. *) + dependency_node.propagated <- false ; + propagate_from dependency_name dependency_node + | Explicitly_contrib _ | Transitively_contrib _ -> () + in + String_set.iter propagate_to parent_node.dependencies ; parent_node.propagated <- true | Explicitly_released _ | Transitively_released _ -> let propagate_to dependency_name = @@ -2593,6 +2614,10 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = " because in %s, %S is explicitly contrib\n" internal.path (Target.kind_name_for_errors internal.kind) + | Transitively_contrib reverse_dep -> + Printf.eprintf + " because its reverse dependency %S is contrib\n" + reverse_dep in Printf.eprintf "Package %S is released\n" parent_name ; output_reason parent_node.release_status ; @@ -2608,14 +2633,14 @@ let compute_opam_release_graph () : opam_dependency_graph_node String_map.t = or it hasn't but will be later since we visit all nodes with [String_map.iter]. *) () - | Auto -> + | Auto | Transitively_contrib _ -> dependency_node.release_status <- Transitively_released parent_name ; (* In case [dependency_node] has already been propagated, we need to re-propagate it now that it has changed. *) dependency_node.propagated <- false ; propagate_from dependency_name dependency_node - | Explicitly_contrib _ -> failwith "TODO" + | Explicitly_contrib _ -> () in String_set.iter propagate_to parent_node.dependencies ; parent_node.propagated <- true @@ -3003,7 +3028,7 @@ let generate_opam_meta_package opam_release_graph add_to_meta_package : Opam.t = @@ fun (package, node) -> match node.release_status with | Explicitly_unreleased _ | Auto | Transitively_released _ - | Explicitly_contrib _ -> + | Explicitly_contrib _ | Transitively_contrib _ -> (* No need to put transitively released packages explicitly in the meta-package. They are, by definition, transitive dependencies of explicitly released opam packages, which we do put in the meta-package. *) @@ -3062,7 +3087,7 @@ let generate_opam_files_for_release packages_dir opam_release_graph match node.release_status with | Explicitly_unreleased _ | Auto -> () | Explicitly_released _ | Transitively_released _ | Explicitly_contrib _ - -> + | Transitively_contrib _ -> write_opam package (generate_opam ~release package internal_pkgs)) ) ; write_opam @@ -3512,7 +3537,9 @@ let generate_opam_ci opam_release_graph = List.partition (fun (_, node) -> match node.release_status with - | Explicitly_unreleased _ | Auto | Explicitly_contrib _ -> false + | Explicitly_unreleased _ | Auto | Explicitly_contrib _ + | Transitively_contrib _ -> + false | Explicitly_released _ | Transitively_released _ -> true) (String_map.bindings opam_release_graph) in -- GitLab From 1670a03c441bb7ac2f27d32e3e3f41eb4c86b4b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Thu, 7 Sep 2023 08:26:47 +0200 Subject: [PATCH 4/5] CI: contrib/ in the docker build images --- .gitlab/ci/jobs/build/arm64.yml | 2 +- .gitlab/ci/jobs/build/docker_amd64_experimental.yml | 2 +- .gitlab/ci/jobs/build/docker_amd64_test.yml | 4 ++-- .gitlab/ci/jobs/build/docker_amd64_test_manual.yml | 2 +- .gitlab/ci/jobs/build/docker_arm64_experimental.yml | 2 +- .gitlab/ci/jobs/build/docker_arm64_test.yml | 2 +- .gitlab/ci/jobs/build/docker_arm64_test_manual.yml | 2 +- .gitlab/ci/jobs/build/static_arm64_experimental.yml | 2 +- .gitlab/ci/jobs/build/static_x86_64_experimental.yml | 2 +- .gitlab/ci/jobs/build/x86_64.yml | 2 +- build.Dockerfile | 2 ++ scripts/ci/build_static_binaries.sh | 2 +- scripts/ci/docker_release.sh | 2 +- tezt/lib_tezos/constant.ml | 4 ++++ tezt/tests/binaries.ml | 9 +++++++++ 15 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.gitlab/ci/jobs/build/arm64.yml b/.gitlab/ci/jobs/build/arm64.yml index bbb5513d4b25..636a4652197b 100644 --- a/.gitlab/ci/jobs/build/arm64.yml +++ b/.gitlab/ci/jobs/build/arm64.yml @@ -33,5 +33,5 @@ build_arm64-exp-dev-extra: extends: - .build_arm64 variables: - EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables" + EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables script-inputs/contrib-executables" BUILD_EXTRA: "src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe tezt/tests/main.exe" diff --git a/.gitlab/ci/jobs/build/docker_amd64_experimental.yml b/.gitlab/ci/jobs/build/docker_amd64_experimental.yml index f5c9d9e7216e..890aa04dd9b3 100644 --- a/.gitlab/ci/jobs/build/docker_amd64_experimental.yml +++ b/.gitlab/ci/jobs/build/docker_amd64_experimental.yml @@ -8,5 +8,5 @@ docker:amd64: DOCKER_BUILD_TARGET: "with-evm-artifacts" IMAGE_ARCH_PREFIX: "amd64_" CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" stage: build diff --git a/.gitlab/ci/jobs/build/docker_amd64_test.yml b/.gitlab/ci/jobs/build/docker_amd64_test.yml index 3a9f08adb21c..53c1ff870464 100644 --- a/.gitlab/ci/jobs/build/docker_amd64_test.yml +++ b/.gitlab/ci/jobs/build/docker_amd64_test.yml @@ -7,5 +7,5 @@ docker:amd64: variables: IMAGE_ARCH_PREFIX: "amd64_" CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" - stage: build \ No newline at end of file + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" + stage: build diff --git a/.gitlab/ci/jobs/build/docker_amd64_test_manual.yml b/.gitlab/ci/jobs/build/docker_amd64_test_manual.yml index 4d844c0230db..9435ee405412 100644 --- a/.gitlab/ci/jobs/build/docker_amd64_test_manual.yml +++ b/.gitlab/ci/jobs/build/docker_amd64_test_manual.yml @@ -10,5 +10,5 @@ docker:amd64: DOCKER_BUILD_TARGET: "with-evm-artifacts" IMAGE_ARCH_PREFIX: "amd64_" CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" allow_failure: true diff --git a/.gitlab/ci/jobs/build/docker_arm64_experimental.yml b/.gitlab/ci/jobs/build/docker_arm64_experimental.yml index 6f192ef78f3a..c398ed1a74a7 100644 --- a/.gitlab/ci/jobs/build/docker_arm64_experimental.yml +++ b/.gitlab/ci/jobs/build/docker_arm64_experimental.yml @@ -8,4 +8,4 @@ docker:arm64: variables: IMAGE_ARCH_PREFIX: "arm64_" CI_DOCKER_HUB: "true" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" diff --git a/.gitlab/ci/jobs/build/docker_arm64_test.yml b/.gitlab/ci/jobs/build/docker_arm64_test.yml index 03f2b60b0dbc..6b36fc6686cd 100644 --- a/.gitlab/ci/jobs/build/docker_arm64_test.yml +++ b/.gitlab/ci/jobs/build/docker_arm64_test.yml @@ -8,4 +8,4 @@ docker:arm64: variables: IMAGE_ARCH_PREFIX: "arm64_" CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" diff --git a/.gitlab/ci/jobs/build/docker_arm64_test_manual.yml b/.gitlab/ci/jobs/build/docker_arm64_test_manual.yml index 08506ee99740..9f509267f7d6 100644 --- a/.gitlab/ci/jobs/build/docker_arm64_test_manual.yml +++ b/.gitlab/ci/jobs/build/docker_arm64_test_manual.yml @@ -9,7 +9,7 @@ docker:arm64: variables: IMAGE_ARCH_PREFIX: "arm64_" CI_DOCKER_HUB: "false" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" allow_failure: true tags: - arm64 diff --git a/.gitlab/ci/jobs/build/static_arm64_experimental.yml b/.gitlab/ci/jobs/build/static_arm64_experimental.yml index cc6eb8697db8..3db8881d96d3 100644 --- a/.gitlab/ci/jobs/build/static_arm64_experimental.yml +++ b/.gitlab/ci/jobs/build/static_arm64_experimental.yml @@ -7,4 +7,4 @@ build:static-arm64-linux-binaries: - .build_static_binaries_template variables: ARCH: "arm64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" diff --git a/.gitlab/ci/jobs/build/static_x86_64_experimental.yml b/.gitlab/ci/jobs/build/static_x86_64_experimental.yml index 22f36ea95691..f7a23ec33a6e 100644 --- a/.gitlab/ci/jobs/build/static_x86_64_experimental.yml +++ b/.gitlab/ci/jobs/build/static_x86_64_experimental.yml @@ -20,4 +20,4 @@ build:static-x86_64-linux-binaries: needs: [trigger] variables: ARCH: "x86_64" - EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables" + EXECUTABLE_FILES: "script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables" diff --git a/.gitlab/ci/jobs/build/x86_64.yml b/.gitlab/ci/jobs/build/x86_64.yml index 8cebe4c76efc..d6a0ff9bd4ff 100644 --- a/.gitlab/ci/jobs/build/x86_64.yml +++ b/.gitlab/ci/jobs/build/x86_64.yml @@ -27,5 +27,5 @@ build_x86_64-exp-dev-extra: - .tags_template__build - .build_x86_64 variables: - EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables" + EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables scritp-inputs/contrib-executables" BUILD_EXTRA: "src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe tezt/tests/main.exe" diff --git a/build.Dockerfile b/build.Dockerfile index 32b085b33bf8..6df5c2e19199 100644 --- a/build.Dockerfile +++ b/build.Dockerfile @@ -20,6 +20,7 @@ COPY --chown=tezos:nogroup script-inputs/active_protocol_versions tezos/script-i COPY --chown=tezos:nogroup script-inputs/active_protocol_versions_without_number tezos/script-inputs/ COPY --chown=tezos:nogroup script-inputs/released-executables tezos/script-inputs/ COPY --chown=tezos:nogroup script-inputs/experimental-executables tezos/script-inputs/ +COPY --chown=tezos:nogroup script-inputs/contrib-executables tezos/script-inputs/ COPY --chown=tezos:nogroup dune tezos COPY --chown=tezos:nogroup scripts/version.sh tezos/scripts/ COPY --chown=tezos:nogroup src tezos/src @@ -28,6 +29,7 @@ COPY --chown=tezos:nogroup opam tezos/opam COPY --chown=tezos:nogroup dune tezos/dune COPY --chown=tezos:nogroup dune-workspace tezos/dune-workspace COPY --chown=tezos:nogroup dune-project tezos/dune-project +COPY --chown=tezos:nogroup contrib tezos/contrib COPY --chown=tezos:nogroup vendors tezos/vendors ENV GIT_SHORTREF=${GIT_SHORTREF} ENV GIT_DATETIME=${GIT_DATETIME} diff --git a/scripts/ci/build_static_binaries.sh b/scripts/ci/build_static_binaries.sh index 04b014c1b0a6..9a37a24d51cc 100755 --- a/scripts/ci/build_static_binaries.sh +++ b/scripts/ci/build_static_binaries.sh @@ -4,7 +4,7 @@ set -e if [ -z "$EXECUTABLE_FILES" ]; then echo "Error: environment variable EXECUTABLE_FILES is empty." echo "Set it to e.g. 'script-inputs/released-executables'" - echo "or to 'script-inputs/released-executables script-inputs/experimental-executables'." + echo "or to 'script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables'." exit 1 fi diff --git a/scripts/ci/docker_release.sh b/scripts/ci/docker_release.sh index 6951cb655c2e..691f9a2be9c4 100755 --- a/scripts/ci/docker_release.sh +++ b/scripts/ci/docker_release.sh @@ -15,7 +15,7 @@ cd "${CI_PROJECT_DIR}" || exit 1 if [ -z "$EXECUTABLE_FILES" ]; then echo "Error: environment variable EXECUTABLE_FILES is empty." echo "Set it to e.g. 'script-inputs/released-executables'" - echo "or to 'script-inputs/released-executables script-inputs/experimental-executables'." + echo "or to 'script-inputs/released-executables script-inputs/experimental-executables script-inputs/contrib-executables'." exit 1 fi diff --git a/tezt/lib_tezos/constant.ml b/tezt/lib_tezos/constant.ml index 193f9afef4c9..58bde10f0d57 100644 --- a/tezt/lib_tezos/constant.ml +++ b/tezt/lib_tezos/constant.ml @@ -55,6 +55,10 @@ let released_executables = "./script-inputs/released-executables" experimental executable binaries to test. *) let experimental_executables = "./script-inputs/experimental-executables" +(* We use the [contrib-executables] script input as source of + contrib executable binaries to test. *) +let contrib_executables = "./script-inputs/contrib-executables" + (** Key pair used to activate a protocol from genesis with [--network sandbox]. The public key is hard-coded in the node. *) let activator : Account.key = diff --git a/tezt/tests/binaries.ml b/tezt/tests/binaries.ml index ea572efaa7d3..015d54073b34 100644 --- a/tezt/tests/binaries.ml +++ b/tezt/tests/binaries.ml @@ -84,6 +84,15 @@ let test_experimental_versions () = ~tags:["binaries"; "experimental"; "version"] @@ fun () -> test_versions Constant.experimental_executables +(* Test that all experimental binaries support the --version flag, and + that they report the same version value as the Octez node. *) +let test_contrib_versions () = + Test.register + ~__FILE__ + ~title:"Contrib binaries: report consistent version" + ~tags:["binaries"; "contrib"; "version"] + @@ fun () -> test_versions Constant.contrib_executables + let register_protocol_independent () = test_released_versions () ; test_experimental_versions () -- GitLab From 30660cce55c1f4e998e048df549bbbffc22f523a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Proust?= Date: Thu, 7 Sep 2023 15:21:50 +0200 Subject: [PATCH 5/5] fix typo in ci file --- .gitlab/ci/jobs/build/x86_64.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/jobs/build/x86_64.yml b/.gitlab/ci/jobs/build/x86_64.yml index d6a0ff9bd4ff..71d35eb31ed7 100644 --- a/.gitlab/ci/jobs/build/x86_64.yml +++ b/.gitlab/ci/jobs/build/x86_64.yml @@ -27,5 +27,5 @@ build_x86_64-exp-dev-extra: - .tags_template__build - .build_x86_64 variables: - EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables scritp-inputs/contrib-executables" + EXECUTABLE_FILES: "script-inputs/experimental-executables script-inputs/dev-executables script-inputs/contrib-executables" BUILD_EXTRA: "src/bin_tps_evaluation/main_tps_evaluation.exe src/bin_octogram/octogram_main.exe tezt/tests/main.exe" -- GitLab