Documentation ¶
Index ¶
Constants ¶
const SerializerVersion = 1
SerializerVersion is the current version of the migration file format so we can evolve over time
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FeatureCompletion ¶
type FeatureCompletion struct { FeatureGate string `yaml:"feature_gate" json:"feature_gate"` Version *string `yaml:"version" json:"version"` }
FeatureCompletion is the marshalable representation of a FeatureCompletion
type IdentifierType ¶
type IdentifierType struct {
Name string `yaml:"name" json:"name"`
}
IdentifierType is the JSON and YAML-marshalable representation of an IdentifierType
type LegacySchema ¶
type LegacySchema struct { IdentifierTypes []string `yaml:"identifier_types"` Splits yaml.MapSlice `yaml:"splits"` }
LegacySchema represents the Rails migration-piggybacked testtrack schema files of old
type MigrationFile ¶
type MigrationFile struct { SerializerVersion int `yaml:"serializer_version"` FeatureCompletion *FeatureCompletion `yaml:"feature_completion,omitempty"` RemoteKill *RemoteKill `yaml:"remote_kill,omitempty"` Split *SplitYAML `yaml:"split,omitempty"` SplitRetirement *SplitRetirement `yaml:"split_retirement,omitempty"` SplitDecision *SplitDecision `yaml:"split_decision,omitempty"` IdentifierType *IdentifierType `yaml:"identifier_type,omitempty"` }
MigrationFile is the YAML-marshalable root of a migration file
type MigrationVersion ¶
type MigrationVersion struct {
Version string `json:"version"`
}
MigrationVersion is a JSON-marshalable representation of migration version (timestamp)
type RemoteKill ¶
type RemoteKill struct { Split string `yaml:"split" json:"split"` Reason string `yaml:"reason" json:"reason"` OverrideTo *string `yaml:"override_to" json:"override_to"` FirstBadVersion *string `yaml:"first_bad_version" json:"first_bad_version"` FixedVersion *string `yaml:"fixed_version" json:"fixed_version"` }
RemoteKill is the marshalable representation of a RemoteKill
type Schema ¶
type Schema struct { SerializerVersion int `yaml:"serializer_version"` SchemaVersion string `yaml:"schema_version"` Splits []SchemaSplit `yaml:"splits,omitempty"` IdentifierTypes []IdentifierType `yaml:"identifier_types,omitempty"` RemoteKills []RemoteKill `yaml:"remote_kills,omitempty"` FeatureCompletions []FeatureCompletion `yaml:"feature_completions,omitempty"` }
Schema is the YAML-marshalable representation of the TestTrack schema for migration validation and bootstrapping of new ecosystems
type SchemaSplit ¶
type SchemaSplit struct { Name string `yaml:"name"` Weights yaml.MapSlice `yaml:"weights"` Decided bool `yaml:"decided,omitempty"` Owner string `yaml:"owner,omitempty"` }
SchemaSplit is the schema-file YAML-marshalable representation of a split's state
type SplitDecision ¶
SplitDecision is the JSON and YAML-marshalable representation of a SplitDecision
type SplitJSON ¶
type SplitJSON struct { Name string `json:"name"` WeightingRegistry map[string]int `json:"weighting_registry"` }
SplitJSON is is the JSON-marshalabe representation of a Split
type SplitRetirement ¶
SplitRetirement is the JSON and YAML-marshalable representation of a SplitRetirement