🎯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).
🎯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
sampleswhich support things like A/B testing and canary feature deployments.✅Acceptance Criteria
🤓Technical Guidance
As part of the configuration I would recommend that the following additional config is added:
WAFFLE_CREATE_MISSING_SWITCHES=TrueWAFFLE_CREATE_MISSING_SAMPLES=TrueWAFFLE_CREATE_MISSING_FLAGS=TrueThis will ensure that the first time Django encounters a toggle, it creates an entry for it in the database (defaults to
off).