mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-31 10:39:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			124 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import argparse
 | |
| import re
 | |
| import logging
 | |
| 
 | |
| logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s")
 | |
| logger = logging.getLogger()
 | |
| 
 | |
| 
 | |
| def get_python_version(version: str) -> str:
 | |
|     "Get Python Package formatted version"
 | |
| 
 | |
|     if "-rc" in version:
 | |
|         version_parts = version.split("-")
 | |
|         return f"{version_parts[0]}.0{version_parts[1]}"
 | |
|     return f"{version}.0"
 | |
| 
 | |
| 
 | |
| def regex_sub(file_path: str, pattern: str, substitution: str):
 | |
|     with open(file_path, "r") as f:
 | |
|         content = f.read()
 | |
| 
 | |
|     updated_content = re.sub(
 | |
|         pattern,
 | |
|         substitution,
 | |
|         content
 | |
|     )
 | |
| 
 | |
|     with open(file_path, "w") as f:
 | |
|         f.write(updated_content)
 | |
| 
 | |
| 
 | |
| def update_dockerfile_arg(arg, file_path, value):
 | |
|     """Updates a Dockerfile ARG."""
 | |
| 
 | |
|     logger.info(f"Updating ARG {arg} in {file_path} to {value}\n")
 | |
| 
 | |
|     regex_sub(
 | |
|         file_path,
 | |
|         rf"(ARG\s+{arg}=).+",
 | |
|         rf'\1"{value}"',
 | |
| 
 | |
|     )
 | |
| 
 | |
| 
 | |
| def update_docker_tag(args):
 | |
|     """Updates the Docker Tag on docker-compose files."""
 | |
| 
 | |
|     file_path = args.file_path
 | |
|     tag = args.tag
 | |
| 
 | |
|     logger.info(f"Updating Docker Tag in {file_path} to {tag}\n")
 | |
| 
 | |
|     regex_sub(
 | |
|         file_path,
 | |
|         r'(image: docker\.getcollate\.io/openmetadata/.*?):.+',
 | |
|         rf'\1:{tag}',
 | |
|     )
 | |
| 
 | |
| 
 | |
| def update_ri_version(args):
 | |
|     """Updates a Dockerfile RI_VERSION ARG."""
 | |
| 
 | |
|     version = args.version
 | |
|     with_python_version = args.with_python_version
 | |
|     file_path = args.file_path
 | |
| 
 | |
|     if with_python_version:
 | |
|         version = get_python_version(version)
 | |
| 
 | |
|     update_dockerfile_arg(
 | |
|         arg="RI_VERSION",
 | |
|         file_path=file_path,
 | |
|         value=version
 | |
|     )
 | |
| 
 | |
| 
 | |
| def update_pyproject_version(args):
 | |
|     """Updates pyproject version."""
 | |
| 
 | |
|     file_path = args.file_path
 | |
|     version = args.version
 | |
| 
 | |
|     version = get_python_version(version)
 | |
| 
 | |
| 
 | |
|     logger.info(f"Updating {file_path} version to {version}\n")
 | |
| 
 | |
|     regex_sub(
 | |
|         file_path,
 | |
|         r'version\s*=\s*"[^"]+"',
 | |
|         f'version = "{version}"',
 | |
|     )
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     parser = argparse.ArgumentParser(description="Update files for release.")
 | |
|     subparsers = parser.add_subparsers(required=True)
 | |
| 
 | |
|     # Update Docker tag
 | |
|     parser_udt = subparsers.add_parser("update_docker_tag")
 | |
|     parser_udt.add_argument("--file-path", "-f", type=str, help="Docker compose file to update.")
 | |
|     parser_udt.add_argument("--tag", "-t", type=str, help="Tag to update the file to.")
 | |
|     parser_udt.set_defaults(func=update_docker_tag)
 | |
| 
 | |
|     # Update Dockerfile ARG
 | |
|     parser_urv = subparsers.add_parser("update_ri_version")
 | |
|     parser_urv.add_argument("--file-path", "-f", type=str, help="Dockerfile file to update.")
 | |
|     parser_urv.add_argument("--version", "-v", type=str, help="Verision to set for the argument")
 | |
|     parser_urv.add_argument("--with-python-version", action="store_true")
 | |
|     parser_urv.set_defaults(func=update_ri_version)
 | |
| 
 | |
|     # Update pyproject.toml Version
 | |
|     parser_upv = subparsers.add_parser("update_pyproject_version")
 | |
|     parser_upv.add_argument("--file-path", "-f", type=str, help="pyproject.toml file to update.")
 | |
|     parser_upv.add_argument("--version", "-v", type=str, help="Version to update to")
 | |
|     parser_upv.set_defaults(func=update_pyproject_version)
 | |
| 
 | |
|     args = parser.parse_args()
 | |
|     args.func(args)
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | 
