# Overview
Two topics, since the relevant functionality was delivered in two parts
1. support for a new `olm.csv.metadata` FBC object to convery packagemanifest information; and
2. support to update old FBC catalogs to use the new metadata, as `opm render --migrate`
# 1. packagemanifest data formats served by opm
`opm serve` facilitates operator console visibility, provided by the grpc packagemanifest API.
`opm` was updated to provide a more efficient FBC representation of the data in [`olm.csv.metadata`](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#olmcsvmetadata), versus old [`olm.bundle.object`](https://olm.operatorframework.io/docs/reference/file-based-catalogs/#olmbundleobject-deprecated).
The change was part of
- [17ee584](https://github.com/openshift/operator-framework-olm/commit/17ee5843088164756281d2dba2d25726859a6461) (downstream OCP, 20July2023)
- v1.28.0 [2ee231b](https://github.com/operator-framework/operator-registry/commit/2ee231b3235cb38aeb045845627a7d7ffb98d1b4) (upstream github, 6 June 2023)
We maintain backwards compatibility, so all future versions can serve old/new packagemanifest data. *Older `opm` versions do not know how to serve the new format and discard it.*
**Therefore, operators contributing new-format metadata in catalogsources served by older versions of opm are not visible to the console or `oc get packagemanifests cli`.**
OLM does not rely on the packagemanifest data, so `opm validate` does not fail if it is missing.
The current 4.15 build of ose-operator-registry provides opm 59aa935eb (correlating to [this](https://github.com/openshift/operator-framework-olm/commit/59aa935ebbe6948921ea3292603cbdce898e0091)). It is newer than [17ee584](https://github.com/openshift/operator-framework-olm/commit/17ee5843088164756281d2dba2d25726859a6461), so they generate the new `olm.csv.metadata` packagemanifest info (but can serve older `olm.bundle.object`).
## Availability
- upstream
- [v1.28.0](https://github.com/operator-framework/operator-registry/releases/tag/v1.28.0) or later
- downstream
- [ose-operator-registry:v4.14](registry.redhat.io/openshift4/ose-operator-registry:v4.14)
- [ose-operator-registry-rhel9:v4.15](registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.15)
# 2. opm render migrate support
This was a separate PR to support `opm render --migrate` command to convert an existing FBC to the latest format.
## Availability
- upstream
- [operator-framework/operator-registry#1144](https://github.com/operator-framework/operator-registry/pull/1144)
- [v1.30.0](https://github.com/operator-framework/operator-registry/releases/tag/v1.30.0) or later
- downstream
- [openshift/operator-framework-olm#581](https://github.com/openshift/operator-framework-olm/pull/581)
- commit [34b7beee8caddb0256733f2f3fa79fae0f8ef163](https://github.com/openshift/operator-framework-olm/commit/34b7beee8caddb0256733f2f3fa79fae0f8ef163)
- [ose-operator-registry-rhel9:v4.15](registry.redhat.io/openshift4/ose-operator-registry-rhel9:v4.15)