Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToon Claes <toon@gitlab.com>2022-07-05 21:33:49 +0300
committerToon Claes <toon@gitlab.com>2022-07-05 21:33:49 +0300
commitbfd3175bf92587f21d17e2107e1e7e2ee0fa69bc (patch)
treeabafc8ffefa8d9859ab8c613c873af469671b417
parente133fbe04c5787ec9a624a6218fbd2d65a13e290 (diff)
parent8132c2bb33acbe76fbb86500d8d5fef9e063bb30 (diff)
Merge branch 'pks-feature-flags-with-rollout-issue-url' into 'master'
featureflags: Require version and rollout issue URL for flags Closes #4312 See merge request gitlab-org/gitaly!4676
-rw-r--r--internal/git2go/featureflags_test.go4
-rw-r--r--internal/metadata/featureflag/featureflag.go5
-rw-r--r--internal/metadata/featureflag/ff_cherry_pick_structured_errors.go7
-rw-r--r--internal/metadata/featureflag/ff_exact_pagination_token_match.go7
-rw-r--r--internal/metadata/featureflag/ff_git_v2361.go7
-rw-r--r--internal/metadata/featureflag/ff_go_find_license.go7
-rw-r--r--internal/metadata/featureflag/ff_praefect_generated_paths.go7
-rw-r--r--internal/metadata/featureflag/ff_rate_limiter.go7
-rw-r--r--internal/metadata/featureflag/ff_repo_size_revlist.go7
-rw-r--r--internal/metadata/featureflag/ff_run_cmd_in_cgroup.go7
-rw-r--r--internal/metadata/featureflag/ff_transactional_restore_custom_hooks.go7
-rw-r--r--internal/metadata/featureflag/ff_user_rebase_confirmable_improved_error_handling.go7
-rw-r--r--internal/praefect/coordinator_test.go4
13 files changed, 68 insertions, 15 deletions
diff --git a/internal/git2go/featureflags_test.go b/internal/git2go/featureflags_test.go
index 1ea54df52..06741fb05 100644
--- a/internal/git2go/featureflags_test.go
+++ b/internal/git2go/featureflags_test.go
@@ -35,8 +35,8 @@ func (b *Executor) FeatureFlags(ctx context.Context, repo repository.GitRepo) (f
}
var (
- featureA = featureflag.NewFeatureFlag("feature-a", false)
- featureB = featureflag.NewFeatureFlag("feature-b", true)
+ featureA = featureflag.NewFeatureFlag("feature-a", "", "", false)
+ featureB = featureflag.NewFeatureFlag("feature-b", "", "", true)
)
func TestFeatureFlagsExecutor_FeatureFlags(t *testing.T) {
diff --git a/internal/metadata/featureflag/featureflag.go b/internal/metadata/featureflag/featureflag.go
index edb0f8b16..70f90d2d9 100644
--- a/internal/metadata/featureflag/featureflag.go
+++ b/internal/metadata/featureflag/featureflag.go
@@ -69,7 +69,10 @@ type FeatureFlag struct {
}
// NewFeatureFlag creates a new feature flag and adds it to the array of all existing feature flags.
-func NewFeatureFlag(name string, onByDefault bool) FeatureFlag {
+// The name must be of the format `some_feature_flag`. Accepts a version and rollout issue URL as
+// input that are not used for anything but only for the sake of linking to the feature flag rollout
+// issue in the Gitaly project.
+func NewFeatureFlag(name, version, rolloutIssueURL string, onByDefault bool) FeatureFlag {
featureFlag := FeatureFlag{
Name: name,
OnByDefault: onByDefault,
diff --git a/internal/metadata/featureflag/ff_cherry_pick_structured_errors.go b/internal/metadata/featureflag/ff_cherry_pick_structured_errors.go
index 65e67b0ed..594fddf3c 100644
--- a/internal/metadata/featureflag/ff_cherry_pick_structured_errors.go
+++ b/internal/metadata/featureflag/ff_cherry_pick_structured_errors.go
@@ -2,4 +2,9 @@ package featureflag
// CherryPickStructuredErrors enables the UserCherryPick RPC to return
// structured errors.
-var CherryPickStructuredErrors = NewFeatureFlag("cherry_pick_structured_errors", false)
+var CherryPickStructuredErrors = NewFeatureFlag(
+ "cherry_pick_structured_errors",
+ "v15.2.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4325",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_exact_pagination_token_match.go b/internal/metadata/featureflag/ff_exact_pagination_token_match.go
index 607896507..ad9392f80 100644
--- a/internal/metadata/featureflag/ff_exact_pagination_token_match.go
+++ b/internal/metadata/featureflag/ff_exact_pagination_token_match.go
@@ -2,4 +2,9 @@ package featureflag
// ExactPaginationTokenMatch enables exact matching for provided pagination tokens and
// returns an error if the match is not found.
-var ExactPaginationTokenMatch = NewFeatureFlag("exact_pagination_token_match", true)
+var ExactPaginationTokenMatch = NewFeatureFlag(
+ "exact_pagination_token_match",
+ "v14.10.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/3817",
+ true,
+)
diff --git a/internal/metadata/featureflag/ff_git_v2361.go b/internal/metadata/featureflag/ff_git_v2361.go
index 693206477..869f3d8e6 100644
--- a/internal/metadata/featureflag/ff_git_v2361.go
+++ b/internal/metadata/featureflag/ff_git_v2361.go
@@ -1,4 +1,9 @@
package featureflag
// GitV2361Gl1 will enable use of Git v2.36.1.gl1.
-var GitV2361Gl1 = NewFeatureFlag("git_v2361gl1", false)
+var GitV2361Gl1 = NewFeatureFlag(
+ "git_v2361gl1",
+ "v15.0.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4194",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_go_find_license.go b/internal/metadata/featureflag/ff_go_find_license.go
index 95639870e..a3c63b2c9 100644
--- a/internal/metadata/featureflag/ff_go_find_license.go
+++ b/internal/metadata/featureflag/ff_go_find_license.go
@@ -1,4 +1,9 @@
package featureflag
// GoFindLicense enables Go implementation of FindLicense
-var GoFindLicense = NewFeatureFlag("go_find_license", false)
+var GoFindLicense = NewFeatureFlag(
+ "go_find_license",
+ "v14.3.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/3759",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_praefect_generated_paths.go b/internal/metadata/featureflag/ff_praefect_generated_paths.go
index 4109bd636..8858043ca 100644
--- a/internal/metadata/featureflag/ff_praefect_generated_paths.go
+++ b/internal/metadata/featureflag/ff_praefect_generated_paths.go
@@ -1,4 +1,9 @@
package featureflag
// PraefectGeneratedReplicaPaths will enable Praefect generated replica paths for new repositories.
-var PraefectGeneratedReplicaPaths = NewFeatureFlag("praefect_generated_replica_paths", false)
+var PraefectGeneratedReplicaPaths = NewFeatureFlag(
+ "praefect_generated_replica_paths",
+ "v15.0.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4218",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_rate_limiter.go b/internal/metadata/featureflag/ff_rate_limiter.go
index 7207e4b37..7bdbe9afa 100644
--- a/internal/metadata/featureflag/ff_rate_limiter.go
+++ b/internal/metadata/featureflag/ff_rate_limiter.go
@@ -2,4 +2,9 @@ package featureflag
// RateLimit will enable the rate limiter to reject requests beyond a configured
// rate.
-var RateLimit = NewFeatureFlag("rate_limit", false)
+var RateLimit = NewFeatureFlag(
+ "rate_limit",
+ "v14.10.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4181",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_repo_size_revlist.go b/internal/metadata/featureflag/ff_repo_size_revlist.go
index 8be87e482..b630ccfc6 100644
--- a/internal/metadata/featureflag/ff_repo_size_revlist.go
+++ b/internal/metadata/featureflag/ff_repo_size_revlist.go
@@ -2,4 +2,9 @@ package featureflag
// RevlistForRepoSize enables the RepositorySize RPC to use git rev-list to
// calculate the disk usage of the repository.
-var RevlistForRepoSize = NewFeatureFlag("revlist_for_repo_size", false)
+var RevlistForRepoSize = NewFeatureFlag(
+ "revlist_for_repo_size",
+ "v14.10.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4317",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_run_cmd_in_cgroup.go b/internal/metadata/featureflag/ff_run_cmd_in_cgroup.go
index 5c84995b1..a92948c4e 100644
--- a/internal/metadata/featureflag/ff_run_cmd_in_cgroup.go
+++ b/internal/metadata/featureflag/ff_run_cmd_in_cgroup.go
@@ -1,4 +1,9 @@
package featureflag
// RunCommandsInCGroup allows all commands to be run within a cgroup
-var RunCommandsInCGroup = NewFeatureFlag("run_cmds_in_cgroup", false)
+var RunCommandsInCGroup = NewFeatureFlag(
+ "run_cmds_in_cgroup",
+ "v14.10.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4102",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_transactional_restore_custom_hooks.go b/internal/metadata/featureflag/ff_transactional_restore_custom_hooks.go
index 8f3e2337d..c8b8d9ee2 100644
--- a/internal/metadata/featureflag/ff_transactional_restore_custom_hooks.go
+++ b/internal/metadata/featureflag/ff_transactional_restore_custom_hooks.go
@@ -2,4 +2,9 @@ package featureflag
// TransactionalRestoreCustomHooks will use transactional voting in the
// RestoreCustomHooks RPC
-var TransactionalRestoreCustomHooks = NewFeatureFlag("tx_restore_custom_hooks", false)
+var TransactionalRestoreCustomHooks = NewFeatureFlag(
+ "tx_restore_custom_hooks",
+ "v15.0.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4203",
+ false,
+)
diff --git a/internal/metadata/featureflag/ff_user_rebase_confirmable_improved_error_handling.go b/internal/metadata/featureflag/ff_user_rebase_confirmable_improved_error_handling.go
index 9f49b4559..1065b92e8 100644
--- a/internal/metadata/featureflag/ff_user_rebase_confirmable_improved_error_handling.go
+++ b/internal/metadata/featureflag/ff_user_rebase_confirmable_improved_error_handling.go
@@ -4,4 +4,9 @@ package featureflag
// RPC. When this flag is disabled many error cases were returning successfully with an error message
// embedded in the response. With this flag enabled, this is converted to return real gRPC errors with
// structured errors.
-var UserRebaseConfirmableImprovedErrorHandling = NewFeatureFlag("user_rebase_confirmable_improved_error_handling", false)
+var UserRebaseConfirmableImprovedErrorHandling = NewFeatureFlag(
+ "user_rebase_confirmable_improved_error_handling",
+ "v14.10.0",
+ "https://gitlab.com/gitlab-org/gitaly/-/issues/4326",
+ false,
+)
diff --git a/internal/praefect/coordinator_test.go b/internal/praefect/coordinator_test.go
index f728744c0..0b8201f33 100644
--- a/internal/praefect/coordinator_test.go
+++ b/internal/praefect/coordinator_test.go
@@ -2689,8 +2689,8 @@ func TestNewRequestFinalizer_contextIsDisjointedFromTheRPC(t *testing.T) {
func TestStreamParametersContext(t *testing.T) {
// Because we're using NewFeatureFlag, they'll end up in the All array.
- enabledFF := featureflag.NewFeatureFlag("default-enabled", true)
- disabledFF := featureflag.NewFeatureFlag("default-disabled", false)
+ enabledFF := featureflag.NewFeatureFlag("default-enabled", "", "", true)
+ disabledFF := featureflag.NewFeatureFlag("default-disabled", "", "", false)
type expectedFlag struct {
flag featureflag.FeatureFlag