// Copyright 2019 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// Package internal contains data used through x/pkgsite.
package internal

const (
	ExperimentAltRequeue          = "alt-requeue"
	ExperimentAutocomplete        = "autocomplete"
	ExperimentFrontendRenderDoc   = "frontend-render-doc"
	ExperimentGoldmark            = "goldmark"
	ExperimentInsertPackageSource = "insert-package-source"
	ExperimentRemoveUnusedAST     = "remove-unused-ast"
	ExperimentSidenav             = "sidenav"
	ExperimentUnitPage            = "unit-page"
)

// Experiments represents all of the active experiments in the codebase and
// a description of each experiment.
var Experiments = map[string]string{
	ExperimentAltRequeue:          "Requeue modules for reprocessing in a different order.",
	ExperimentAutocomplete:        "Enable autocomplete with search.",
	ExperimentFrontendRenderDoc:   "Render documentation on the frontend if possible.",
	ExperimentGoldmark:            "Enable the usage of rendering markdown using goldmark instead of blackfriday.",
	ExperimentInsertPackageSource: "Insert the source code of a package in the database.",
	ExperimentRemoveUnusedAST:     "Prune AST prior to rendering documentation HTML.",
	ExperimentSidenav:             "Display documentation index on the left sidenav.",
	ExperimentUnitPage:            "Enable the redesigned details page.",
}

// Experiment holds data associated with an experimental feature for frontend
// or worker.
type Experiment struct {
	// This struct is used to decode dynamic config (see
	// internal/config/dynconfig). Make sure that changes to this struct are
	// coordinated with the deployment of config files.

	// Name is the name of the feature.
	Name string

	// Rollout is the percentage of requests enrolled in the experiment.
	Rollout uint

	// Description provides a description of the experiment.
	Description string
}
