Docs: Edit of "Developer Guide" and other topics (part 2 of doc quality project) (#86072)

* Edit deprecation-policy

* Edit drone-pipeline

* Docs: Edit of 4 files, part 2 of quality improvement

* Update contribute/developer-guide.md

* Update contribute/developer-guide.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* Changes from feedback

* Properly style UNIX

* Update contribute/drone-pipeline.md

* Update contribute/feature-toggles.md

Co-authored-by: J Stickler <julie.stickler@grafana.com>

* Format with prettier

---------

Co-authored-by: J Stickler <julie.stickler@grafana.com>
This commit is contained in:
Joseph Perez
2024-05-29 11:08:41 -07:00
committed by GitHub
co-authored by J Stickler
parent e81f48ef95
commit 4e99cd2860
4 changed files with 75 additions and 90 deletions
+7 -5
View File
@@ -1,15 +1,17 @@
# Feature toggle guide
This guide helps you get started adding your feature behind a feature flag in Grafana.
This guide helps you to add your feature behind a _feature flag_, code that lets you enable or disable a feature without redeploying Grafana.
## Steps to adding a feature toggle
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the comments [here](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This will generate all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. You can run the test by running `make gen-feature-toggles`.
1. Define the feature toggle in [registry.go](../pkg/services/featuremgmt/registry.go). To see what each feature stage means, look at the [related comments](../pkg/services/featuremgmt/features.go). If you are a community member, use the [CODEOWNERS](../.github/CODEOWNERS) file to determine which team owns the package you are updating.
2. Run the Go tests mentioned at the top of [this file](../pkg/services/featuremgmt/toggles_gen.go). This generates all the additional files needed: `toggles_gen` for the backend, `grafana-data` for the frontend, and docs. To run the test, run `make gen-feature-toggles`.
## How to use it in the code
## How to use the toggle in your code
Once your feature toggle is defined, you can then wrap your feature around a check if the feature flag is enabled on that Grafana instance. Here are examples of how to do that:
Once your feature toggle is defined, you can then wrap your feature around a check if the feature flag is enabled on that Grafana instance.
Examples:
- [Backend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/pkg/services/authn/clients/session.go#L57): Use the `IsEnabled` function and pass in your feature toggle.
- [Frontend](https://github.com/grafana/grafana/blob/feb2b5878b3e3ec551d64872c35edec2a0187812/public/app/features/search/service/folders.ts#L14): Check the config for your feature toggle.