@ -62,13 +62,14 @@ def is_dirty(cwd: str = BASEDIR) -> bool:
return dirty
@dataclass ( frozen = True )
@dataclass
class OpenpilotMetadata :
version : str
release_notes : str
git_commit : str
git_origin : str
git_commit_date : str
build_style : str
is_dirty : bool # whether there are local changes
@property
@ -90,7 +91,7 @@ class OpenpilotMetadata:
. replace ( " : " , " / " , 1 )
@dataclass ( frozen = True )
@dataclass
class BuildMetadata :
channel : str
openpilot : OpenpilotMetadata
@ -103,6 +104,10 @@ class BuildMetadata:
def release_channel ( self ) - > bool :
return self . channel in RELEASE_BRANCHES
@property
def canonical ( self ) - > str :
return f " { self . openpilot . version } - { self . openpilot . git_commit } - { self . openpilot . build_style } "
def build_metadata_from_dict ( build_metadata : dict ) - > BuildMetadata :
channel = build_metadata . get ( " channel " , " unknown " )
@ -112,6 +117,7 @@ def build_metadata_from_dict(build_metadata: dict) -> BuildMetadata:
git_commit = openpilot_metadata . get ( " git_commit " , " unknown " )
git_origin = openpilot_metadata . get ( " git_origin " , " unknown " )
git_commit_date = openpilot_metadata . get ( " git_commit_date " , " unknown " )
build_style = openpilot_metadata . get ( " build_style " , " unknown " )
return BuildMetadata ( channel ,
OpenpilotMetadata (
version = version ,
@ -119,6 +125,7 @@ def build_metadata_from_dict(build_metadata: dict) -> BuildMetadata:
git_commit = git_commit ,
git_origin = git_origin ,
git_commit_date = git_commit_date ,
build_style = build_style ,
is_dirty = False ) )
@ -139,6 +146,7 @@ def get_build_metadata(path: str = BASEDIR) -> BuildMetadata:
git_commit = get_commit ( path ) ,
git_origin = get_origin ( path ) ,
git_commit_date = get_commit_date ( path ) ,
build_style = " unknown " ,
is_dirty = is_dirty ( path ) ) )
cloudlog . exception ( " unable to get build metadata " )