docs/static/v0.9/extensibility/verify-compatibility/index.html
The Meshery ecosystem is designed for extensibility, with the core platform (meshery/meshery) providing extension points for a variety of plugins, collectively managed in the meshery-extensions GitHub organization. To ensure a stable and seamless user experience, it is critical that extensions remain compatible with the Meshery platform, especially when shared frameworks or dependencies are updated.
This guide outlines the key areas of compatibility and provides a general process for extension developers to follow when Meshery’s underlying frameworks are updated.
Meshery's Bill of Materials
Meshery’s version is defined by its Bill of Materials (BOM), which specifies versions for Go, Node.js, and other key dependencies. Extension developers should reference the BOM to ensure alignment.
Compatibility between Meshery and its extensions spans several areas. When the Meshery platform is updated, one or more of the following are likely to change:
Language Runtimes : Meshery and its extensions are often built using the same programming languages. Ensuring version alignment is the first step to compatibility.
Shared Go Libraries : Meshery and its extensions share a common set of libraries (meshery/meshkit) that provide foundational utilities, API clients, and data models.
UI Frameworks and Component Libraries : UI-based extensions must align with Meshery’s frontend technology stack to ensure a consistent user experience and functional correctness.
Build and CI/CD Tooling : The build process for extensions should be compatible with the environment and tooling used by Meshery.
When Meshery’s Bill of Materials is updated, follow this general process to verify and update your extension.
Start by reviewing the release notes or commit history of the meshery/meshery repository to understand what has changed. Pay close attention to:
go.mod and install/Makefile.core.mk.meshery/meshkit and other key dependencies in go.mod.ui/package.json..proto files for gRPC services.In your extension’s repository, update your dependency files to match the versions used in Meshery.
go directive in your go.mod file to match Meshery’s.github.com/meshery/meshkit and other shared modules:go get github.com/meshery/[email protected]
go mod tidy
package.json.npm install or yarn install to update your dependencies.After updating the dependencies, rebuild your extension to ensure it compiles without errors.
go build -o <your-extension-binary>
npm run build
Run your updated extension with the latest version of Meshery to verify end-to-end compatibility.
By following this process, you can ensure that your extension remains compatible with the ever-evolving Meshery platform, providing a reliable and consistent experience for all users.
[ Previous
Providers ](/v0.9/extensibility/providers)[ Next
UI Plugins ](/v0.9/extensibility/ui)