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