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.domainand 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 calledbilling), both are kept and reported. -
orun planandorun catalog refreshwarn. 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 validaterefuses it. The collision is an error,catalog.entity.ref.collision, attributed to the declaration to rename (apps/web/component.yaml#/spec/domain). validate exits1. -
The catalog snapshot records it.
catalog.jsoncarries the collision as a warning issue, with a newcodefield on catalog issues.
The ref format is unchanged.
What to do
- Run
orun catalog validatein a repository you maintain. For eachcatalog.entity.ref.collision, rename the domain (or system, environment, …) so that it no longer matches a component name. The swept baselines renamedweb,apiandrecipesdomains toapp. - A catalog that already showed a stray Domain in Orunbase shows the Component after the next plan or push with this release.