From 6250fd08d738cfcab0d84eff4fc29164bd48ca80 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Sun, 8 Oct 2023 13:25:21 +0800 Subject: [PATCH 1/3] docs: Add verify script Signed-off-by: Xuanwo --- scripts/README.md | 6 +++ scripts/verify.py | 63 +++++++++++++++++++++++++ website/community/committers/release.md | 8 ++++ 3 files changed, 77 insertions(+) create mode 100755 scripts/verify.py diff --git a/scripts/README.md b/scripts/README.md index 07c71dcfffd4..57c9c2df73f4 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -53,3 +53,9 @@ Please decide how far you trust this user to correctly verify other users' keys Your decision? 5 #choose 5 Do you really want to set this key to ultimate trust? (y/N) y #choose y ``` + +## Verify + +```shell +./scripts/verify.py +``` diff --git a/scripts/verify.py b/scripts/verify.py new file mode 100755 index 000000000000..72dc845211c3 --- /dev/null +++ b/scripts/verify.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 + +import subprocess +import sys +import os + +BASE_DIR = os.getcwd() + + +def check_rust(): + try: + subprocess.run(['cargo', '--version'], check=True) + return True + except FileNotFoundError: + return False + except Exception as e: + raise Exception("Check rust met unexpected error", e) + + +def check_java(): + try: + subprocess.run(['java', '--version'], check=True) + return True + except FileNotFoundError: + return False + except Exception as e: + raise Exception("Check java met unexpected error", e) + + +def build_core(): + print("Start building opendal core") + + subprocess.run(['cargo', 'build'], check=True) + + +def build_java_binding(): + print("Start building opendal java binding") + + # change to java binding directory + os.chdir('bindings/java') + + subprocess.run(['./mvnw', 'clean', 'install', '-DskipTests=true'], check=True) + + # change back to base directory + os.chdir(BASE_DIR) + + +def main(): + if not check_rust(): + print("Cargo is not found, please check if rust development has been setup correctly") + print("Visit https://www.rust-lang.org/tools/install for more information") + sys.exit(1) + + build_core() + + if check_java(): + build_java_binding() + else: + print("Java is not found, skipped building java binding") + + +if __name__ == "__main__": + main() diff --git a/website/community/committers/release.md b/website/community/committers/release.md index 04aa57564ac9..05d6136772fd 100644 --- a/website/community/committers/release.md +++ b/website/community/committers/release.md @@ -304,6 +304,10 @@ https://github.com/apache/incubator-opendal/tree/main/scripts To compile from source, please refer to: https://github.com/apache/incubator-opendal/blob/main/CONTRIBUTING.md +Here is python script in release to help you verify the release candidate: + +./scripts/verify.py + Thanks ${name} @@ -415,6 +419,10 @@ https://github.com/apache/incubator-opendal/tree/main/scripts To compile from source, please refer to: https://github.com/apache/incubator-opendal/blob/main/CONTRIBUTING.md +Here is python script in release to help you verify the release candidate: + +./scripts/verify.py + Thanks ${name} From 5aa9056495bf807d4132a2647c86899df0343394 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Sun, 8 Oct 2023 13:29:07 +0800 Subject: [PATCH 2/3] Fix license Signed-off-by: Xuanwo --- scripts/verify.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/scripts/verify.py b/scripts/verify.py index 72dc845211c3..7117cc6ac983 100755 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -1,4 +1,21 @@ #!/usr/bin/env python3 +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + import subprocess import sys From 7f06df6edec3ba5a5870b252f5f123c0adf78849 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Sun, 8 Oct 2023 13:43:56 +0800 Subject: [PATCH 3/3] Use release build Signed-off-by: Xuanwo --- scripts/verify.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/scripts/verify.py b/scripts/verify.py index 7117cc6ac983..a43ece1c4225 100755 --- a/scripts/verify.py +++ b/scripts/verify.py @@ -26,7 +26,7 @@ def check_rust(): try: - subprocess.run(['cargo', '--version'], check=True) + subprocess.run(["cargo", "--version"], check=True) return True except FileNotFoundError: return False @@ -36,7 +36,7 @@ def check_rust(): def check_java(): try: - subprocess.run(['java', '--version'], check=True) + subprocess.run(["java", "--version"], check=True) return True except FileNotFoundError: return False @@ -47,16 +47,25 @@ def check_java(): def build_core(): print("Start building opendal core") - subprocess.run(['cargo', 'build'], check=True) + subprocess.run(["cargo", "build", "--release"], check=True) def build_java_binding(): print("Start building opendal java binding") # change to java binding directory - os.chdir('bindings/java') - - subprocess.run(['./mvnw', 'clean', 'install', '-DskipTests=true'], check=True) + os.chdir("bindings/java") + + subprocess.run( + [ + "./mvnw", + "clean", + "install", + "-DskipTests=true", + "-Dcargo-build.profile=release", + ], + check=True, + ) # change back to base directory os.chdir(BASE_DIR) @@ -64,7 +73,9 @@ def build_java_binding(): def main(): if not check_rust(): - print("Cargo is not found, please check if rust development has been setup correctly") + print( + "Cargo is not found, please check if rust development has been setup correctly" + ) print("Visit https://www.rust-lang.org/tools/install for more information") sys.exit(1)