Versions in this module Expand all Collapse all v0 v0.12.4 Jan 17, 2024 Changes in this version + var ErrNotFound = errors.Errorf("not found") + func CacheOptGetterOf(ctx context.Context) func(includeAncestors bool, keys ...interface{}) map[interface{}]interface + func ProgressControllerFromContext(ctx context.Context) progress.Controller + func SplitResultProxy(res ResultProxy) (ResultProxy, ResultProxy) + func WithCacheOptGetter(ctx context.Context, ...) context.Context + func WrapSlowCache(err error, index Index, res Result) error + type Builder interface + Build func(ctx context.Context, e Edge) (CachedResultWithProvenance, error) + EachValue func(ctx context.Context, key string, fn func(interface{}) error) error + InContext func(ctx context.Context, f func(ctx context.Context, g session.Group) error) error + type CacheExportMode int + const CacheExportModeMax + const CacheExportModeMin + const CacheExportModeRemoteOnly + type CacheExportOpt struct + CompressionOpt *compression.Config + ExportRoots bool + Mode CacheExportMode + ResolveRemotes func(context.Context, Result) ([]*Remote, error) + Session session.Group + type CacheExporter interface + ExportTo func(ctx context.Context, t CacheExporterTarget, opt CacheExportOpt) ([]CacheExporterRecord, error) + type CacheExporterRecord interface + AddResult func(vtx digest.Digest, index int, createdAt time.Time, result *Remote) + LinkFrom func(src CacheExporterRecord, index int, selector string) + type CacheExporterTarget interface + Add func(dgst digest.Digest) CacheExporterRecord + Visit func(interface{}) + Visited func(interface{}) bool + type CacheInfoLink struct + Digest digest.Digest + Input Index + Output Index + Selector digest.Digest + type CacheKey struct + ID string + func NewCacheKey(dgst, vtx digest.Digest, output Index) *CacheKey + func (ck *CacheKey) Deps() [][]CacheKeyWithSelector + func (ck *CacheKey) Digest() digest.Digest + func (ck *CacheKey) Output() Index + func (ck *CacheKey) TraceFields() map[string]any + type CacheKeyStorage interface + AddLink func(id string, link CacheInfoLink, target string) error + AddResult func(id string, res CacheResult) error + Exists func(id string) bool + HasLink func(id string, link CacheInfoLink, target string) bool + Load func(id string, resultID string) (CacheResult, error) + Release func(resultID string) error + Walk func(fn func(id string) error) error + WalkBacklinks func(id string, fn func(id string, link CacheInfoLink) error) error + WalkIDsByResult func(resultID string, fn func(string) error) error + WalkLinks func(id string, link CacheInfoLink, fn func(id string) error) error + WalkResults func(id string, fn func(CacheResult) error) error + func NewInMemoryCacheStorage() CacheKeyStorage + type CacheKeyWithSelector struct + CacheKey ExportableCacheKey + Selector digest.Digest + func (ck CacheKeyWithSelector) TraceFields() map[string]any + type CacheLink struct + Base digest.Digest + Input Index + Output Index + Selector digest.Digest + Source digest.Digest + type CacheManager interface + ID func() string + Load func(ctx context.Context, rec *CacheRecord) (Result, error) + Query func(inp []CacheKeyWithSelector, inputIndex Index, dgst digest.Digest, ...) ([]*CacheKey, error) + Records func(ctx context.Context, ck *CacheKey) ([]*CacheRecord, error) + Save func(key *CacheKey, s Result, createdAt time.Time) (*ExportableCacheKey, error) + func NewCacheManager(ctx context.Context, id string, storage CacheKeyStorage, ...) CacheManager + func NewCombinedCacheManager(cms []CacheManager, main CacheManager) CacheManager + func NewInMemoryCacheManager() CacheManager + type CacheMap struct + Deps []struct{ ... } + Digest digest.Digest + Opts CacheOpts + type CacheOpts map[interface{}]interface + type CacheRecord struct + CreatedAt time.Time + ID string + Priority int + Size int + func (ck *CacheRecord) TraceFields() map[string]any + type CacheResult struct + CreatedAt time.Time + ID string + type CacheResultStorage interface + Exists func(ctx context.Context, id string) bool + Load func(ctx context.Context, res CacheResult) (Result, error) + LoadRemotes func(ctx context.Context, res CacheResult, compression *compression.Config, ...) ([]*Remote, error) + Save func(Result, time.Time) (CacheResult, error) + func NewInMemoryResultStorage() CacheResultStorage + type CachedResult interface + CacheKeys func() []ExportableCacheKey + func NewCachedResult(res Result, k []ExportableCacheKey) CachedResult + type CachedResultWithProvenance interface + WalkProvenance func(context.Context, func(ProvenanceProvider) error) error + type Edge struct + Index Index + Vertex Vertex + type ExportableCacheKey struct + Exporter CacheExporter + type Index int + type Job struct + SessionID string + func (j *Job) Build(ctx context.Context, e Edge) (CachedResultWithProvenance, error) + func (j *Job) CloseProgress() + func (j *Job) Discard() error + func (j *Job) EachValue(ctx context.Context, key string, fn func(interface{}) error) error + func (j *Job) InContext(ctx context.Context, f func(context.Context, session.Group) error) error + func (j *Job) RegisterCompleteTime() time.Time + func (j *Job) SetValue(key string, v interface{}) + func (j *Job) StartedTime() time.Time + func (j *Job) Status(ctx context.Context, ch chan *client.SolveStatus) error + func (j *Job) UniqueID() string + type LoadedResult struct + CacheKey *CacheKey + CacheResult CacheResult + Result Result + func (r *LoadedResult) TraceFields() map[string]any + type Op interface + Acquire func(ctx context.Context) (release ReleaseFunc, err error) + CacheMap func(context.Context, session.Group, int) (*CacheMap, bool, error) + Exec func(ctx context.Context, g session.Group, inputs []Result) (outputs []Result, err error) + type PreprocessFunc func(context.Context, Result, session.Group) error + type ProvenanceProvider interface + IsProvenanceProvider func() + type ReleaseFunc func() + type Remote struct + Descriptors []ocispecs.Descriptor + Provider content.Provider + type ResolveOpFunc func(Vertex, Builder) (Op, error) + type Result interface + Clone func() Result + ID func() string + Release func(context.Context) error + Sys func() interface{} + type ResultBasedCacheFunc func(context.Context, Result, session.Group) (digest.Digest, error) + type ResultProxy interface + Definition func() *pb.Definition + ID func() string + Provenance func() interface{} + Release func(context.Context) error + Result func(context.Context) (CachedResult, error) + type SharedCachedResult struct + func NewSharedCachedResult(res CachedResult) *SharedCachedResult + func (r *SharedCachedResult) Clone() Result + func (r *SharedCachedResult) CloneCachedResult() CachedResult + func (r *SharedCachedResult) Release(ctx context.Context) error + type SharedResult struct + func NewSharedResult(main Result) *SharedResult + func (r *SharedResult) Clone() Result + func (r *SharedResult) Release(ctx context.Context) error + type SlowCacheError struct + Index Index + Result Result + func (e *SlowCacheError) ToSubject() errdefs.IsSolve_Subject + func (e *SlowCacheError) Unwrap() error + type Solver struct + func NewSolver(opts SolverOpt) *Solver + func (jl *Solver) Close() + func (jl *Solver) Get(id string) (*Job, error) + func (jl *Solver) NewJob(id string) (*Job, error) + type SolverOpt struct + DefaultCache CacheManager + ResolveOpFunc ResolveOpFunc + type Vertex interface + Digest func() digest.Digest + Inputs func() []Edge + Name func() string + Options func() VertexOptions + Sys func() interface{} + type VertexOptions struct + CacheSources []CacheManager + Description map[string]string + ExportCache *bool + IgnoreCache bool + ProgressGroup *pb.ProgressGroup