Skip to content

Advanced cogen workflows #67

Description

@pshirshov

Let's assume that we have a Core domain and several Client domains.

We might want to be able to separately emit Core and Core+Client outputs. There might be issues with independent versioning of the domains.

Possible approaches

  1. Implement cross-domain imports and tag all the fields with imported types with versions (most flexible). Pro: convergence is impossible Cons: more metadata in runtime, larger blobs.
  2. Implement cross-domain imports and force users to bump downstream versions in sync with upstream changes (Core version bumps => all Client versions should bump). Upside: clean runtime and convergence is impossible. Downside: a lot of rituals.
  3. Support special annotations allowing users to change namespace to which a type is emitted (one domain may emit to different namespaces). Downside: dirty hack, convergence happens easily in uncontrollable manner.

Also we need to be able to tell Baboon which domains the user wants to process (do not always render everything).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions