diff --git a/workspaces/extensions/.changeset/few-bugs-teach.md b/workspaces/extensions/.changeset/few-bugs-teach.md new file mode 100644 index 0000000000..b4075a223c --- /dev/null +++ b/workspaces/extensions/.changeset/few-bugs-teach.md @@ -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. diff --git a/workspaces/extensions/docs/catalog/plugins.md b/workspaces/extensions/docs/catalog/plugins.md index f46642b3c2..e09e5ddb96 100644 --- a/workspaces/extensions/docs/catalog/plugins.md +++ b/workspaces/extensions/docs/catalog/plugins.md @@ -96,7 +96,7 @@ 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 @@ -104,7 +104,7 @@ All plugins inherit from Backstage's standard Entity interface and include: 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. @@ -158,7 +158,7 @@ spec: publisher: 'Red Hat' support: name: 'Red Hat' - level: 'generally-available' + level: 'production' categories: - 'CI/CD' - 'Kubernetes' diff --git a/workspaces/extensions/examples/all-plugins.yaml b/workspaces/extensions/examples/all-plugins.yaml index c372d5e8ee..3fae3623b2 100644 --- a/workspaces/extensions/examples/all-plugins.yaml +++ b/workspaces/extensions/examples/all-plugins.yaml @@ -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 diff --git a/workspaces/extensions/examples/plugins/support-generally-available.yaml b/workspaces/extensions/examples/plugins/support-production.yaml similarity index 75% rename from workspaces/extensions/examples/plugins/support-generally-available.yaml rename to workspaces/extensions/examples/plugins/support-production.yaml index a64d37432e..3285016b96 100644 --- a/workspaces/extensions/examples/plugins/support-generally-available.yaml +++ b/workspaces/extensions/examples/plugins/support-production.yaml @@ -3,8 +3,8 @@ 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: @@ -12,4 +12,4 @@ spec: - Test plugin entity support: provider: A provider - level: generally-available + level: production diff --git a/workspaces/extensions/json-schema/packages.json b/workspaces/extensions/json-schema/packages.json index 937ddef696..8ea7276e8e 100644 --- a/workspaces/extensions/json-schema/packages.json +++ b/workspaces/extensions/json-schema/packages.json @@ -134,7 +134,7 @@ "level": { "type": "string", "enum": [ - "generally-available", + "production", "tech-preview", "dev-preview", "community", diff --git a/workspaces/extensions/json-schema/plugins.json b/workspaces/extensions/json-schema/plugins.json index 86a1774611..d906b31a28 100644 --- a/workspaces/extensions/json-schema/plugins.json +++ b/workspaces/extensions/json-schema/plugins.json @@ -128,7 +128,7 @@ "level": { "type": "string", "enum": [ - "generally-available", + "production", "tech-preview", "dev-preview", "community", diff --git a/workspaces/extensions/packages/app/e2e-tests/extensions.test.ts b/workspaces/extensions/packages/app/e2e-tests/extensions.test.ts index 1003e94a75..90e744a94d 100644 --- a/workspaces/extensions/packages/app/e2e-tests/extensions.test.ts +++ b/workspaces/extensions/packages/app/e2e-tests/extensions.test.ts @@ -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( @@ -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( diff --git a/workspaces/extensions/plugins/extensions-common/report.api.md b/workspaces/extensions/plugins/extensions-common/report.api.md index 6bc4126a7b..e4b89fff59 100644 --- a/workspaces/extensions/plugins/extensions-common/report.api.md +++ b/workspaces/extensions/plugins/extensions-common/report.api.md @@ -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" } diff --git a/workspaces/extensions/plugins/extensions-common/src/types/ExtensionsSupport.ts b/workspaces/extensions/plugins/extensions-common/src/types/ExtensionsSupport.ts index dafe4173c3..1e4ac19a7e 100644 --- a/workspaces/extensions/plugins/extensions-common/src/types/ExtensionsSupport.ts +++ b/workspaces/extensions/plugins/extensions-common/src/types/ExtensionsSupport.ts @@ -18,7 +18,7 @@ * @public */ export enum ExtensionsSupportLevel { - GENERALLY_AVAILABLE = 'generally-available', + PRODUCTION = 'production', TECH_PREVIEW = 'tech-preview', DEV_PREVIEW = 'dev-preview', COMMUNITY = 'community', diff --git a/workspaces/extensions/plugins/extensions/src/components/Badges.tsx b/workspaces/extensions/plugins/extensions/src/components/Badges.tsx index c4c674f5f2..89dcbc54b9 100644 --- a/workspaces/extensions/plugins/extensions/src/components/Badges.tsx +++ b/workspaces/extensions/plugins/extensions/src/components/Badges.tsx @@ -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'; @@ -59,7 +61,7 @@ const getBadgeOptions = ( }), }; } - if (supportLevel === ExtensionsSupportLevel.GENERALLY_AVAILABLE) { + if (supportLevel === ExtensionsSupportLevel.PRODUCTION) { return { isBadge: true, color: colors.generallyAvailable, diff --git a/workspaces/extensions/plugins/extensions/src/hooks/useFilteredSupportTypes.ts b/workspaces/extensions/plugins/extensions/src/hooks/useFilteredSupportTypes.ts index 2c6929ac34..815777e387 100644 --- a/workspaces/extensions/plugins/extensions/src/hooks/useFilteredSupportTypes.ts +++ b/workspaces/extensions/plugins/extensions/src/hooks/useFilteredSupportTypes.ts @@ -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}`,