Feature Wiki

Information about planned and released features

Tabs

Setup - Update Plugins via Setup

1 Initial Problem

Currently one has to got to different places in the system to update the database of the core system and the plugins. This approach is cumbersome and would decrease the benefits of an automated setup if maintained in the future. Thus plugins should be able to take part in the setup mechanisms just like any other component in the system. This will not supersede the "Plugins"-node in the administration and the configuration of plugins in ILIAS, but there certainly will be configuration of plugins that could be made in the setup.

2 Conceptual Summary

The setup supports plugins just like other components. Plugins can be installed and updated via the setup. Installation as well as updates are triggered when the general installation or update command of the setup is used. Additionally, both actions can be triggered explicit per plugin. Plugins may also be excluded from the actions via an explicit --no-plugins switch. This means, that these new command options will be available:

  • install --no-plugins will install the installation as currently implemented and thus exclude plugins
  • update --no-plugins will update the installation as currently implemented and thus exclude plugins
  • install $PLUGIN_NAME will install the named plugin and activate it
  • update $PLUGIN_NAME will update the named plugin (doesn't change the active status of a plugin)
  • install will install the installation as currently implemented and will install plugins and avtivate them
  • updatewill update the installation as currently implemented and will update all plugins (doesn't change the active status of a plugin)

3 User Interface Modifications

3.1 List of Affected Views

If the webbased GUI is improved the migrate command will, by design of the new webbased GUI, be available via the web interface.

3.2 User Interface Details

The webbased GUI will acquire a new item in the Main Bar.

3.3 New User Interface Concepts

None.

4 Technical Information

The technical basis for this feature is [the inclusion of plugins to the autoloader|Include Plugins into composer autoloader] and the open infrastructure for the setup that doesn't make a difference between various types of ILIAS components. An implementation is already proposed.

5 Privacy Information

No user related data is stored.

6 Security Implications

No impact.

7 Contact

8 Funding

If you are interest in funding this feature, please add your name and institution to this list.

9 Discussion

JourFixe, ILIAS [jourfixe], 03 AUG 2020 : We highly appreciate this suggestion and schedule it for ILIAS 7. We would like to have an option to exclude selected plugins in the install or update command, e.g. install --skip $PLUGIN_NAME. The install and update command should also trigger the language update of plugins. In case one has set the update --no-plugins command and then set again the update command, all excluded plugins from the first command will be updated, too. Finally, plugins should be able to opt-out from installation via cli-setup to be ignored by update and install commands.

10 Implementation

The implementation can be visited in PR 2782. The behaviour from the user perspective is as described in this feature request.

Plugin developers do not need to take any specific action if they just want their plugin to be included in the setup process. They should, however, test if this really works on the CLI, since the there will be considerably less services available in the dependency injection container compared to the GUI environment. If a plugin should be excluded from the CLI-setup, a key `$supports_cli_setup = false;` can be set in the plugin.php which will make the setup ignore the plugin. If a plugin want's to take full advantage of the setup it can implement an `Agent` as outlined in the README of the Setup infrastructure. All variants can be inspected at the plugin for testing the integration.

Test Cases

Test cases completed at 2020-11-04 by Klees, Richard [rklees]:

  • 42407 : Installation eines Plugins ohne eigene Setup-Integration
  • 42408 : Installation eines Plugins mit eigener Setup-Integration
  • 42409 : Auschluss von Plugins über Option
  • 42410 : Auschluss von Plugin über plugin.php

Approval

Approved at 2020-11-03 by Klees, Richard [rklees].

Last edited: 4. Nov 2020, 16:46, Klees, Richard [rklees]