Skip to main content

v2.89.0

Binaries and the merged-pull-request list are on the GitHub releases page.

A component is no longer hidden by an entity of its own name​

Every repo-local catalog entity has a ref of the form <namespace>/<repo>/<name>, whatever its kind. A component and the domain it declares get their refs the same way, and the kind is not part of the ref. So this component:

# apps/web/component.yaml
metadata:
name: web
spec:
domain: web

gave a Component and a Domain the same ref, default/<repo>/web. orun wrote both: the component under components/ and the domain under entities/Domain/. Orunbase keeps one entity per ref, and it reads the domain last. Workspaces built from baselines with this shape had a Domain web in catalog_search and no web component. The product's one deployable was missing from its own catalog and scorecard, and nothing said why.

From this release:

  • The Component keeps the ref. If an entity of another kind resolves to a component's ref, orun leaves that entity out of the catalog it writes. This covers a Domain, System, Environment, API, Resource, Composition, the Repo self-description, or an agent type. The domain is only a name and a list of members. The component still records it in spec.domain and in its relations. The component is what gets built, deployed, scored and documented. If two kinds that are not components share a ref (a system and a domain both called billing), both are kept and reported.

  • orun plan and orun catalog refresh warn. The plan still succeeds. The warning names both entities, where each is declared, and what to rename. A re-plan of an unchanged tree repeats it:

    warning: catalog: catalog ref default/shop/web names 2 entities of different kinds: Component "web" (apps/web/component.yaml) and Domain "web" (spec.domain in apps/web/component.yaml). A ref names one entity, so the catalog keeps the Component and leaves the Domain out. Rename one of them — e.g. the Domain's spec.domain in apps/web/component.yaml
  • orun catalog validate refuses it. The collision is an error, catalog.entity.ref.collision, attributed to the declaration to rename (apps/web/component.yaml#/spec/domain). validate exits 1.

  • The catalog snapshot records it. catalog.json carries the collision as a warning issue, with a new code field on catalog issues.

The ref format is unchanged.

What to do​

  • Run orun catalog validate in a repository you maintain. For each catalog.entity.ref.collision, rename the domain (or system, environment, …) so that it no longer matches a component name. The swept baselines renamed web, api and recipes domains to app.
  • A catalog that already showed a stray Domain in Orunbase shows the Component after the next plan or push with this release.