User defined run identifiers

Summary

This RFC seeks input on the creation of a run identifier scheme that uses user-defined strings.

No part of this RFC proposes breaking changes.

This proposal is under development

Problem

Guild uniquely identified each run using a globally unique identifier. These identifiers are represented as hexadecimal encodings of 128 bit UUIDs according to RFC 4122.

Guild use UUIDs to ensure uniqueness across both local and remote runs. Guild runs may be freely copied across systems without concern for ID collisions.

The naming scheme proposed here does not replace Guild’s run identifier scheme.

TODO: elaborate on the following in-play problems

  • How is this value specified
  • Can there be multiple such identifiers that point to a single run?
  • What are the implications of multiple runs having the same identifier?
  • How is this value displayed in a listing?
  • How is this value used to identify runs
    • List filtering
    • Command selection
    • Dependency selection
    • ???
  • How is this value different from a run label, if it is?
  • What else???

Proposed Approach

TODO: outline use of tags for this - cite docker and git conventions, which both maintain unique identifiers (commit hashes an image IDs for git and docker respectively)

Alternative Approaches

Do nothing for now

TODO: outline how the existing feature set can be used

Use labels

TODO: outline how we might use labels for this

Introduce a new data structure run name

TODO: outline a official new ‘name’ concept