blob: 27d99b0d2a718f2ecbd9196ce9979a8a92faf519 [file] [log] [blame]
// 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 (
ExperimentDeprecatedDoc = "deprecated-doc"
ExperimentEnableStdFrontendFetch = "enable-std-frontend-fetch"
ExperimentInsertSymbolSearchDocuments = "insert-symbol-search-documents"
ExperimentNewUnitLayout = "new-unit-layout"
ExperimentReadImports = "read-imports"
ExperimentReadSymbolHistory = "read-symbol-history"
ExperimentSearchGrouping = "search-grouping"
ExperimentSkipInsertSymbols = "skip-insert-symbols"
ExperimentStyleGuide = "styleguide"
ExperimentSymbolHistoryMainPage = "symbol-history-main-page"
ExperimentSymbolHistoryVersionsPage = "symbol-history-versions-page"
ExperimentSymbolSearch = "symbol-search"
)
// Experiments represents all of the active experiments in the codebase and
// a description of each experiment.
var Experiments = map[string]string{
ExperimentDeprecatedDoc: "Treat deprecated symbols specially in documentation.",
ExperimentEnableStdFrontendFetch: "Enable frontend fetching for module std.",
ExperimentInsertSymbolSearchDocuments: "Insert data into symbol_search_documents.",
ExperimentNewUnitLayout: "Enable the new layout on the unit page.",
ExperimentReadImports: "Read from imports instead of package_imports.",
ExperimentReadSymbolHistory: "Read data from the symbol_history table.",
ExperimentSearchGrouping: "Group search results.",
ExperimentSkipInsertSymbols: "Don't insert data into symbols tables.",
ExperimentStyleGuide: "Enable the styleguide.",
ExperimentSymbolHistoryMainPage: "Show package API history on the main unit page.",
ExperimentSymbolHistoryVersionsPage: "Show package API history on the versions page.",
ExperimentSymbolSearch: "Enable searching for symbols.",
}
// 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
}