package modload

import "cuelang.org/go/internal/mod/modload"

Index

Functions

func CheckTidy

func CheckTidy(ctx context.Context, fsys fs.FS, modRoot string, reg Registry) error

CheckTidy checks that the module file in the given main module is considered tidy. A module file is considered tidy when: - it can be parsed OK by modfile.ParseStrict. - it contains a language version in canonical semver form - it includes valid modules for all of its dependencies - it does not include any unnecessary dependencies.

func Tidy

func Tidy(ctx context.Context, fsys fs.FS, modRoot string, reg Registry) (*modfile.File, error)

Tidy evaluates all the requirements of the given main module, using the given registry to download requirements and returns a resolved and tidied module file.

func UpdateVersions

func UpdateVersions(ctx context.Context, fsys fs.FS, modRoot string, reg Registry, versions []string) (*modfile.File, error)

UpdateVersions returns the main module's module file with the specified module versions updated if possible and added if not already present. It returns an error if asked to downgrade a module below a version already required by an external dependency.

A module in the versions slice can be specified as one of the following:

Types

type ErrModuleNotTidy

type ErrModuleNotTidy struct {
	// Reason summarizes why the module is not tidy.
	Reason string
}

ErrModuleNotTidy is returned by CheckTidy when a module is not tidy, such as when there are missing or unnecessary dependencies listed.

func (ErrModuleNotTidy) Error

func (e ErrModuleNotTidy) Error() string

type Registry

type Registry interface {
	modrequirements.Registry
	modpkgload.Registry
	// ModuleVersions returns all the versions for the module with the given path
	// sorted in semver order.
	// If mpath has a major version suffix, only versions with that major version will
	// be returned.
	ModuleVersions(ctx context.Context, mpath string) ([]string, error)
}

Registry is modload's view of a module registry.

Source Files

query.go tidy.go update.go

Version
v0.12.0 (latest)
Published
Jan 30, 2025
Platform
linux/amd64
Imports
20 packages
Last checked
8 hours ago

Tools for package owners.