Note: this guide only applies if you’ve installed OpenProject using our DEB/RPM packages.

Push the version of the plugin, mostly by just removing any .preX specials at the end. Activity, Issue Tracking, Time Tracking, Forums, and Backlogs are default. We recommend to use the plugins as suggested in our deployement packages.

If the plugin is referenced in our feature tour, add a download link to the plugin in the feature tour. Previously, using them in a packaged installation was not possible without losing your changes on every upgrade. Note: We cannot guarantee upgrade compatibility for third party plugins nor do we provide support for them. Also create a release tag (named ‘release/, Ensure gemspec fields are complete and version number is correct, Go to https://rubygems.org, log in, go to the dashboard, click on the uploaded gem, click edit. rake copyright:update['../plugins/openproject-global_roles']) to add the copyright header in doc/COPYRIGHT_short.md to all relevant plugin files. Pure frontend plugins are currently not possible without modifications to the OpenProject core package.json. Its Community Edition covers a wide range of features and plugins and is free of charge. We instead recommend to create a hybrid gem plugin instead (see below). It supports your project teams throughout the whole project life cycle. Get your projects done - regardless of your industry or location - with the best project management software OpenProject.

Licensing information. You may have a look at some existing OpenProject plugins to get inspiration. OpenProject is free and open source web-based project collaboration software. We recommend to use the plugins as suggested in our deployement packages. There should be a file README.md containing: If you’re unsure about if/who to give credit, you should take a look into the changelog: For your convenience you may use the following rake task, that extracts all authors from a repository. In this example, we have a plugins directory right next to the openproject directory.
Think of a good name and a place (in your filesystem) where the plugin should go. While you are at it, also check if there is any wiring to core versions necessary in engine.rb; also check, that the url of the plugin is wired correctly. If you have a plugin you wish to add to your packaged OpenProject installation, create a separate Gemfile with the Gem dependencies, such as the following: The group :opf_plugins is generally recommended, but only required for plugins with custom frontend code that is picked up by webpack and output into their respective bundles. The software enables location independent multi project management, team collaboration and communication. Currently, OpenProject is available in more than 30 languages and connects your teams around the world. A number of plugins exist for use with OpenProject. Previously, using them in a packaged installation was not possible without losing your changes on every upgrade. Plugins that extend both the Rails and frontend applications are possible. if you follow the links. You may want to update the generated plugin’s gemspec (openproject-my_plugin.gemspec). It is possible to add new routes, views, models, … and/or overwrite existing ones.
Do a little cleanup work first by removing modules not needed.

These plugins must contain a package.json in the root directory of the plugin. Please, read the plugin-contributions guide for more information. Fortunately, this gives us plugin version management and dependency resolution for free. You have to tell your installation to use the custom gemfile via a config setting: If your plugin links into the Angular frontend, you will need to set the following environment variable to ensure it gets recompiled. Plugins that extend the frontend application may be packaged as npm modules. Create a news article about the newly released plugin and its features. declare the dependency in Gemfile.plugins within the :opf_plugins group We encourage you to extend OpenProject yourself by writing a plugin.

Please note that NPM dependencies will be installed during the installation, and the angular CLI compilation will take place which will delay the configuration process by a few minutes. A backlog is defined as a plugin that allows to use the backlogs feature in OpenProject. If no such file exists, doc/COPYRIGHT_short.md from the core is used.

All translations are fetched from our crowding project on a daily basis. The software is developed by an active international community, governed by the OpenProject Foundation. To re-bundle the application including the new plugins, as well as running migrations and precompiling their assets, simply re-run the installer while using the same configuration as before. Feel free to ask for help in our Development Forum. This plugin uses crowdin for translations. Then do.