Skip to content

Support for Feature Toggles #97

@a-musing-moose

Description

@a-musing-moose

🎯Aim

I don't want in-progress features to prevent me from deployment regularly to production

📕Context

Adding support for feature toggles allows for much greater release flexibility. By having incomplete, or untested features behind a feature toggle you can continue to deploy to production without fear of causing undue errors. If the first act of introducing a new feature is to add a toggle, you can happily keep deployment whilst it is in development. Only turning it on in a given environment when you are ready to do so.

Feature toggles are generally useful, but become essential when you wish to adopt a continuous deployment strategy.

Whether this is a standard feature of every project that is generated by this template or a variant that is installed by default is up to the implementer.

📝Relevant resources/doc's/people

  • (Django Waffle)[https://waffle.readthedocs.io/en/stable/] A reliable feature toggle library for Django. It also support other types of toggles such as samples which support things like A/B testing and canary feature deployments.

✅Acceptance Criteria

  • Django Waffle is available and configured as part of projects generated by this template

🤓Technical Guidance

As part of the configuration I would recommend that the following additional config is added:

  • WAFFLE_CREATE_MISSING_SWITCHES=True
  • WAFFLE_CREATE_MISSING_SAMPLES=True
  • WAFFLE_CREATE_MISSING_FLAGS=True

This will ensure that the first time Django encounters a toggle, it creates an entry for it in the database (defaults to off).

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions