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 flags #74

Open
ramnes opened this issue Aug 18, 2022 · 4 comments
Open

Feature flags #74

ramnes opened this issue Aug 18, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request

Comments

@ramnes
Copy link
Contributor

ramnes commented Aug 18, 2022

Except for the core of the app (i.e. people moving around and WebRTC being triggered when two people are close), it would be great if all features could be toggled, through the settings or in-app.

Things we may want to enable or disable:

  • chat
  • user settings (or parts of it)
  • reactions
  • kick
  • buttons
  • inventory
  • guilds
  • etc. :)

This would also help when working on new features – we could release the code in production even when a feature is not 100% ready yet, keep working on it on a development instance and disable the feature in production. That way we wouldn't have to keep two distinct git branches with one lagging behind, which helps when you want to patch things.

Also, if we go through a module-based approach, we would make out-of-tree code standard, which would help minimizing the codebase here and contributions through third party codebases.

@Donorhan
Copy link
Contributor

There is lp.isLemverseBeta('myBetaFlag') to set flags on users, isn't that enough?

@ramnes
Copy link
Contributor Author

ramnes commented Aug 19, 2022

That works for new features but not the existing ones. We can't disable the chat that way, for example. :)

@Donorhan Donorhan added the enhancement New feature or request label Aug 30, 2022
@alimtunc
Copy link
Contributor

alimtunc commented Oct 7, 2022

#139

@ramnes
Copy link
Contributor Author

ramnes commented Oct 26, 2022

#161 started to implement a new features configuration model in the settings:

{
  "features": {
    "useMessaging": {
      "enabled": true,
      "guestEnabled": false,
      "levelConfigurable": true
    },
    ...
  }
}

It covers most cases but now we have a lot of things to refactor to follow that model. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants