Commit Graph

70881 Commits

Author SHA1 Message Date
djamaile b11c2cd8e2 feat(catalog-backend-module-github): prefer verified org emails in default user transformer
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: djamaile <rdjamaile@gmail.com>
2026-02-25 11:34:06 +01:00
Johan Persson b42fcdca2e feat(ui): replace --bui-bg-popover with layered bg approach
Remove the --bui-bg-popover token and adopt a two-layer background
pattern across overlay components: outer shell uses --bui-bg-app,
inner content uses Box bg="neutral-1".

Components updated: Popover, Tooltip, Menu, Dialog.

Each component gets a local border-radius CSS variable, a Box
content wrapper with neutral-1 background, and updated arrow
fills where applicable.

Story "is open" variants for each component now use a dot-grid
background pattern to detect background transparency issues in
Chromatic snapshots.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-25 09:52:31 +01:00
Fredrik Adelöw ba3e15fefb Merge pull request #32991 from backstage/dependabot/npm_and_yarn/minimatch-10.2.3 2026-02-25 08:28:34 +01:00
dependabot[bot] 2e1f98b687 build(deps): bump minimatch from 3.1.2 to 10.2.3
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.1.2 to 10.2.3.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v10.2.3)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 10.2.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-25 05:24:30 +00:00
Patrik Oldsberg 867d461762 Merge pull request #32985 from backstage/rugvip/agents-md
repo: migrate to AGENTS.md
2026-02-24 22:11:25 +01:00
Patrik Oldsberg 560f587645 repo: symlink .claude/CLAUDE.md to AGENTS.md
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 21:57:52 +01:00
Patrik Oldsberg 9657061e64 Apply suggestions from code review
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-24 21:50:16 +01:00
Patrik Oldsberg 614f524ace AGENTS.md: minor for significant changes only
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-24 21:48:12 +01:00
Patrik Oldsberg 60cdf5b80c repo: expand AGENTS.md with additional guidelines
Add coding style, testing, changeset, and PR template guidelines.
Remove the now-redundant .claude/CLAUDE.md pointer file.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 21:14:27 +01:00
Patrik Oldsberg 410e867616 AGENTS.md: some more pointers for changesets and code style
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-24 21:12:09 +01:00
Patrik Oldsberg 6a1c9550b5 repo: migrate to AGENTS.md
Move agent instructions from `.github/copilot-instructions.md` to `AGENTS.md`
at the repo root for broader AI agent tool compatibility, and remove the
Cursor rule that pointed at the old file.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 21:02:50 +01:00
Fredrik Adelöw 23c62214fa Merge pull request #32892 from backstage/changeset-release/master
Version Packages (next)
2026-02-24 20:55:25 +01:00
github-actions[bot] 4bd6a3a1af Version Packages (next) 2026-02-24 19:24:06 +00:00
Johan Persson 890935951b fix(ui): CSS accessibility fixes for Menu, Select, and RadioGroup (#32983)
* fix(ui): add focus-visible outlines to Menu and Select

Replace the default browser focus-visible outline with a
consistent ring style using the data-focus-visible attribute
on Menu items and Select options.

Signed-off-by: Johan Persson <johanopersson@gmail.com>

* fix(ui): add cursor styles to RadioGroup items

Add pointer cursor to radio items and not-allowed cursor
for readonly state.

Signed-off-by: Johan Persson <johanopersson@gmail.com>

---------

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-24 17:28:32 +01:00
Ben Lambert dc81af158f feat(mcp-actions): add server operation and session duration metrics (#32978)
Signed-off-by: Kurt King <kurtaking@gmail.com>
Co-authored-by: Kurt King <kurtaking@gmail.com>
2026-02-24 16:18:02 +00:00
Ben Lambert 1ee5b28e41 feat(metrics): Implement MetricsService (#32977)
* feat: add MetricsService alpha release

Introduces MetricsService as a new @alpha core service wrapping
@opentelemetry/api. Includes migration of existing catalog metrics
to use the new service.

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: duplicate otel types, add plugin-scoped factory and tests

Signed-off-by: benjdlambert <ben@blam.sh>

* chore: update BEP-0012 metrics service design

Signed-off-by: Kurt King <kurtaking@gmail.com>

* chore: address PR feedback from freben and rugvip

Rename instrument types with MetricsService prefix for namespace
clarity, move config to backend.metrics.plugin.{pluginId}, add
config.d.ts schema, and improve factory test assertions.

Signed-off-by: benjdlambert <ben@blam.sh>

---------

Signed-off-by: benjdlambert <ben@blam.sh>
Signed-off-by: Kurt King <kurtaking@gmail.com>
Co-authored-by: Kurt King <kurtaking@gmail.com>
2026-02-24 16:57:02 +01:00
Fredrik Adelöw 11c4e69eb7 Merge pull request #32946 from backstage/freben/scm-metrics
catalog: add metrics to the SCM events handling
2026-02-24 13:38:17 +01:00
Patrik Oldsberg 1176eb0540 Merge pull request #32939 from backstage/rugvip/cli-module-local-paths
cli-common: new path utils that simplifies use in dependencies
2026-02-24 13:09:35 +01:00
Patrik Oldsberg fd9159f4e5 Merge pull request #32894 from backstage/rugvip/stable-translation-api
frontend-plugin-api: stabilize translation API
2026-02-24 12:02:00 +01:00
Patrik Oldsberg d2af65b1e0 Merge pull request #32975 from backstage/rugvip/remove-applied-patches
chore: remove applied patch files
2026-02-24 11:42:45 +01:00
Fredrik Adelöw 3eb1e79a8b Merge pull request #32973 from johnphilip283/search-on-first-navigate
perform search on first navigate
2026-02-24 09:41:47 +01:00
John Philip 1e8fdd338c add patch
Signed-off-by: John Philip <jphilip@spotify.com>
2026-02-24 03:25:07 -05:00
John Philip d5eb954544 changeset
Signed-off-by: John Philip <jphilip@spotify.com>
2026-02-24 03:20:29 -05:00
Patrik Oldsberg 48235027e4 chore: remove applied patch files
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-24 00:32:29 +01:00
John Philip 5cefb88bb2 perform search on first navigate
Signed-off-by: John Philip <jphilip@spotify.com>
2026-02-23 16:30:33 -05:00
Patrik Oldsberg 2a515460e8 Fix prettier existence checks and import order
Use fs.pathExists instead of checking resolved path strings which are
always truthy. Fix import ordering in e2e-test runCommand.ts.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 22:08:37 +01:00
Patrik Oldsberg 909c742c18 Stabilize translation API in the new frontend system
Remove @alpha tags from translation-related types and switch all
translation API imports in new frontend system packages to use stable
paths from @backstage/frontend-plugin-api instead of
@backstage/core-plugin-api/alpha.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-23 21:23:05 +01:00
Patrik Oldsberg 8c3802c5ba Add @backstage/cli to changeset, remove cli-common mock from create-app test
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 21:15:48 +01:00
Patrik Oldsberg 641d88cb07 Address PR review comments
- Remove cli-node/src/paths.ts compat layer, migrate all cli-node
  internal usage to import targetPaths from @backstage/cli-common
- Use single-arg overrideTargetPaths('/root') where dir === rootDir
- Scope mockDir to each describe block in bump.test.ts to avoid
  shared state issues with overrideTargetPaths
- Remove unnecessary overrideTargetPaths from plugin-manager.test.ts
- Remove stale findPaths mock from createApp.test.ts
- Use overrideTargetPaths in getWorkspaceRoot.test.ts and cli-node tests

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 21:01:27 +01:00
Patrik Oldsberg 3856774252 Merge pull request #32969 from backstage/rugvip/scaffolder-export-form-fields-api
scaffolder: add back form fields API alpha exports
2026-02-23 20:42:57 +01:00
Patrik Oldsberg ee87720300 scaffolder: add back form fields API alpha exports
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 20:23:57 +01:00
Johan Persson 0f462f85fe refactor(ui): enforce required children on bg provider component types
Strengthens BgPropsConstraint to also check that children is
present and non-optional in the OwnProps type of bg provider
components. This ensures children can only flow through
childrenWithBgProvider, preventing silent bypasses of the bg
context system.

Box and Accordion OwnProps updated to comply — children is now
required. BoxProps updated to Omit children from
React.HTMLAttributes to avoid an incompatible duplicate property
declaration. Storybook stories updated accordingly.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-23 18:20:16 +01:00
Johan Persson f2f6e3d47a refactor(ui): centralize prop resolution in useDefinition
Extract prop-splitting and responsive resolution with default
fallbacks from `useDefinition` into a new `resolveDefinitionProps`
helper. This makes `propDefs.default` the single authoritative
source of truth for default values.

Previously, `useBgProvider` had a separate manual default lookup
(`props.bg ?? (definition.propDefs as any).bg?.default`) that
duplicated the main resolution loop.

Signed-off-by: Johan Persson <johanopersson@gmail.com>
2026-02-23 18:20:16 +01:00
Patrik Oldsberg ebc01ef04d Add overrideTargetPaths test utility and fix rebase issues
Adds `overrideTargetPaths` to `@backstage/cli-common/testUtils` for
cleanly mocking `targetPaths` in tests without `jest.mock` or
`jest.spyOn`. Migrates all existing test mocks to use the new utility.

Also fixes translations module imports broken by the rebase.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 17:25:31 +01:00
Andre Wanlin 344242adcf Merge pull request #32970 from backstage/awanlin/api-extractor-repo-tools-bump
Added patch
2026-02-23 08:01:41 -06:00
Patrik Oldsberg 553e727d5f Fix lint errors: add eslint-disable for __dirname, fix no-use-before-define
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-23 14:44:11 +01:00
Patrik Oldsberg 6fa63d411f Fix prettier formatting
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-23 14:44:11 +01:00
Patrik Oldsberg fc03fa6ab2 Fix backend package.json reference to search-backend-module-explore
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-23 14:44:11 +01:00
Patrik Oldsberg 07816d67f3 Address PR review comments
- Refactor targetPaths/findOwnPaths to class-based implementations with
  unified caching and .dir/.rootDir properties alongside resolve methods
- Replace jest.mock with jest.spyOn in plugin-manager.test.ts
- Remove paths compatibility wrapper from repo-tools, migrate all internal
  consumers to use targetPaths from @backstage/cli-common directly
- Fix changeset package name (@techdocs/cli not @backstage/techdocs-cli)
- Add migration examples to cli-common changeset
- Update API report for cli-common

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
2026-02-23 14:44:11 +01:00
Patrik Oldsberg 70fc178697 Replace findPaths with targetPaths and findOwnPaths
Split the path resolution API in @backstage/cli-common into
targetPaths (cwd-based singleton) and findOwnPaths (package-relative).
Migrate all consumers across the repo away from the deprecated findPaths.

Rename TargetPaths/OwnPaths properties to resolve/resolveRoot,
removing the redundant type prefix from property names.

Make findOwnPaths calls lazy in modules - called inside functions
rather than at module scope.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:44:10 +01:00
Patrik Oldsberg 29e91e9159 Give each CLI module its own paths instead of importing from lib/
Split the paths API in @backstage/cli-common into targetPaths (a lazily
initialized singleton for cwd-based paths) and findOwnPaths (a cached function
for package-relative paths). Most CLI module files only need target paths, which
can now be imported directly without __dirname. The few files that need own paths
use findOwnPaths(__dirname).

Added hierarchical caching to findOwnDir so the filesystem walk only happens
once per package. targetPaths re-resolves automatically if process.cwd() changes.

The deprecated findPaths function is preserved for backward compatibility,
delegating to the new primitives internally.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:44:10 +01:00
Patrik Oldsberg 56bd494b0c Give each CLI module its own paths instead of importing from lib/
Each module file that needs paths now calls findPaths(__dirname) directly from
@backstage/cli-common. This removes the coupling between modules and lib/paths,
and will continue to work when modules are extracted into separate packages since
each package's __dirname resolves to its own root.

Added hierarchical caching to findOwnDir in cli-common so that the filesystem
walk only happens once per package - subsequent calls from sibling directories
hit the cache at a common ancestor.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:44:10 +01:00
Patrik Oldsberg 158bfe8a69 Give each CLI module its own paths instead of importing from lib/
Each module now has a local paths.ts that calls findPaths(__dirname) directly.
This makes modules fully independent of lib/paths.ts, and the pattern will
continue to work when modules are extracted into separate packages since each
package's __dirname will resolve to its own root.

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 14:44:10 +01:00
Andre Wanlin 2ce812ab3c Update .patches/pr-32950.txt
Co-authored-by: Fredrik Adelöw <freben@gmail.com>
Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com>
2026-02-23 07:43:46 -06:00
Andre Wanlin 8b6b3e1188 Added patch
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-23 07:36:12 -06:00
Andre Wanlin ca0fb2d9ef Merge pull request #32950 from awanlin/topic/api-extractor-repo-tools
Updated `@microsoft/api-extractor` to `7.57.3`
2026-02-23 07:11:50 -06:00
Andre Wanlin 4541817031 Updated API reports due to the package change
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-23 06:29:04 -06:00
Patrik Oldsberg ce676fea2f Merge pull request #32904 from backstage/rugvip/translation-export-import
cli: add translations export and import commands
2026-02-23 13:18:03 +01:00
Andre Wanlin d0469f605a Updated to latest patch version
Signed-off-by: Andre Wanlin <awanlin@spotify.com>
2026-02-23 06:08:29 -06:00
Patrik Oldsberg e75d80dbc5 Merge pull request #32956 from backstage/rugvip/cli-node-parallel-helpers
cli-node: move parallel worker utilities from cli
2026-02-23 12:05:05 +01:00