This is an automated email from the ASF dual-hosted git repository.

mchades pushed a commit to branch branch-0.6
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/branch-0.6 by this push:
     new 6a175120c [#4695] Fix (python-client): Fix gradlew 
:clients:client-python:build failed if the package does not contain .git 
directory (#4705)
6a175120c is described below

commit 6a175120c0065edf2b8104593f8a3032c488b981
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Aug 27 17:51:33 2024 +0800

    [#4695] Fix (python-client): Fix gradlew :clients:client-python:build 
failed if the package does not contain .git directory (#4705)
    
    ### What changes were proposed in this pull request?
    
    Fix gradlew :clients:client-python:build failed if the package does not
    contain .git directory
    
    ### Why are the changes needed?
    
    Fix: #4695
    
    ### Does this PR introduce _any_ user-facing change?
    
    NO
    
    ### How was this patch tested?
    
    Manually test
    
    Co-authored-by: Yuhui <[email protected]>
---
 clients/client-python/gravitino/constants/root.py |  1 +
 clients/client-python/scripts/generate_version.py | 24 +++++++++++++++++++----
 2 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/clients/client-python/gravitino/constants/root.py 
b/clients/client-python/gravitino/constants/root.py
index 613983f1f..101a62bc5 100644
--- a/clients/client-python/gravitino/constants/root.py
+++ b/clients/client-python/gravitino/constants/root.py
@@ -21,4 +21,5 @@ from pathlib import Path
 
 MODULE_NAME = "gravitino"
 PROJECT_HOME = Path(__file__).parent.parent.parent
+PROJECT_ROOT = PROJECT_HOME.parent.parent
 GRAVITINO_DIR = PROJECT_HOME / MODULE_NAME
diff --git a/clients/client-python/scripts/generate_version.py 
b/clients/client-python/scripts/generate_version.py
index bf7e8c449..226f71530 100644
--- a/clients/client-python/scripts/generate_version.py
+++ b/clients/client-python/scripts/generate_version.py
@@ -17,10 +17,12 @@ specific language governing permissions and limitations
 under the License.
 """
 
+# coding=utf-8
+
 import re
 import configparser
-import subprocess
 from datetime import datetime
+from gravitino.constants.root import PROJECT_ROOT
 
 from gravitino.constants.version import Version, VERSION_INI, SETUP_FILE
 from gravitino.exceptions.base import GravitinoRuntimeException
@@ -28,6 +30,22 @@ from gravitino.exceptions.base import 
GravitinoRuntimeException
 VERSION_PATTERN = r"version\s*=\s*['\"]([^'\"]+)['\"]"
 
 
+def get_git_commit_id():
+    try:
+        commit_id = ""
+        git_path = f"{PROJECT_ROOT}/.git/"
+        with open(git_path + "HEAD", "r", encoding="utf-8") as file:
+            ref = file.readline().strip()
+
+        if ref.startswith("ref:"):
+            ref_path = ref.split(" ")[1]
+            with open(git_path + ref_path, "r", encoding="utf-8") as file:
+                commit_id = file.readline().strip()
+        return commit_id
+    except (FileNotFoundError, IOError):
+        return ""
+
+
 def main():
     with open(SETUP_FILE, "r", encoding="utf-8") as f:
         setup_content = f.read()
@@ -37,9 +55,7 @@ def main():
         else:
             raise GravitinoRuntimeException("Can't find valid version info in 
setup.py")
 
-    git_commit = (
-        subprocess.check_output(["git", "rev-parse", 
"HEAD"]).decode("ascii").strip()
-    )
+    git_commit = get_git_commit_id()
 
     compile_date = datetime.now().strftime("%d/%m/%Y %H:%M:%S")
 

Reply via email to