Skip to content

Update naming conventions for multi-registry manifests #1197

@jsuereth

Description

@jsuereth

As part of #1160 - We discussed certain differences / naming conventions from what Weaver has today vs. what we want in the OTEP. A few points to nail down and change:

  • Migrating from registry_manifest.yaml to just manifest.yaml. We should (in a non-breaking way) move to the simpler named file.
  • Consistency in referencing registries. We have _id, _uri and _name today, we need to sort out what these mean.
  • Dependency Resolution needs to understand if we have a "diamond dependency". This means we need to see if we're depending on "the same" registry but two different versions.

A set of principles:

  • We need a name for a registry. This should be unique across all registries, and can be used to denote if we have a dependency chain with two versions of the "same" registry.
  • We need a uri for a registry. This should denote the Manifest file or the directory where the manifest file can be found.
  • We need a uri for where to find resolved schema. This should denote where we load the resolved schema and will be a VirtualDirectoryRef. (Note: VirtualDirectoryRef can be a file in a virtual directory, e.g. a file in a git repo or a file inside a zip archive).

Strawman Proposal:

  • Allow registry_manfiest.yaml or manfiest.yaml to be the name of a registry manifest.
    • Prefer manifest.yaml if it exists.
    • Issue a warning if we see registry_manifest.yaml is used.
  • We consistently use "Weaver URI" in documentation and code to represent VirtualDirectoryRef strings.
  • Change RegistryManifest as follows:
    • resolved_schema_url becomes resolved_schema_uri.
  • name is removed.
  • repository_url is changed to be schema_url - I.e. this is the schema_url this registry will fill in telemetry.
  • name of a registry will be inferred from schema_url - We drop the "version" component of the URL, and we get a unique name we can use to identify version conflicts in dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    modelModifies the model for signals and attributes used by Weaver.resolution engineIssues relating to behavior of resolving raw schema files into a cohesive model

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions