This section explains how to modify the existing content of the devfile and plug-in registries: the devfiles and plug-in metadata.
-
The registries are cloned following the Cloning the registries procedure.
Adding a new plug-in
The v3/plugins/ directory in the repository contains the plug-ins. The following is the structure of a plug-in directory:
./che-plugin-registry/v3/plugins ├── <publisher> ├── <plugin-name> ├── <plugin-version> └── meta.yaml
To add a new plug-in:
-
In the
v3/plugins/directory, create a new directory and name it<publisher>/<plugin-name>/<plugin-version>/. -
Create a plug-in
meta.yamlfile in the new directory.ExampleThe following is an example directory called
my-org/my-plugin/1.0.0/, and it contains a meta.yaml file:$ mkdir -p che-plugin-registry/v3/plugins/my-org/my-plugin/1.0.0/ $ touch che-plugin-registry/v3/plugins/my-org/my-plugin/1.0.0/meta.yaml $ tree ./che-plugin-registry/v3/plugins ./che-plugin-registry/v3/plugins ├── my-org ├── my-plugin ├── 1.0.0 └── meta.yaml
-
Add valid content to the
meta.yamlfile. See the “Using a Visual Studio Code extension in Che” section or the README.md file in theeclipse/che-plugin-registryrepository for a detailed description of themeta.yamlfile format. -
Create a directory called
latest/and copy themeta.yamlfile in it, too. Themeta.yamlfile in thelatest/directory is used when the plug-in version is not specified (in a devfile, for example).The latest/directory should always contain a copy of the latest stablemeta.yamlfile.Example$ mkdir che-plugin-registry/v3/plugins/my-org/my-plugin/latest/ $ copy che-plugin-registry/v3/plugins/my-org/my-plugin/1.0.0/meta.yaml \ che-plugin-registry/v3/plugins/my-org/my-plugin/latest $ tree ./che-plugin-registry/v3/plugins ./che-plugin-registry/v3/plugins ├── my-org ├── my-plugin ├── 1.0.0 ├── meta.yaml ├── latest └── meta.yaml
Adding a new devfile
The devfiles/ directory contains the devfiles. Every devfile directory has the following structure:
./che-devfile-registry/devfiles ├── <stack-name> ├── devfile.yaml └── meta.yaml
To add a new devfile:
-
In the
devfiles/directory, create a new subdirectory<stack-name>/. -
In this new subdirectory, add a new plug-in
devfile.yamlfile and ameta.yamlfile. The following is an examplemy-stack/directory, and it contains adevfile.yamlfile and ameta.yamlfile:$ mkdir -p che-devfile-registry/devfiles/my-devfile $ touch che-devfile-registry/devfiles/my-devfile/devfile.yaml $ touch che-devfile-registry/devfiles/my-devfile/meta.yaml $ tree ./che-devfile-registry/devfiles ./che-devfile-registry/devfiles ├── my-devfile ├── devfile.yaml └── meta.yaml
-
Add valid content in the
devfile.yamlfile. For a detailed description of the devfile format, see the Making a workspace portable using a Devfile section. -
Ensure that the
meta.yamlfile conforms to the following structure:displayName: My Stack (1) description: This is a custom stack for Che (2) tags: ["Java", "maven", "ubi"] (3) icon: https://www.eclipse.org/che/images/logo-eclipseche.svg (4) globalMemoryLimit: 1686Mi (5)1 Name of the stack as it appears on the user dashboard. 2 Description of the stack as it appears on the user dashboard. 3 Tags of the stack. Tags usually include the tools included in the stack. 4 The link to an .svgfile that is displayed on the user dashboard.5 The sum of the memory limits of all the components of the stack. This number will be visible on the user dashboard. It is informative and is not taken into account by the Che server.