Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions workspaces/extensions/.changeset/few-bugs-teach.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
'@red-hat-developer-hub/backstage-plugin-extensions-common': minor
---

Normalize support-level terminology from `generally-available` to `production` in extensions schemas, shared support-level types, and related examples/docs.

**BREAKING**: Plugin metadata using `spec.support.level: generally-available` is no longer treated as GA by the extensions UI badge/filter logic. Migrate custom plugin metadata to `spec.support.level: production` to keep the same behavior.
6 changes: 3 additions & 3 deletions workspaces/extensions/docs/catalog/plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,15 @@ All plugins inherit from Backstage's standard Entity interface and include:
```yaml
support:
provider: 'Red Hat' # Required: Support provider name, like 'Red Hat', 'IBM', 'Spotify', 'Backstage Community', etc.
level: 'generally-available' # Required: Support level
level: 'production' # Required: Support level
```

###### Support Level Values

The `support.level` field indicates the maturity and support level
provided bt the `support.provider`. Like:

- **`generally-available`**: Stable, fully supported plugins ready for production use.
- **`production`**: Stable, fully supported plugins ready for production use.
- **`tech-preview`**: A technical preview of a plugin that is not fully supported yet.
- **`dev-preview`**: An early-stage plugin.
- **`community`**: Open-source plugins, supported by Community.
Expand Down Expand Up @@ -158,7 +158,7 @@ spec:
publisher: 'Red Hat'
support:
name: 'Red Hat'
level: 'generally-available'
level: 'production'
categories:
- 'CI/CD'
- 'Kubernetes'
Expand Down
2 changes: 1 addition & 1 deletion workspaces/extensions/examples/all-plugins.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ spec:
- ./plugins/search.yaml
- ./plugins/support-community.yaml
- ./plugins/support-dev-preview.yaml
- ./plugins/support-generally-available.yaml
- ./plugins/support-production.yaml
- ./plugins/support-none.yaml
- ./plugins/support-string.yaml
- ./plugins/support-tech-preview.yaml
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ apiVersion: extensions.backstage.io/v1alpha1
kind: Plugin
metadata:
namespace: extensions-plugin-demo
name: support-generally-available
title: Support Generally Available
name: support-production
title: Support Production
annotations:
extensions.backstage.io/pre-installed: 'true'
spec:
categories:
- Test plugin entity
support:
provider: A provider
level: generally-available
level: production
2 changes: 1 addition & 1 deletion workspaces/extensions/json-schema/packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@
"level": {
"type": "string",
"enum": [
"generally-available",
"production",
"tech-preview",
"dev-preview",
"community",
Expand Down
2 changes: 1 addition & 1 deletion workspaces/extensions/json-schema/plugins.json
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
"level": {
"type": "string",
"enum": [
"generally-available",
"production",
"tech-preview",
"dev-preview",
"community",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ test.describe('Admin > Extensions', () => {
await extensions.resetSupportTypeFilter(translations.badges.certified);
});

test('Verify Generally available badge in extensions', async ({
test('Verify production badge in extensions', async ({
browser: _browser,
}) => {
await extensions.selectSupportTypeFilter(
Expand All @@ -171,7 +171,7 @@ test.describe('Admin > Extensions', () => {
),
sharedPage,
);
await extensionHelper.clickLink({ href: '/support-generally-available' });
await extensionHelper.clickLink({ href: '/support-production' });

await extensionHelper.labelTextContentVisible(
translations.badges.productionReadyBy.replace(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -440,10 +440,10 @@ export enum ExtensionsSupportLevel {
// (undocumented)
DEV_PREVIEW = "dev-preview",
// (undocumented)
GENERALLY_AVAILABLE = "generally-available",
// (undocumented)
NONE = "none",
// (undocumented)
PRODUCTION = "production",
// (undocumented)
TECH_PREVIEW = "tech-preview"
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* @public
*/
export enum ExtensionsSupportLevel {
GENERALLY_AVAILABLE = 'generally-available',
PRODUCTION = 'production',
TECH_PREVIEW = 'tech-preview',
DEV_PREVIEW = 'dev-preview',
COMMUNITY = 'community',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
* limitations under the License.
*/

/* eslint-disable react/react-in-jsx-scope */

import Chip from '@mui/material/Chip';
import TaskAltIcon from '@mui/icons-material/TaskAlt';
import Tooltip from '@mui/material/Tooltip';
Expand Down Expand Up @@ -59,7 +61,7 @@ const getBadgeOptions = (
}),
};
}
if (supportLevel === ExtensionsSupportLevel.GENERALLY_AVAILABLE) {
if (supportLevel === ExtensionsSupportLevel.PRODUCTION) {
return {
isBadge: true,
color: colors.generallyAvailable,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ export const useFilteredSupportTypes = () => {
});

Object.entries(supportLevelCounts).forEach(([level, count]) => {
if (level === ExtensionsSupportLevel.GENERALLY_AVAILABLE) {
if (level === ExtensionsSupportLevel.PRODUCTION) {
allSupportTypeItems.push({
label: t('badges.generallyAvailable'),
value: `support-level=${level}`,
Expand Down