Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Route all configuration management through a single component #1069

Closed
3 of 4 tasks
shonfeder opened this issue Nov 2, 2021 · 0 comments · Fixed by #1160
Closed
3 of 4 tasks

[FEATURE] Route all configuration management through a single component #1069

shonfeder opened this issue Nov 2, 2021 · 0 comments · Fixed by #1160
Assignees
Labels
Finput-output Feature: input-output new New issue to be triaged.

Comments

@shonfeder
Copy link
Contributor

shonfeder commented Nov 2, 2021

This ticket records a plan hatched in conversation with @Kukovec today.

The plans for the OutputManager introduced in #1025, and implemented in followups, calls for a "cascade loading" configuration system. The configuration is derived from reading

  1. CLI arguments
  2. environment variables
  3. A local configuration file (perhaps with the location overridden by a CLI flag)
  4. A global configuration file

The final configuration is computed based on the priority of the source.

Currently, we are doing this in a somewhat ad hoc way. But gathering all of this logic into a configuration management sub-system will help reduce the complexity of the OutputManager and contribute to the current plan to move it away from a singleton, into something we can put in DI, that gets all of its configurations from the PassOptions.

With the server mode coming down the pipe, we'll have more need for a configuration system that is easy to maintain.

Scope of work expected to resolve this ticket:

  • Briefly research existing configuration management systems used in the Scala ecosystem.
  • Decide whether to use one of the existing solutions or roll our own.
  • Write a short ADR recording the decisions.
  • Move the configuration parsing out of the OutputManager and into the new subsystem.
@shonfeder shonfeder added new New issue to be triaged. Finput-output Feature: input-output labels Nov 2, 2021
@shonfeder shonfeder self-assigned this Nov 2, 2021
@shonfeder shonfeder mentioned this issue Dec 8, 2021
9 tasks
@shonfeder shonfeder added this to the Server Mode milestone Dec 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Finput-output Feature: input-output new New issue to be triaged.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant