code: def validate_provider_info_with_runtime_schema(
      provider_info: dict[str, Any]
  ) -> None:
      """Validates provider info against the runtime schema.
  
      This way we check if the provider info in the packages is future-compatible.
      The Runtime Schema should only change when there is a major version change.
  
      :param provider_info: provider info to validate
      """
      import jsonschema
  
      schema = json.loads(PROVIDER_RUNTIME_DATA_SCHEMA_PATH.read_text())
      try:
          jsonschema.validate(provider_info, schema=schema)
      except jsonschema.ValidationError as ex:
          get_console().print(
              "[red]Provider info not validated against runtime schema[/]"
          )
          raise Exception(
              "Error when validating schema. The schema must be compatible with "
              "airflow/provider_info.schema.json.",
              ex,
          )
  
imports: from __future__ import annotations
  import fnmatch
  import json
  import os
  import subprocess
  import sys
  from enum import Enum
  from functools import lru_cache
  from pathlib import Path
  from typing import Any, Iterable, NamedTuple
  from airflow_breeze.global_constants import ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS, PROVIDER_DEPENDENCIES, PROVIDER_RUNTIME_DATA_SCHEMA_PATH, REGULAR_DOC_PACKAGES
  from airflow_breeze.utils.console import get_console
  from airflow_breeze.utils.path_utils import AIRFLOW_PROVIDERS_ROOT, BREEZE_SOURCES_ROOT, DOCS_ROOT, GENERATED_PROVIDER_PACKAGES_DIR, PROVIDER_DEPENDENCIES_JSON_FILE_PATH
  from airflow_breeze.utils.publish_docs_helpers import _load_schema, get_provider_yaml_paths
  from airflow_breeze.utils.run_utils import run_command
  from airflow_breeze.utils.versions import get_version_tag, strip_leading_zeros_from_version
label_desc: Use image node_id 4 for calling a global function with example usage: validate_provider_info_with_runtime_schema(provider_info) without return types