Skip to content
This repository was archived by the owner on Dec 20, 2022. It is now read-only.
This repository was archived by the owner on Dec 20, 2022. It is now read-only.

Implement proper preference framework #21

@d-gs

Description

@d-gs

Feature request

Expected Behavior - What were you expecting to happen?

This feature should be for the core framework for preferences. With this ticket a simple preference to switch/change the log-level for both GEM and third-party ones should be implemented.

Current Behavior - What happens?

Current framework for preferences is not used and not flexible enough, as it is just a draft. The solution to this issue should be also a draft but more refined as it might be changed when UI for preferences is implemented. By now, it should be usable so the file-based configuration can be edited by hand and the preferences being picked up.

Possible Solution

The preference framework should contain:

  1. Preferences for the core and also plug-in specific preferences, stored as a HOCON config on the GEM application folder to be consistent with our file-based config structure.
  2. A way to communicate plug-in preferences to the UI the different kind of preferences to display properly (the UI part should be a different feature request). A new provider should be available to configure preferences.
  3. Resolution of preferences should use also the configuration, so plug-ins can request preferences instead of configuration for their plug-ins. This will also make more flexible the framework so for example for the new JIRA plug-in (see Add JIRA feature branch provider #3) some JQL parts can be part of the preferences (e.g., user-name on JIRA).
  4. A way to set by default some preferences values with the configuration and/or programatically.
  5. New configuration entry for framework that allows to include on the configuration resolvable preferences not determined by source code (e.g., the user-name for JIRA).

Context

The context is to enable user-preferences at the core level (not UI) to allow user-input on the behavior of GEM core and plug-ins.

Notes and further information

Follow up this ticket the UI counterpart should be created (see next ticket).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions