Skip to content

Dependency management for manifests #55

@saheljalal

Description

@saheljalal

When docking a manifest using nostromo dock it pulls down one or more manifests locally. Now that we have support for multiple manifests, it will be likely that users will split functionality up with more granularity. In some cases, it could be that a manifest command may depend on another that isn't in the same manifest.

To be able to build composable manifests, we can add a dependencies field that includes sources for other manifests. On sync functionality (sync, dock, undock) we can automatically ingest or delete these additional manifests.

Proposed model.Manifest updates:

struct LinkedManifest {
    UUID string
    Name string
    Source string
}

struct Manifest {
    ...
    links []*LinkedManifest
}

Store the UUID for now in case we can support versioning in the future.

Add a new command to link manifests together:

nostromo link <source> <target>

This command, similar to dock, should download the manifest, parse it, store it, and add the dependency record in the target manifest.

Note that care should be taken with collision detection and circular references. Need a solution to avoid problems with these scenarios.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions