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

Configuration system rewrite #244

Open
jchristgit opened this issue Feb 13, 2022 · 0 comments
Open

Configuration system rewrite #244

jchristgit opened this issue Feb 13, 2022 · 0 comments

Comments

@jchristgit
Copy link
Collaborator

Migrating over what we discussed in the all-hands meeting here for the back end team to discuss

The configuration system rewrite is a big project which we want to do due to
problems with the current approach to managing configuration.

The new configuration system should provide us with the following features:

  • Distinction between editable and non-editable settings. Some values should
    be able to be configured during the event, some should be immutable. The
    configuration system should have a built-in notion of this. For settings that
    will not change over the course of the event and need to be present at event
    start (such as the mail server to use), it may be clean to resort to the
    direct Django settings, as Django already provides functionality to work with
    this.

    • An example package that we could maybe take inspiration of would be
      django-constance.

    • Either way, we should expand the amount of settings that are configurable by
      the user in the frontend instead of further locking it down.

    • This should also take into account the possibility of a future cloud
      offering, although we still need to discuss what this means in terms of
      config system architecture.

  • Simple unit testing. Currently, we lack a clean context manager or similar
    ways of overriding config values for a single unit test, and instead have to
    resort to setting values manually. In case of test failure, this results in
    cascading failures, making it harder to find the source of the issues.

  • Note that the app is built on the assumption that it only runs for a single
    event - for more than one event we would probably use a coordinator service.

After reviewing additional requirements that we want here, and clearing the
small remaining backlog for core, create an issue to plan out the new
configuration system.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants