deps

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 22 Imported by: 0

Documentation

Overview

Package deps coordinates exact dependency updates across isolated repository worktrees. Ecosystem adapters own discovery and mutation; the runner owns Git, verification, publication, and deterministic reports.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BumpOperationID

func BumpOperationID(events []ReleaseEvent) string

BumpOperationID returns the stable campaign identity for a sorted seed set.

func WriteBumpReports

func WriteBumpReports(directory string, report BumpReport) error

WriteBumpReports atomically replaces the human and machine campaign indexes.

func WriteReports

func WriteReports(directory string, report Report) error

WriteReports writes deps-set.md and deps-set.yaml to the requested directory.

Types

type BumpOptions

type BumpOptions struct {
	Options
	MaxWaves     int
	PollInterval time.Duration
	Previous     *BumpReport
	Persist      func(BumpReport) error

	// LatestGoVersion is injectable for deterministic wave tests.
	LatestGoVersion func(context.Context, string) (string, error)
	// LatestGoRelease is injectable for graph traversal through modules that
	// were updated and published before this campaign started.
	LatestGoRelease func(context.Context, string) (PublishedGoRelease, error)
}

BumpOptions adds wave and release discovery policy to shared lifecycle options.

type BumpReport

type BumpReport struct {
	SchemaVersion int              `yaml:"schema_version"`
	Operation     string           `yaml:"operation"`
	Status        string           `yaml:"status"`
	Ecosystem     Ecosystem        `yaml:"ecosystem"`
	SeedEvents    []ReleaseEvent   `yaml:"seed_events"`
	GitHubDir     string           `yaml:"github_dir"`
	BaseRef       string           `yaml:"base_ref"`
	Verification  []quality.Check  `yaml:"verification,omitempty"`
	Parallel      int              `yaml:"parallel"`
	Waves         []BumpWaveReport `yaml:"waves"`
}

BumpReport is the persistent Markdown/YAML state of a wave campaign.

func LoadBumpReport

func LoadBumpReport(directory string) (BumpReport, error)

LoadBumpReport loads persisted resume state.

func RunBump

func RunBump(ctx context.Context, events []ReleaseEvent, repositories []Repository, options BumpOptions) (BumpReport, error)

RunBump propagates explicit Go release events through recalculated direct consumer waves. Each newly observed provider release becomes the next wave.

func (BumpReport) Markdown

func (report BumpReport) Markdown() string

Markdown renders the wave, repository, and release-evidence index.

func (BumpReport) YAML

func (report BumpReport) YAML() ([]byte, error)

YAML renders deterministic machine-readable wave state.

type BumpWaveReport

type BumpWaveReport struct {
	Index        int                  `yaml:"index"`
	Status       string               `yaml:"status"`
	Events       []ReleaseEvent       `yaml:"events"`
	Repositories []RepositoryReport   `yaml:"repositories"`
	Releases     []ReleaseObservation `yaml:"releases,omitempty"`
}

BumpWaveReport records one recalculated direct-consumer layer.

type Decision

type Decision struct {
	Dependency    string `yaml:"dependency,omitempty"`
	File          string `yaml:"file"`
	BeforeRef     string `yaml:"before_ref,omitempty"`
	BeforeVersion string `yaml:"before_version,omitempty"`
	TargetVersion string `yaml:"target_version"`
	ResolvedRef   string `yaml:"resolved_ref,omitempty"`
	AfterRef      string `yaml:"after_ref,omitempty"`
	AfterVersion  string `yaml:"after_version,omitempty"`
	Action        string `yaml:"action"`
	Reason        string `yaml:"reason"`
}

Decision explains one existing dependency reference before and after update.

type Ecosystem

type Ecosystem string

Ecosystem identifies a dependency manifest or reference format.

const (
	EcosystemGitHubActions Ecosystem = "github-actions"
	EcosystemGo            Ecosystem = "go"
)

type Options

type Options struct {
	GitHubDir      string
	Ref            string
	Parallel       int
	DryRun         bool
	Resume         bool
	AllowDowngrade bool
	Verify         bool
	Checks         []quality.Check
	Timeout        time.Duration
	Retry          int
	Commit         bool
	Push           bool
	PR             bool
	Merge          bool
	ReportDir      string

	// ResolveGitHubRef is injectable for hermetic adapter tests.
	ResolveGitHubRef func(context.Context, string, string) (string, error)
}

Options controls repository isolation, verification, and optional publishing.

type PublishedGoRelease

type PublishedGoRelease struct {
	Version      string
	Requirements map[string]string
	Source       string
}

PublishedGoRelease is immutable registry evidence used to carry an event through an already-current consumer without manufacturing another release.

type ReleaseEvent

type ReleaseEvent struct {
	Dependency string `yaml:"dependency"`
	Version    string `yaml:"version"`
	Source     string `yaml:"source"`
}

ReleaseEvent is version evidence that starts or advances a dependency wave.

type ReleaseObservation

type ReleaseObservation struct {
	Module               string            `yaml:"module"`
	Repository           string            `yaml:"repository"`
	Before               string            `yaml:"before,omitempty"`
	After                string            `yaml:"after,omitempty"`
	Source               string            `yaml:"source"`
	Status               string            `yaml:"status"`
	Reason               string            `yaml:"reason"`
	ExpectedRequirements map[string]string `yaml:"expected_requirements,omitempty"`
	RequireNewer         bool              `yaml:"require_newer,omitempty"`
}

ReleaseObservation prevents the wave engine from inventing provider versions.

type RemoteCheck

type RemoteCheck = orchestrate.RemoteCheck

RemoteCheck is the normalized GitHub check state observed before merge.

type Report

type Report struct {
	SchemaVersion int                `yaml:"schema_version"`
	Operation     string             `yaml:"operation"`
	Status        string             `yaml:"status"`
	Target        Target             `yaml:"target"`
	GitHubDir     string             `yaml:"github_dir"`
	BaseRef       string             `yaml:"base_ref"`
	Verification  []quality.Check    `yaml:"verification,omitempty"`
	Parallel      int                `yaml:"parallel"`
	Repositories  []RepositoryReport `yaml:"repositories"`
}

Report is the stable Markdown/YAML index for one exact-set operation.

func Run

func Run(ctx context.Context, target Target, repositories []Repository, options Options) (Report, error)

Run resolves one exact target and delegates repository lifecycle to the shared typed orchestration engine. The adapter owns dependency decisions.

func (Report) Markdown

func (report Report) Markdown() string

Markdown renders a linked index suitable for human or AI review.

func (Report) YAML

func (report Report) YAML() ([]byte, error)

YAML renders the same deterministic report for tooling.

type Repository

type Repository = orchestrate.Repository

Repository identifies a canonical clone selected by command-level discovery.

type RepositoryReport

type RepositoryReport struct {
	Repository    string                      `yaml:"repository"`
	CanonicalDir  string                      `yaml:"canonical_dir,omitempty"`
	WorktreeDir   string                      `yaml:"worktree_dir,omitempty"`
	Branch        string                      `yaml:"branch,omitempty"`
	Ref           string                      `yaml:"ref"`
	Status        string                      `yaml:"status"`
	Reason        string                      `yaml:"reason"`
	Decisions     []Decision                  `yaml:"decisions,omitempty"`
	ChangedFiles  []string                    `yaml:"changed_files,omitempty"`
	Verifications []quality.VerificationEntry `yaml:"verifications,omitempty"`
	Commit        string                      `yaml:"commit,omitempty"`
	Pushed        bool                        `yaml:"pushed,omitempty"`
	PR            string                      `yaml:"pr,omitempty"`
	Checks        []RemoteCheck               `yaml:"checks,omitempty"`
	Merged        bool                        `yaml:"merged,omitempty"`
}

RepositoryReport records one selected repository and every external stage.

type Target

type Target struct {
	Ecosystem  Ecosystem `yaml:"ecosystem"`
	Dependency string    `yaml:"dependency"`
	Version    string    `yaml:"version"`
	Resolved   string    `yaml:"resolved,omitempty"`
}

Target is the exact dependency identity and version requested by the user.

func ParseTarget

func ParseTarget(ecosystem, value string) (Target, error)

ParseTarget validates a command target such as strongo/cicd@v1.10.5.

Jump to

Keyboard shortcuts

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