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 ¶
- func BumpOperationID(events []ReleaseEvent) string
- func WriteBumpReports(directory string, report BumpReport) error
- func WriteReports(directory string, report Report) error
- type BumpOptions
- type BumpReport
- type BumpWaveReport
- type Decision
- type Ecosystem
- type Options
- type PublishedGoRelease
- type ReleaseEvent
- type ReleaseObservation
- type RemoteCheck
- type Report
- type Repository
- type RepositoryReport
- type Target
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 ¶
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.
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 ¶
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.
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 ¶
ParseTarget validates a command target such as strongo/cicd@v1.10.5.