Feature Wiki
Tabs
Setup - Update Plugins via Setup
Page Overview
[Hide]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 pluginsupdate --no-plugins
will update the installation as currently implemented and thus exclude pluginsinstall $PLUGIN_NAME
will install the named plugin and activate itupdate $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 themupdate
will 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
- Author of the Request: Klees, Richard [rklees]
- Maintainer: Klees, Richard [rklees]
- Implementation of the feature is done by: CaT ILIAS Team
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]