Help us shape the future of Go! Take the 2026 Go Developer Survey

features

package
v0.8.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 11, 2026 License: MPL-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ApplyFlagOverrides

func ApplyFlagOverrides(ftrs *Features, envOverrides string) error

ApplyFlagOverrides parses a comma separated list of feature flag overrides (without the -- flag name prefix) and sets them in the referenced features.

Types

type Features

type Features struct {
	// Never enabled by default
	NoUseRegistryForWithDocker bool `description:"disable use-registry-for-with-docker" long:"no-use-registry-for-with-docker"` //nolint:lll // escape hatch for disabling WITH DOCKER registry, e.g. used by eine-based tests
	EarthlyCIRunnerArg         bool `description:"includes EARTHLY_CI_RUNNER ARG"       long:"earthly-ci-runner-arg"`           //nolint:lll // earthly CI was discontinued, no reason to enable this by default

	// VERSION 0.5
	ExecAfterParallel bool `` //nolint:lll
	/* 126-byte string literal not displayed */
	ParallelLoad             bool `description:"perform parallel loading of images into WITH DOCKER"          enabled_in_version:"0.5" long:"parallel-load"` //nolint:lll
	UseRegistryForWithDocker bool ``                                                                                                                         //nolint:lll
	/* 135-byte string literal not displayed */

	// VERSION 0.6
	ForIn bool `` //nolint:lll
	/* 197-byte string literal not displayed */
	NoImplicitIgnore bool `` //nolint:lll
	/* 209-byte string literal not displayed */
	ReferencedSaveOnly bool `` //nolint:lll
	/* 211-byte string literal not displayed */
	RequireForceForUnsafeSaves bool `` //nolint:lll
	/* 221-byte string literal not displayed */
	UseCopyIncludePatterns bool `` //nolint:lll
	/* 216-byte string literal not displayed */

	// VERSION 0.7
	CheckDuplicateImages bool `` //nolint:lll
	/* 148-byte string literal not displayed */
	EarthlyCIArg bool `` //nolint:lll
	/* 132-byte string literal not displayed */
	EarthlyGitAuthorArgs bool `` //nolint:lll
	/* 149-byte string literal not displayed */
	EarthlyLocallyArg bool `` //nolint:lll
	/* 145-byte string literal not displayed */
	EarthlyVersionArg bool `` //nolint:lll
	/* 145-byte string literal not displayed */
	ExplicitGlobal bool `` //nolint:lll
	/* 141-byte string literal not displayed */
	GitCommitAuthorTimestamp bool `` //nolint:lll
	/* 153-byte string literal not displayed */
	NewPlatform bool `` //nolint:lll
	/* 138-byte string literal not displayed */
	NoTarBuildOutput bool `` //nolint:lll
	/* 145-byte string literal not displayed */
	SaveArtifactKeepOwn bool `` //nolint:lll
	/* 148-byte string literal not displayed */
	ShellOutAnywhere bool `` //nolint:lll
	/* 144-byte string literal not displayed */
	UseCacheCommand bool `` //nolint:lll
	/* 143-byte string literal not displayed */
	UseChmod bool `` //nolint:lll
	/* 135-byte string literal not displayed */
	UseCopyLink bool `` //nolint:lll
	/* 139-byte string literal not displayed */
	UseHostCommand bool `` //nolint:lll
	/* 142-byte string literal not displayed */
	UseNoManifestList bool `` //nolint:lll
	/* 146-byte string literal not displayed */
	UseProjectSecrets bool `` //nolint:lll
	/* 145-byte string literal not displayed */
	WaitBlock bool `` //nolint:lll
	/* 136-byte string literal not displayed */

	// VERSION 0.8
	NoNetwork bool `` //nolint:lll
	/* 242-byte string literal not displayed */
	ArgScopeSet bool `` //nolint:lll
	/* 249-byte string literal not displayed */
	UseDockerIgnore bool `` //nolint:lll
	/* 249-byte string literal not displayed */
	PassArgs bool `` //nolint:lll
	/* 241-byte string literal not displayed */
	GlobalCache bool `` //nolint:lll
	/* 244-byte string literal not displayed */
	CachePersistOption bool `` //nolint:lll
	/* 252-byte string literal not displayed */
	GitRefs bool `` //nolint:lll
	/* 240-byte string literal not displayed */
	UseVisitedUpfrontHashCollection bool `` //nolint:lll
	/* 267-byte string literal not displayed */
	UseFunctionKeyword bool `` //nolint:lll
	/* 252-byte string literal not displayed */

	// unreleased
	TryFinally                    bool `description:"allow the use of the TRY/FINALLY commands"                                   long:"try"`             //nolint:lll
	WildcardBuilds                bool `description:"allow for the expansion of wildcard (glob) paths for BUILD commands"         long:"wildcard-builds"` //nolint:lll
	BuildAutoSkip                 bool `description:"allow for --auto-skip to be used on individual BUILD commands"               long:"build-auto-skip"` //nolint:lll
	AllowPrivilegedFromDockerfile bool ``                                                                                                                 //nolint:lll
	/* 129-byte string literal not displayed */
	RunWithAWS                bool `description:"make AWS credentials in the environment or ~/.aws available to RUN commands" long:"run-with-aws"`                 //nolint:lll
	WildcardCopy              bool `description:"allow for the expansion of wildcard (glob) paths for COPY commands"          long:"wildcard-copy"`                //nolint:lll
	RawOutput                 bool `description:"allow for --raw-output on RUN commands"                                      long:"raw-output"`                   //nolint:lll
	GitAuthorEmailNameArgs    bool `description:"includes EARTHLY_GIT_AUTHOR_EMAIL and EARTHLY_GIT_AUTHOR_NAME builtin ARGs"  long:"git-author-email-name-args"`   //nolint:lll
	AllowWithoutEarthlyLabels bool `description:"Allow the usage of --without-earthly-labels in SAVE IMAGE"                   long:"allow-without-earthly-labels"` //nolint:lll
	DockerCache               bool `description:"enable the WITH DOCKER --cache-id option"                                    long:"docker-cache"`                 //nolint:lll
	RunWithAWSOIDC            bool `description:"make AWS credentials via OIDC provider available to RUN commands"            long:"run-with-aws-oidc"`            //nolint:lll

	// version numbers
	Major int
	Minor int
}

Features is used to denote which features to flip on or off; this is for use in maintaining backwards compatibility.

func FromContext

func FromContext(ctx context.Context) *Features

FromContext returns the *Features associated with the ctx. If no features is found, nil is returned.

func Get

func Get(version *spec.Version) (*Features, bool, error)

Get returns a features struct for a particular version.

func (*Features) ProcessFlags

func (f *Features) ProcessFlags() ([]string, error)

func (*Features) String

func (f *Features) String() string

String returns a string representation of the version and set flags.

func (*Features) Version

func (f *Features) Version() string

Version returns the current version.

func (*Features) WithContext

func (f *Features) WithContext(ctx context.Context) (context.Context, error)

WithContext adds the current *Features into the given context and returns a new context. Trying to add the *Features to the context more than once will result in an error.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL