|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
import subprocess |
|
|
|
RAGFLOW_VERSION_INFO = "unknown" |
|
|
|
|
|
def get_ragflow_version() -> str: |
|
global RAGFLOW_VERSION_INFO |
|
if RAGFLOW_VERSION_INFO != "unknown": |
|
return RAGFLOW_VERSION_INFO |
|
version_path = os.path.abspath( |
|
os.path.join( |
|
os.path.dirname(os.path.realpath(__file__)), os.pardir, "VERSION" |
|
) |
|
) |
|
if os.path.exists(version_path): |
|
with open(version_path, "r") as f: |
|
RAGFLOW_VERSION_INFO = f.read().strip() |
|
else: |
|
RAGFLOW_VERSION_INFO = get_closest_tag_and_count() |
|
LIGHTEN = int(os.environ.get("LIGHTEN", "0")) |
|
RAGFLOW_VERSION_INFO += " slim" if LIGHTEN == 1 else " full" |
|
return RAGFLOW_VERSION_INFO |
|
|
|
|
|
def get_closest_tag_and_count(): |
|
try: |
|
|
|
commit_id = ( |
|
subprocess.check_output(["git", "rev-parse", "--short", "HEAD"]) |
|
.strip() |
|
.decode("utf-8") |
|
) |
|
|
|
closest_tag = ( |
|
subprocess.check_output(["git", "describe", "--tags", "--abbrev=0"]) |
|
.strip() |
|
.decode("utf-8") |
|
) |
|
|
|
process = subprocess.Popen( |
|
["git", "rev-list", "--count", f"{closest_tag}..HEAD"], |
|
stdout=subprocess.PIPE, |
|
) |
|
commits_count, _ = process.communicate() |
|
commits_count = int(commits_count.strip()) |
|
|
|
if commits_count == 0: |
|
return closest_tag |
|
else: |
|
return f"{commit_id}({closest_tag}~{commits_count})" |
|
except Exception: |
|
return "unknown" |
|
|