docs: def norm_name(build_module: str, target_name: str):
      """Return a normalized canonical target name for the `target_name`
         observed in build module `build_module`.
  
      A normalized canonical target name is of the form "<build module>:<name>",
      where <build module> is the relative normalized path from the project root
      to the target build module (POSIX), and <name> is a valid target name
      (see `validate_name()`).
      """
      if ':' not in target_name:
          raise ValueError(
              "Must provide fully-qualified target name (with `:') to avoid "
              "possible ambiguity - `{}' not valid".format(target_name))
  
      mod, name = split(target_name)
      return '{}:{}'.format(
          PurePath(norm_proj_path(mod, build_module)).as_posix().strip('.'),
          validate_name(name))