Backstage v1.51.0 Released, Featuring UI Enhancements and New Components
Backstage, the open-source platform for building developer portals, has rolled out its latest iteration, version 1.51.0, packed with numerous updates aimed at refining the developer experience and expanding customization capabilities. This release introduces several new UI components, including a versatile `Combobox` that combines text input with a filterable dropdown, and new `DatePicker` and `DateRangePicker` components for accessible date selection, all built on React Aria. Additionally, `Flex` item properties such as `grow`, `shrink`, and `basis` have been integrated into core components like `Box`, `Card`, `Grid`, and `Flex`, offering greater layout flexibility. The `Header` component now includes a `sticky` prop, allowing the title and action bar to remain fixed during scrolling.
Beyond UI enhancements, version 1.51.0 brings important developer tooling improvements. A new `no-self-package-imports` ESLint rule has been added to `@backstage/eslint-plugin`, configured as an error in the recommended setup. This rule helps prevent circular initialization errors in bundled ESM and with `jest.requireActual` by reporting when a package imports itself by its own name instead of using a relative path. For backend development, a new `ExtensionPointFactoryMiddleware` type and helper have been introduced in `@backstage/backend-app-api`, enabling the replacement of extension point outputs during backend creation.
Users should be aware of several breaking changes in this release. The main header class has been removed from the `Header` component, necessitating updates to any custom styles targeting this class. Furthermore, the deprecated `NavItemBlueprint` has been removed from `@backstage/frontend-plugin-api`. Navigation items are now discovered from `PageBlueprint` extensions based on their `title` and `icon` parameters, requiring migration for those still using the older blueprint. The release also includes upgrades to Module Federation packages to address known vulnerabilities and the replacement of the `uuid` dependency with `crypto.randomUUID()` across many packages.
This update is a testament to the active community contributing to Backstage, with 34 individuals recognized for their contributions. The Backstage team encourages users to keep their projects updated to leverage the latest features and improvements, providing comprehensive documentation and upgrade guidance.
Read original source