From b5ac5e8c43be7efe6ec719b0fa1b13ec53908ced Mon Sep 17 00:00:00 2001 From: Thomas Letan Date: Wed, 21 Aug 2024 17:46:52 +0200 Subject: [PATCH] Lib_version: Versioning is for the EVM node MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From a release perspective, our product is the `octez-evm-node` binary. It can be used for Etherlink as for any other instance of our EVM-compatible Layer 2 blockchain. In this patch, we propose to drop the versioning of Etherlink and focus on the versioning of our binary instead. We might need a versioning scheme for the kernel at some point, but it’s not the case at the moment, so let’s focus on our immediate needs instead. Here is the output of `octez-evm-node` printing its version, for reference. ; ./octez-evm-node --version 1e89e2b2 (2024-08-21 18:08:03 +0200) (octez-evm-node 0.1) A consequence of this patch is to deprecate Octez version tags not using the `v` prefix. That is, `octez-22.0` is no longer a valid tag for an Octez release, while it was before. This is to be able to easily distinguish between a tag for Octez (`octez-v*`) and a tag for the Octez EVM node (`octez-evm-node-v`). To be noted, tags like `octez-22.0` were not compatible with the CI release pipeline as far as I can tell. --- etherlink/bin_node/lib_dev/services.ml | 2 +- etherlink/bin_node/main.ml | 4 +- manifest/product_octez.ml | 8 +-- scripts/test_octez_release_version.sh | 4 -- src/lib_version/exe/dune | 6 +-- src/lib_version/exe/get_git_info.ml | 6 +-- ...ion.ml => octez_evm_node_print_version.ml} | 2 +- .../parser/tezos_version_parser.mll | 12 ++--- .../test/test_octez_node_version.ml | 3 +- src/lib_version/test/test_parser.ml | 53 ++++++++----------- src/lib_version/value/bin_version.ml | 7 +-- src/lib_version/value/bin_version.mli | 8 +-- src/lib_version/value/current_git_info.ml | 2 +- src/lib_version/value/current_git_info.mli | 4 +- src/lib_version/value/generated_git_info.mli | 2 +- src/lib_version/version.ml | 6 ++- src/lib_version/version.mli | 2 +- 17 files changed, 63 insertions(+), 68 deletions(-) rename src/lib_version/exe/{etherlink_print_version.ml => octez_evm_node_print_version.ml} (90%) diff --git a/etherlink/bin_node/lib_dev/services.ml b/etherlink/bin_node/lib_dev/services.ml index 80e9a9f18501..eece963eddb9 100644 --- a/etherlink/bin_node/lib_dev/services.ml +++ b/etherlink/bin_node/lib_dev/services.ml @@ -40,7 +40,7 @@ let client_version = "%s/%s-%s/%s/ocamlc.%s" "octez-evm-node" (Tezos_version.Version.to_string - Tezos_version_value.Current_git_info.etherlink_version) + Tezos_version_value.Current_git_info.octez_evm_node_version) Tezos_version_value.Current_git_info.abbreviated_commit_hash Stdlib.Sys.os_type Stdlib.Sys.ocaml_version diff --git a/etherlink/bin_node/main.ml b/etherlink/bin_node/main.ml index 13639653e689..9884da7f176d 100644 --- a/etherlink/bin_node/main.ml +++ b/etherlink/bin_node/main.ml @@ -2270,7 +2270,9 @@ let dispatch args = let handle_error = function | Ok _ -> () | Error [Tezos_clic.Version] -> - let devmode = Tezos_version_value.Bin_version.etherlink_version_string in + let devmode = + Tezos_version_value.Bin_version.octez_evm_node_version_string + in Format.printf "%s\n" devmode ; exit 0 | Error [Tezos_clic.Help command] -> diff --git a/manifest/product_octez.ml b/manifest/product_octez.ml index a94f9c8637f9..245692a9e53c 100644 --- a/manifest/product_octez.ml +++ b/manifest/product_octez.ml @@ -2142,10 +2142,10 @@ let _octez_webassembly_test = ~dune:Dune.[[S "include_subdirs"; S "no"]] ~deps:[octez_webassembly_interpreter |> open_; alcotezt] -let _etherlink_print_version_exe = +let _octez_evm_node_print_version_exe = public_exe - "etherlink-version" - ~internal_name:"etherlink_print_version" + "octez-evm-node-version" + ~internal_name:"octez_evm_node_print_version" ~path:"src/lib_version/exe" ~opam:"octez-version" ~deps: @@ -2155,7 +2155,7 @@ let _etherlink_print_version_exe = octez_base_unix; octez_print_version |> open_; ] - ~modules:["etherlink_print_version"] + ~modules:["octez_evm_node_print_version"] ~bisect_ppx:No let _octez_version_tests = diff --git a/scripts/test_octez_release_version.sh b/scripts/test_octez_release_version.sh index 52d790cf22c3..888758bccf5b 100755 --- a/scripts/test_octez_release_version.sh +++ b/scripts/test_octez_release_version.sh @@ -24,7 +24,6 @@ test_version() { cleanup() { set +e - git tag -d "octez-$VERSION" > /dev/null 2>&1 git tag -d "octez-v$VERSION" > /dev/null 2>&1 git tag -d "octez-v$VERSION"+rc1 > /dev/null 2>&1 git tag -d "octez-v$VERSION"-rc1 > /dev/null 2>&1 @@ -39,9 +38,6 @@ cleanup git checkout -b "$TESTBRANCH" -git tag "octez-$VERSION" -m "test" -test_version "Octez $VERSION" "$VERSION" - git tag "octez-v$VERSION" -m "test" test_version "Octez $VERSION" "octez-v$VERSION" diff --git a/src/lib_version/exe/dune b/src/lib_version/exe/dune index 1c7f1d3f566b..2948a3ea6933 100644 --- a/src/lib_version/exe/dune +++ b/src/lib_version/exe/dune @@ -28,8 +28,8 @@ (modules octez_print_version)) (executable - (name etherlink_print_version) - (public_name etherlink-version) + (name octez_evm_node_print_version) + (public_name octez-evm-node-version) (package octez-version) (libraries octez-version.value @@ -44,4 +44,4 @@ -open Tezos_version_value -open Tezos_version -open Octez_version_print) - (modules etherlink_print_version)) + (modules octez_evm_node_print_version)) diff --git a/src/lib_version/exe/get_git_info.ml b/src/lib_version/exe/get_git_info.ml index 14a9874ca389..07f1367752b7 100644 --- a/src/lib_version/exe/get_git_info.ml +++ b/src/lib_version/exe/get_git_info.ml @@ -99,11 +99,11 @@ let lines = Format.asprintf "let git_describe_octez = %a" Tezos_version_parser.pp - (git_describe "octez-*"); + (git_describe "octez-v*"); Format.asprintf - "let git_describe_etherlink = %a" + "let git_describe_octez_evm_node = %a" Tezos_version_parser.pp - (git_describe "etherlink-*"); + (git_describe "octez-evm-node-v*"); ] let () = diff --git a/src/lib_version/exe/etherlink_print_version.ml b/src/lib_version/exe/octez_evm_node_print_version.ml similarity index 90% rename from src/lib_version/exe/etherlink_print_version.ml rename to src/lib_version/exe/octez_evm_node_print_version.ml index 2de43f75ceb5..fea8be2fa055 100644 --- a/src/lib_version/exe/etherlink_print_version.ml +++ b/src/lib_version/exe/octez_evm_node_print_version.ml @@ -9,4 +9,4 @@ open Current_git_info -let () = Print_version.print_version etherlink_version +let () = Print_version.print_version octez_evm_node_version diff --git a/src/lib_version/parser/tezos_version_parser.mll b/src/lib_version/parser/tezos_version_parser.mll index f4704829525b..a35752a3ccd6 100644 --- a/src/lib_version/parser/tezos_version_parser.mll +++ b/src/lib_version/parser/tezos_version_parser.mll @@ -27,11 +27,11 @@ | RC_dev of int | Release [@@deriving show] - type product = Octez | Etherlink + type product = Octez | Octez_evm_node let pp_product ppf = function | Octez -> Format.fprintf ppf "Octez" - | Etherlink -> Format.fprintf ppf "Etherlink" + | Octez_evm_node -> Format.fprintf ppf "Octez_evm_node" type t = { product: product; @@ -49,10 +49,10 @@ let num = ['0'-'9']+ let hexa = ['0'-'9' 'A'-'F' 'a'-'f']+ rule version_tag = parse - | ("octez" | "etherlink" as product) "-" 'v'? (num as major) '.' (num as minor) ".0"? + | ("octez" | "octez-evm-node" as product) "-" 'v'? (num as major) '.' (num as minor) ".0"? { let product = match product with - | "etherlink" -> Etherlink + | "octez-evm-node" -> Octez_evm_node | "octez" -> Octez | _ -> (* this case cannot happen, see pattern above *) assert false @@ -81,10 +81,10 @@ and extra = parse { Dev } and version_commit = parse - | ("octez" | "etherlink" as product) "-" 'v'? (num as major) '.' (num as minor) ".0"? + | ("octez" | "octez-evm-node" as product) "-" 'v'? (num as major) '.' (num as minor) ".0"? { let product = match product with - | "etherlink" -> Etherlink + | "octez-evm-node" -> Octez_evm_node | "octez" -> Octez | _ -> (* this case cannot happen, see pattern above *) assert false diff --git a/src/lib_version/test/test_octez_node_version.ml b/src/lib_version/test/test_octez_node_version.ml index 8bf18b71366f..6d2fb26abc3e 100644 --- a/src/lib_version/test/test_octez_node_version.ml +++ b/src/lib_version/test/test_octez_node_version.ml @@ -12,7 +12,8 @@ -- --file test_octez_node_version.ml Subject: Test versions *) -let all_products : Tezos_version_parser.product array = [|Octez; Etherlink|] +let all_products : Tezos_version_parser.product array = + [|Octez; Octez_evm_node|] (* Values of Beta x, Beta_dev x, RC x or RC_dev x in additional_info are ignored. *) diff --git a/src/lib_version/test/test_parser.ml b/src/lib_version/test/test_parser.ml index f1cd5c6c4a10..32f7f321009b 100644 --- a/src/lib_version/test/test_parser.ml +++ b/src/lib_version/test/test_parser.ml @@ -16,13 +16,6 @@ let octez_legal_versions = [ - ( "octez-10.93", - { - product = Octez; - Version.major = 10; - minor = 93; - additional_info = Release; - } ); ( "octez-v10.93", { product = Octez; @@ -30,27 +23,27 @@ let octez_legal_versions = minor = 93; additional_info = Release; } ); - ( "octez-10.93+dev", + ( "octez-v10.93+dev", {product = Octez; Version.major = 10; minor = 93; additional_info = Dev} ); - ( "octez-10.93-rc1", + ( "octez-v10.93-rc1", {product = Octez; Version.major = 10; minor = 93; additional_info = RC 1} ); - ( "octez-10.93-rc1+dev", + ( "octez-v10.93-rc1+dev", { product = Octez; Version.major = 10; minor = 93; additional_info = RC_dev 1; } ); - ( "octez-10.93-beta1", + ( "octez-v10.93-beta1", { product = Octez; Version.major = 10; minor = 93; additional_info = Beta 1; } ); - ( "octez-10.93-beta1+dev", + ( "octez-v10.93-beta1+dev", { product = Octez; Version.major = 10; @@ -59,53 +52,53 @@ let octez_legal_versions = } ); ] -let etherlink_legal_versions = +let octez_evm_node_legal_versions = [ - ( "etherlink-10.93", + ( "octez-evm-node-v10.93", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = Release; } ); - ( "etherlink-v10.93", + ( "octez-evm-node-v10.93", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = Release; } ); - ( "etherlink-10.93+dev", + ( "octez-evm-node-v10.93+dev", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = Dev; } ); - ( "etherlink-10.93-rc1", + ( "octez-evm-node-v10.93-rc1", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = RC 1; } ); - ( "etherlink-10.93-rc1+dev", + ( "octez-evm-node-v10.93-rc1+dev", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = RC_dev 1; } ); - ( "etherlink-10.93-beta1", + ( "octez-evm-node-v10.93-beta1", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = Beta 1; } ); - ( "etherlink-10.93-beta1+dev", + ( "octez-evm-node-v10.93-beta1+dev", { - product = Etherlink; + product = Octez_evm_node; Version.major = 10; minor = 93; additional_info = Beta_dev 1; @@ -157,10 +150,10 @@ let () = let () = Test.register ~__FILE__ - ~title:"Version: Test Etherlink versions parser" - ~tags:["version"; "etherlink"] + ~title:"Version: Test octez-evm-node versions parser" + ~tags:["version"; "octez_evm_node"] @@ fun () -> - ( Fun.flip List.iter etherlink_legal_versions @@ fun (x, e) -> + ( Fun.flip List.iter octez_evm_node_legal_versions @@ fun (x, e) -> Check.( (Some e = parse_version x) version_typ diff --git a/src/lib_version/value/bin_version.ml b/src/lib_version/value/bin_version.ml index a5ba9e9a4e51..87556d9fb932 100644 --- a/src/lib_version/value/bin_version.ml +++ b/src/lib_version/value/bin_version.ml @@ -40,7 +40,8 @@ let octez_version_string = version_string Current_git_info.octez_version let octez_simple_version_string = simple_version_string Current_git_info.octez_version -let etherlink_version_string = version_string Current_git_info.etherlink_version +let octez_evm_node_version_string = + version_string Current_git_info.octez_evm_node_version -let etherlink_simple_version_string = - simple_version_string Current_git_info.etherlink_version +let octez_evm_node_simple_version_string = + simple_version_string Current_git_info.octez_evm_node_version diff --git a/src/lib_version/value/bin_version.mli b/src/lib_version/value/bin_version.mli index b55692715b3f..54514b607863 100644 --- a/src/lib_version/value/bin_version.mli +++ b/src/lib_version/value/bin_version.mli @@ -38,8 +38,8 @@ val octez_version_string : string (** [simple_version_string] applied to the Version of Octez. *) val octez_simple_version_string : string -(** [version_string] applied to the Version of Etherlink. *) -val etherlink_version_string : string +(** [version_string] applied to the Version of the Octez EVM node. *) +val octez_evm_node_version_string : string -(** [simple_version_string] applied to the Version of Etherlink. *) -val etherlink_simple_version_string : string +(** [simple_version_string] applied to the Version of Octez EVM node. *) +val octez_evm_node_simple_version_string : string diff --git a/src/lib_version/value/current_git_info.ml b/src/lib_version/value/current_git_info.ml index 369639db9192..23aec146752a 100644 --- a/src/lib_version/value/current_git_info.ml +++ b/src/lib_version/value/current_git_info.ml @@ -52,4 +52,4 @@ let committer_date = let octez_version = Generated_git_info.git_describe_octez -let etherlink_version = Generated_git_info.git_describe_etherlink +let octez_evm_node_version = Generated_git_info.git_describe_octez_evm_node diff --git a/src/lib_version/value/current_git_info.mli b/src/lib_version/value/current_git_info.mli index 172beff1eecd..c8654136823d 100644 --- a/src/lib_version/value/current_git_info.mli +++ b/src/lib_version/value/current_git_info.mli @@ -33,6 +33,6 @@ val committer_date : string it uses either the git tag or a default version *) val octez_version : Tezos_version.Version.t -(** Current version of Etherlink. +(** Current version of the Octez EVM node. it uses either the git tag or a default version *) -val etherlink_version : Tezos_version.Version.t +val octez_evm_node_version : Tezos_version.Version.t diff --git a/src/lib_version/value/generated_git_info.mli b/src/lib_version/value/generated_git_info.mli index b32068356344..f0ed8ad52ed1 100644 --- a/src/lib_version/value/generated_git_info.mli +++ b/src/lib_version/value/generated_git_info.mli @@ -28,4 +28,4 @@ val committer_date : string val git_describe_octez : Tezos_version_parser.t -val git_describe_etherlink : Tezos_version_parser.t +val git_describe_octez_evm_node : Tezos_version_parser.t diff --git a/src/lib_version/version.ml b/src/lib_version/version.ml index 607c6e7fc872..2f0cd195720c 100644 --- a/src/lib_version/version.ml +++ b/src/lib_version/version.ml @@ -31,7 +31,7 @@ type additional_info = Tezos_version_parser.additional_info = | RC_dev of int | Release -type product = Tezos_version_parser.product = Octez | Etherlink +type product = Tezos_version_parser.product = Octez | Octez_evm_node type t = Tezos_version_parser.t = { product : product; @@ -50,7 +50,9 @@ let string_of_additional_info = function | RC_dev n -> Format.asprintf "~rc%d+dev" n | Release -> "" -let string_of_product = function Octez -> "Octez" | Etherlink -> "Etherlink" +let string_of_product = function + | Octez -> "Octez" + | Octez_evm_node -> "octez-evm-node" let pp f {product; major; minor; additional_info} = Format.fprintf diff --git a/src/lib_version/version.mli b/src/lib_version/version.mli index 23912a924768..a269e3a2b682 100644 --- a/src/lib_version/version.mli +++ b/src/lib_version/version.mli @@ -65,7 +65,7 @@ type additional_info = Tezos_version_parser.additional_info = val string_of_additional_info : additional_info -> string (** Product information. *) -type product = Tezos_version_parser.product = Octez | Etherlink +type product = Tezos_version_parser.product = Octez | Octez_evm_node (** Convert the product information to a string. *) val string_of_product : product -> string -- GitLab