05_developer_tutorials:02_extending_groimp:release-your-own-plugin
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| 05_developer_tutorials:02_extending_groimp:release-your-own-plugin [2026/05/29 10:22] – created Tim | 05_developer_tutorials:02_extending_groimp:release-your-own-plugin [2026/05/29 12:00] (current) – [Trouble shoot] Tim | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Releasing your own plugin ====== | ====== Releasing your own plugin ====== | ||
| - | After you created an plugin that works with the latest released version of GroIMP, you can publish this plugin to the GroIMP plugin manger. | + | After you created an plugin that works with the latest released version of GroIMP, you can publish this plugin to the GroIMP plugin manger. |
| Line 8: | Line 8: | ||
| To understand the following steps lets have a look at the plugin infrastructure and the pipeline and what is suppose to happen after a new version (tag) of a plugin is pushed to gitlab. | To understand the following steps lets have a look at the plugin infrastructure and the pipeline and what is suppose to happen after a new version (tag) of a plugin is pushed to gitlab. | ||
| - | The infrastructure inside each plugin repository (that has at least one released version) consists of four main components: | + | The infrastructure inside each plugin repository (that has at least one released version) consists of four main components: |
| - The code it self(in git) | - The code it self(in git) | ||
| - | - Ordered List ItemThe | + | - The package registry (e.g. https:// |
| - | - A gitlab page with the compiled embedded documentation (e.g. grogra.gitlab.io/ | + | - A gitlab page with the compiled embedded documentation (e.g. grogra.gitlab.io/ |
| - | - The plugin.json file (e.g. https:// | + | - The plugin.json file (e.g. https:// |
| + | |||
| + | Except for the code all this is automatically generated using a ci/cd pipeline that compiles the plugin using maven and extracts the information for the different files. | ||
| + | The most tricky part is that the latest version of the plugin.json file only exists on the gitlab page. Therefore it is downloaded from the page extended with a new version and uploaded again every time a new version is created. This becomes relevant if the file needs to be altered (see trouble shoot). | ||
| - | + | This plugin.json already provides all that is needed to install a plugin using the plugin manager. Therefore it would be required to add the link to this file as a repository see[[01_user_documentation: | |
| + | Yet to make it easier for everybody it is possible to bundle different plugins.json files to one large file providing a collection of possible plugins. [[05_developer_tutorials: | ||
| + | |||
| + | The GroIMP developer team provides one official collection which is added to the plugin manager by default. | ||
| + | This collection is managed in the Plugin web explorer (https:// | ||
| + | |||
| + | The plugin web explorer runs a script once a day that takes all plugin.json files form the [[https:// | ||
| + | Further all jars from the plugins and their libraries are published on plugins.grogra.de and updated once a day (see [[01_user_documentation: | ||
| + | |||
| + | |||
| + | If you want your plugin added to this list please reach out to us or add an request to the plugin web explorer repository. | ||
| ===== Requirements ===== | ===== Requirements ===== | ||
| + | The following steps require a Gitlab repository that follows the shape of our [[https:// | ||
| + | |||
| + | Further more make sure you have added the right information to your plugin.json file. | ||
| + | |||
| + | ===== First release ===== | ||
| + | |||
| + | Assuming you want to release the very first version of your plugin eg. '' | ||
| + | |||
| + | If this is all pushed to the repository you can create the new tag. You can do this on the web view in the left menu on Code > Tags. | ||
| + | |||
| + | In the new window on the upper right corner you can create a new tag with the name " | ||
| + | |||
| + | After creating the tag Gitlab automatically starts the pipeline to compile the java package. You can observe whats happening if you got on Build > Jobs in the right menu and select the currently running job. | ||
| + | |||
| + | Assuming this went well and the job succeeded there is one last step you have to do: | ||
| + | Go on the left menu on Deployment > Pages and select the tab Domain & settings and make sure "Use unique domain" | ||
| + | |||
| + | This URL extended by "/ | ||
| + | |||
| + | ===== New releases ===== | ||
| + | |||
| + | The steps for additional releases are a simpler, you only have to set the versions right in the pom.xml and the plugin.xml file and create a new tag. | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Doing it without Gitlab ===== | ||
| + | |||
| + | If you provide a download link to your jar and a plugin.json that refers to it you can host this where ever you want. | ||
| + | |||
| + | |||
| + | |||
| + | ===== Trouble shoot ===== | ||
| + | |||
| + | |||
| + | ==== Change plugin.json ==== | ||
| + | |||
| + | If you want to change parts of the plugin.json file e.g. the descrption or the help url, or if you want to remove a version, you have to do the following steps: | ||
| + | |||
| + | - Download the plugin.json manually ( form the gitlab page! not from the repository) | ||
| + | - Use the downloaded plugin.json to replace the one in your repo. | ||
| + | - Do do the changes you need to do (make sure it is still a valid json file) | ||
| + | - Delete the Gitlab page ( on the website left menu > Deploy > Pages, and then delete page). | ||
| + | - Wait a moment, Gitlab sometimes needs some time to really delete the page. | ||
| + | - Rerun the pipeline with a version that **is not included in the plugin.json** | ||
| + | |||
| + | === Why that works: === | ||
| + | |||
| + | The pipeline always tries to download the plugin.json form the gitlab page but since the page is deleted the pipeline uses the plugin.json file from your repo. | ||
| + | |||
| + | ==== Remove a version ==== | ||
| + | |||
| + | Sometimes things go wrong and you want to get rid of a version of your plugin that is already released. | ||
| + | Todo so you need to: | ||
| + | - Remove the tag (Left menu: Code > tags and than the little bin next to the version) | ||
| + | - Delete the package (Left menu: Deploy > package registry and the tree dots next to the packages you want to delete). | ||
| + | - remove the version form the plugin.json (see above). | ||
05_developer_tutorials/02_extending_groimp/release-your-own-plugin.1780042968.txt.gz · Last modified: 2026/05/29 10:22 by Tim
