Skip to main content

Migrate plugins from Grafana version 9.1.x to 9.2.x

Follow these instructions to migrate plugins from Grafana version 9.1.x to 9.2.x.

React and React-dom as peer dependencies

In earlier versions of Grafana packages, react and react-dom were installed during a yarn install command regardless of a plugin's dependencies. In version 9.2.0, the @grafana packages declare these React packages as peerDependencies and must be added to a plugin's package.json file for test commands.

Example:

// before
"dependencies": {
"@grafana/data": "9.1.0",
"@grafana/ui": "9.1.0",
},

// after
"dependencies": {
"@grafana/data": "9.2.0",
"@grafana/ui": "9.2.0",
"react": "17.0.2",
"react-dom": "17.0.2"
},

The typings of the NavModelItem have improved to only allow a valid IconName for the icon property. For a complete list of valid icons, refer to the source code. These icons will work for older versions of Grafana 9.

Example:

// before
const model: NavModelItem = {
id: 'settings',
text: 'Settings',
icon: 'fa fa-cog',
url: `${baseUrl}/settings`,
};

// after
const model: NavModelItem = {
id: 'settings',
text: 'Settings',
icon: 'cog',
url: `${baseUrl}/settings`,
};

Additional type availability

FieldProps, ModalProps, and QueryFieldProps are now exposed from @grafana/ui. They can be imported in the same way as other types.

Example:

import { FieldProps, ModalProps, QueryFieldProps } from '@grafana/ui';