in tools/release/release-verify.py [0:0]
def validate_manifest(csdk_root, csdk_version, lib_versions):
"""
Validates the manifest.yml file at the root of the CSDK.
Args:
csdk_root (str): The root path to the CSDK repo.
csdk_versions (str): The new version of the CSDK repo.
lib_versions (dict): A dictionary containing the new versions of each library.
Please see tools/release/config.yml.
"""
with open(os.path.join(csdk_root, "manifest.yml")) as manifest_file:
manifest = yaml.safe_load(manifest_file, Loader=yaml.FullLoader)
# Verify the CSDK version is correct.
manifest_version = manifest["version"]
if manifest_version != csdk_version:
log_error(f"Invalid manifest.yml. CSDK version {manifest_version} should be {csdk_version}.")
# Verify that all libraries in this branch are also in the manifest.yml.
for library_dir in CSDK_LIBRARY_DIRS:
libraries = os.listdir(os.path.join(csdk_root, library_dir))
for library in libraries:
library = library.lower()
found = filter(lambda dep: dep["name"].casefold() == library, manifest["dependencies"])
found = list(found)
if len(found) != 1:
log_error(f"Invalid manifest.yml. Found {len(found)} occurrences of required library {library}.")
else:
dep_version = found[0]["version"]
dep_name = found[0]["name"]
if dep_version.lower() != lib_versions[library]:
log_error(f"Invalid manifest.yml. Invalid version {dep_version} for {dep_name}.")