diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6647ba35d..634380fa9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -86,7 +86,7 @@ We do not require that community members conduct formal Software Quality Assuran Every application and operator should have an associated *metadata.json* file which describes the features and dependencies. -`metadata.json` schemas differ slightly for [applications](./applications/metadata.schema.json), [GXF extensions](./gxf_extensions/metadata.schema.json), [operators](./operators/metadata.schema.json), and [tutorials](./tutorials/metadata.schema.json), but generally follow the convention below: +`metadata.json` schemas differ slightly for [workflows](./workflows/metadata.schema.json), [applications](./applications/metadata.schema.json), [GXF extensions](./gxf_extensions/metadata.schema.json), [operators](./operators/metadata.schema.json), and [tutorials](./tutorials/metadata.schema.json), but generally follow the convention below: ```json // Main json definition for application or operator diff --git a/utilities/gather_metadata.py b/utilities/gather_metadata.py index 72e23dc18..2de0b1a1b 100644 --- a/utilities/gather_metadata.py +++ b/utilities/gather_metadata.py @@ -87,7 +87,7 @@ def generate_build_and_run_command(metadata: dict) -> str: def gather_metadata(repo_path, exclude_files: None) -> dict: """Collect project metadata from JSON files into a single dictionary""" - SCHEMA_TYPES = ["application", "operator", "gxf_extension", "tutorial"] + SCHEMA_TYPES = ["workflow", "application", "operator", "gxf_extension", "tutorial"] metadata_files = find_metadata_files(repo_path) metadata = [] diff --git a/utilities/summarize_metadata.py b/utilities/summarize_metadata.py index b8688596c..4994db177 100644 --- a/utilities/summarize_metadata.py +++ b/utilities/summarize_metadata.py @@ -44,6 +44,7 @@ class ProjectType(Enum): APPLICATION = 0 GXF_EXTENSION = 1 OPERATOR = 2 + WORKFLOW = 3 @dataclass @@ -68,9 +69,9 @@ def schema(self) -> dict: project_type_data = [ ProjectTypeData(ProjectType.APPLICATION, "applications", "application"), - ProjectTypeData(ProjectType.APPLICATION, "workflows", "workflow"), ProjectTypeData(ProjectType.GXF_EXTENSION, "gxf_extensions", "gxf_extension"), ProjectTypeData(ProjectType.OPERATOR, "operators", "operator"), + ProjectTypeData(ProjectType.WORKFLOW, "workflows", "workflow"), ] diff --git a/workflows/metadata.schema.json b/workflows/metadata.schema.json index 6bd5b0b7e..1aed5251d 100644 --- a/workflows/metadata.schema.json +++ b/workflows/metadata.schema.json @@ -1,9 +1,9 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "$id": "holohub/application/v1", + "$id": "holohub/workflow/v1", "type": "object", "properties": { - "application": { + "workflow": { "type": "object", "properties": { "name": { @@ -30,6 +30,9 @@ "holoscan_sdk": { "$ref": "holohub/project/v1#/$defs/sdk_version" }, + "holoscscan_sensor_bridge": { + "$ref": "holohub/project/v1#/$defs/sdk_version" + }, "ranking": { "$ref": "holohub/project/v1#/$defs/ranking" }, @@ -51,6 +54,7 @@ "platforms", "tags", "holoscan_sdk", + "holoscscan_sensor_bridge", "ranking", "dependencies" ] @@ -59,11 +63,6 @@ "$ref": "holohub/gxf_extension/v1#/properties/gxf_extension" }, "oneOf": [ - { - "required": [ - "workflow" - ] - }, { "required": [ "workflow" diff --git a/workflows/real_time_ai_surgical_video_processing/python/metadata.json b/workflows/real_time_ai_surgical_video_processing/python/metadata.json index 0efb6e258..340e6d053 100644 --- a/workflows/real_time_ai_surgical_video_processing/python/metadata.json +++ b/workflows/real_time_ai_surgical_video_processing/python/metadata.json @@ -1,6 +1,6 @@ { - "application": { - "name": "Real-Time AI Surgical Video Processing Workflow", + "workflow": { + "name": "Real-Time Surgical Edge AI Workflow", "authors": [ { "name": "Holoscan Team", @@ -18,11 +18,19 @@ "3.0.0" ] }, + "holoscscan_sensor_bridge": { + "minimum_required_version": "2.0.0", + "tested_versions": [ + "2.0.0" + ] + }, "platforms": [ "amd64", "arm64" ], "tags": [ + "Workflow", + "End-to-End Application", "Multiai", "SSD", "Detection", @@ -51,7 +59,7 @@ "libraries": [ { "name": "cupy", - "version": "11.6.0" + "version": "13.3.0" } ] },