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")