v2.77.0
Binaries and the merged-pull-request list are on the GitHub releases page.
Environments have a front door
An environment in intent.yaml can now say where it runs:
environments:
stage:
url: https://stage.example.com
prod:
description: Where customers are.
url: https://app.example.com
links:
- { title: API, url: https://api.example.com }
promotion:
dependsOn: [{ environment: stage }]
url is the address a person opens to reach the product in that environment;
links are further doors after it. Both must be absolute http(s) URLs, and
orun plan refuses a relative one (environments.url.invalid).
The catalog carries them: every environment named under environments: is now
an Environment entity in the snapshot, whether or not a component deploys to
it yet, with the url as its primary link (links[0], role: primary, also
spec.url), the declared links after it, and its depth in the promotion
chain as spec.order. A catalog.entities entry for the same environment
still applies and fills what the block left empty; its links follow the
declared ones. Orunbase shows the doors on the workspace Overview, beside the
product's description. orun catalog describe environment:prod prints them,
with the role beside the primary link.
A repo self-describes without a repo: block
The Repo entity used to exist only when intent.yaml carried a top-level
repo: block. It is now emitted whenever metadata.description is set, and
when the block (or the metadata) declares no docs.overview, a README.md at
the repo root is the overview by convention: read at the pinned commit, under
the same size cap, as a content-addressed blob in the catalog closure. A
declared repo.docs.overview still wins.
Repositories with a description or a root README will see their catalog digest change once on the next push, as the snapshot gains the entity and the doc.
Catalog links carry a role
links[].role is new on the entity envelope. primary marks the one link
that is an entity's front door; every other link carries no role.