diff --git a/.changeset/fix-azure-blob-storage-entity-provider-import.md b/.changeset/fix-azure-blob-storage-entity-provider-import.md new file mode 100644 index 0000000000..1b12c461e4 --- /dev/null +++ b/.changeset/fix-azure-blob-storage-entity-provider-import.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog-backend-module-azure': patch +--- + +Updated internal usage of `AzureBlobStorageIntegration` (previously misspelled as `AzureBlobStorageIntergation`) following the rename in `@backstage/integration`. diff --git a/.changeset/fix-azure-blob-storage-integration-class-name.md b/.changeset/fix-azure-blob-storage-integration-class-name.md new file mode 100644 index 0000000000..4acfb5d44d --- /dev/null +++ b/.changeset/fix-azure-blob-storage-integration-class-name.md @@ -0,0 +1,5 @@ +--- +'@backstage/integration': patch +--- + +Added the correctly-spelled `AzureBlobStorageIntegration` class export and deprecated the previous typoed `AzureBlobStorageIntergation` export. Existing usage of `AzureBlobStorageIntergation` continues to work; switch to `AzureBlobStorageIntegration` to avoid future removal. diff --git a/.changeset/fix-azure-blob-storage-url-reader-type.md b/.changeset/fix-azure-blob-storage-url-reader-type.md new file mode 100644 index 0000000000..f4fbc0c8a4 --- /dev/null +++ b/.changeset/fix-azure-blob-storage-url-reader-type.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-defaults': patch +--- + +Updated `AzureBlobStorageUrlReader` to reference the correctly-named `AzureBlobStorageIntegration` type from `@backstage/integration`. The previously-used `AzureBlobStorageIntergation` is now an alias for the new type and remains a valid argument to the constructor. diff --git a/.changeset/fix-home-translation-key-typo.md b/.changeset/fix-home-translation-key-typo.md new file mode 100644 index 0000000000..1ed60eef42 --- /dev/null +++ b/.changeset/fix-home-translation-key-typo.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-home': patch +--- + +Added the correctly-spelled `'widgetSettingsOverlay.editSettingsTooltip'` translation key in `homeTranslationRef` and deprecated the previous typoed `'widgetSettingsOverlay.editSettingsTooptip'` key. Existing references to the old key continue to work; switch to the new key to avoid future removal. diff --git a/.changeset/fix-related-entities-card-property-typo.md b/.changeset/fix-related-entities-card-property-typo.md new file mode 100644 index 0000000000..55cae7bf0c --- /dev/null +++ b/.changeset/fix-related-entities-card-property-typo.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-catalog': patch +--- + +Added the correctly-spelled `RelatedEntitiesCard.domainEntityColumns` static property and deprecated the previous typoed `RelatedEntitiesCard.domainEntityColums` property. Existing references to the old property continue to work; switch to `domainEntityColumns` to avoid future removal. diff --git a/.changeset/fix-table-filters-class-key-typo.md b/.changeset/fix-table-filters-class-key-typo.md new file mode 100644 index 0000000000..d693ed721c --- /dev/null +++ b/.changeset/fix-table-filters-class-key-typo.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Added the correctly-spelled `'header'` literal to the `TableFiltersClassKey` union type and deprecated the previous typoed `'heder'` literal. The generated CSS class with the old key is preserved for backwards compatibility; switch to `'header'` to avoid future removal. diff --git a/.github/vale/config/vocabularies/Backstage/accept.txt b/.github/vale/config/vocabularies/Backstage/accept.txt index 225a833672..2c49f230a1 100644 --- a/.github/vale/config/vocabularies/Backstage/accept.txt +++ b/.github/vale/config/vocabularies/Backstage/accept.txt @@ -541,6 +541,7 @@ TTLs Turbopack TSDoc typeahead +typoed ui unassign unbreak diff --git a/.github/workflows/ci-noop.yml b/.github/workflows/ci-noop.yml index 71b0c68791..57a1be6f09 100644 --- a/.github/workflows/ci-noop.yml +++ b/.github/workflows/ci-noop.yml @@ -31,6 +31,13 @@ jobs: - run: echo NOOP + typos-noop: + runs-on: ubuntu-latest + + name: Spell Check + steps: + - run: echo NOOP + test-noop: runs-on: ubuntu-latest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 01931afb2c..dc766d39ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -165,6 +165,23 @@ jobs: exit 1 fi + typos: + runs-on: ubuntu-latest + + name: Spell Check + steps: + - name: Harden Runner + uses: step-security/harden-runner@58077d3c7e43986b6b15fba718e8ea69e387dfcc # v2.15.1 + with: + egress-policy: audit + + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: check for typos + uses: crate-ci/typos@631208b7aac2daa8b707f55e7331f9112b0e062d # v1.44.0 + with: + config: typos.toml + # The test job runs all tests as well as any verification step that # requires a diff towards master. test: diff --git a/docs/features/techdocs/how-to-guides--old.md b/docs/features/techdocs/how-to-guides--old.md index 992124177d..3060ea9e80 100644 --- a/docs/features/techdocs/how-to-guides--old.md +++ b/docs/features/techdocs/how-to-guides--old.md @@ -987,7 +987,7 @@ metadata: apiVersion: backstage.io/v1alpha1 kind: Component metadata: - name: example-platfrom + name: example-platform title: Example Application Platform namespace: default description: This is the child entity diff --git a/packages/backend-defaults/report-urlReader.api.md b/packages/backend-defaults/report-urlReader.api.md index c32a63231b..b3ed68354c 100644 --- a/packages/backend-defaults/report-urlReader.api.md +++ b/packages/backend-defaults/report-urlReader.api.md @@ -5,7 +5,7 @@ ```ts import { AwsCredentialsManager } from '@backstage/integration-aws-node'; import { AwsS3Integration } from '@backstage/integration'; -import { AzureBlobStorageIntergation } from '@backstage/integration'; +import { AzureBlobStorageIntegration } from '@backstage/integration'; import { AzureCredentialsManager } from '@backstage/integration'; import { AzureDevOpsCredentialsProvider } from '@backstage/integration'; import { AzureIntegration } from '@backstage/integration'; @@ -67,7 +67,7 @@ export class AwsS3UrlReader implements UrlReaderService { export class AzureBlobStorageUrlReader implements UrlReaderService { constructor( credsManager: AzureCredentialsManager, - integration: AzureBlobStorageIntergation, + integration: AzureBlobStorageIntegration, deps: { treeResponseFactory: ReadTreeResponseFactory; }, diff --git a/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureBlobStorageUrlReader.ts b/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureBlobStorageUrlReader.ts index ec04fd2fd8..23592d89e3 100644 --- a/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureBlobStorageUrlReader.ts +++ b/packages/backend-defaults/src/entrypoints/urlReader/lib/AzureBlobStorageUrlReader.ts @@ -26,7 +26,7 @@ import { Readable } from 'node:stream'; import { relative } from 'node:path/posix'; import { ReadUrlResponseFactory } from './ReadUrlResponseFactory'; import { - AzureBlobStorageIntergation, + AzureBlobStorageIntegration, AzureCredentialsManager, DefaultAzureCredentialsManager, ScmIntegrations, @@ -88,14 +88,14 @@ export class AzureBlobStorageUrlReader implements UrlReaderService { // private readonly blobServiceClient: BlobServiceClient; private readonly credsManager: AzureCredentialsManager; - private readonly integration: AzureBlobStorageIntergation; + private readonly integration: AzureBlobStorageIntegration; private readonly deps: { treeResponseFactory: ReadTreeResponseFactory; }; constructor( credsManager: AzureCredentialsManager, - integration: AzureBlobStorageIntergation, + integration: AzureBlobStorageIntegration, deps: { treeResponseFactory: ReadTreeResponseFactory; }, diff --git a/packages/core-components/report.api.md b/packages/core-components/report.api.md index 8ddacb1b96..77ecbc4db5 100644 --- a/packages/core-components/report.api.md +++ b/packages/core-components/report.api.md @@ -1547,7 +1547,15 @@ export type TableFilter = { // Warning: (ae-missing-release-tag) "TableFiltersClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) -export type TableFiltersClassKey = 'root' | 'value' | 'heder' | 'filters'; +export type TableFiltersClassKey = + | 'root' + | 'value' + | 'header' + /** + * @deprecated Use `'header'` instead. This was a typo in the original class key. + */ + | 'heder' + | 'filters'; // Warning: (ae-missing-release-tag) "TableHeaderClassKey" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) // diff --git a/packages/core-components/src/components/Table/Filters.tsx b/packages/core-components/src/components/Table/Filters.tsx index c5f0b2940d..19f78f70b8 100644 --- a/packages/core-components/src/components/Table/Filters.tsx +++ b/packages/core-components/src/components/Table/Filters.tsx @@ -24,7 +24,15 @@ import { SelectProps } from '../Select/Select'; import { coreComponentsTranslationRef } from '../../translation'; import { useTranslationRef } from '@backstage/core-plugin-api/alpha'; -export type TableFiltersClassKey = 'root' | 'value' | 'heder' | 'filters'; +export type TableFiltersClassKey = + | 'root' + | 'value' + | 'header' + /** + * @deprecated Use `'header'` instead. This was a typo in the original class key. + */ + | 'heder' + | 'filters'; const useFilterStyles = makeStyles( theme => ({ @@ -46,6 +54,13 @@ const useFilterStyles = makeStyles( justifyContent: 'space-between', borderBottom: `1px solid ${theme.palette.grey[500]}`, }, + // Intentionally empty: the deprecated `heder` class is still applied to + // the same element as `header` so legacy theme overrides on + // `BackstageTableFilters.heder` continue to work. Keeping this rule empty + // (rather than duplicating `header`'s styles) avoids clobbering overrides + // on the canonical `header` key — JSS injects rules in key order, so an + // empty `heder` defined after `header` has no properties to override. + heder: {}, filters: { display: 'flex', flexDirection: 'column', @@ -98,7 +113,7 @@ export const Filters = (props: Props) => { // As material table doesn't provide a way to add a column filter tab we will make our own filter logic return ( - + {t('table.filter.title')}