finos / rune-dsl

The project containing the Rune DSL grammar and default code generators
Apache License 2.0
24 stars 29 forks source link

Clarification of the definition and use of the meta data annotations #777

Open dschwartznyc opened 1 week ago

dschwartznyc commented 1 week ago

In prep for adding metadata support to the Python implementation, we (@priyanka-amarnani @plamen-neykov @davidcarrascosa00) are looking for clarification on the definition and use of meta data annotations.

A few questions at the start:

  1. Keys

    What is responsible for key generation?
    Can a key be "user" supplied? Does the standard enforce uniqueness for keys? If so and if there is a clash, what is supposed to happen?

  2. global vs external

    What is the difference between them?
    if an item refers to both, what happens if the globalReference points to a different thing than the externalReference? Is there a priority in the references? Does the first reference prevail?

  3. If there are only globalReferences, can the collection of key / values be "destroyed" when the object goes out of scope?
  4. If there are externalReferences, does the collection of key / values need to remain after the object goes out of scope? If so, for how long?
dschwartznyc commented 4 days ago

Additionally, is the global key expected to be invariant between versions of the same "object?" IE Are all keys expected to be the same after update or, as long as reference consistency is maintained, can they change?