providerrelease

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2026 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Overview

Package providerrelease is the typed reading of config/provider-derivative.yaml, the one statement of which Incus provider this tree builds and admits.

It exists because the provider version was written down four times and bound to nothing, so two production hosts ran different binaries that both reported v0.1.5-nddev.30 -- one built from ad8efaa, the other from cae2d18, which is a tenancy enforcement change. Issue #263 records the observation.

The GARM derivative already had this shape. This is the same one, applied to the other in-tree derivative.

Index

Constants

View Source
const DefaultManifestPath = "config/provider-derivative.yaml"

DefaultManifestPath is where the manifest lives relative to the repository root.

View Source
const DevelopmentVersion = "v0.0.0-unknown"

DevelopmentVersion is what a binary reports when it was built without the release stamp. It is deliberately not a version any host config can name, so an unstamped binary refuses every real platform policy instead of claiming to be the release it was built beside.

Variables

This section is empty.

Functions

func IsRelease

func IsRelease(version string) bool

IsRelease reports whether a version string is a stamped release rather than the development sentinel.

Types

type Build

type Build struct {
	SourceCommit         string `json:"source_commit" yaml:"source_commit"`
	BinarySHA256         string `json:"binary_sha256" yaml:"binary_sha256"`
	GoVersion            string `json:"go_version" yaml:"go_version"`
	CGOEnabled           bool   `json:"cgo_enabled" yaml:"cgo_enabled"`
	TargetOS             string `json:"target_os" yaml:"target_os"`
	TargetArch           string `json:"target_arch" yaml:"target_arch"`
	Trimpath             bool   `json:"trimpath" yaml:"trimpath"`
	EmptyBuildID         bool   `json:"empty_build_id" yaml:"empty_build_id"`
	VCSMetadata          string `json:"vcs_metadata" yaml:"vcs_metadata"`
	ReproducibleRebuilds int    `json:"reproducible_rebuilds" yaml:"reproducible_rebuilds"`
}

type Manifest

type Manifest struct {
	SchemaVersion     int      `json:"schema_version" yaml:"schema_version"`
	Artifact          string   `json:"artifact" yaml:"artifact"`
	DerivativeVersion string   `json:"derivative_version" yaml:"derivative_version"`
	InterfaceVersion  string   `json:"interface_version" yaml:"interface_version"`
	Upstream          Upstream `json:"upstream" yaml:"upstream"`
	Runtime           Runtime  `json:"runtime" yaml:"runtime"`
	Build             Build    `json:"build" yaml:"build"`
}

Manifest is config/provider-derivative.yaml.

func Decode

func Decode(reader io.Reader) (Manifest, error)

func Load

func Load(path string) (Manifest, error)

func (Manifest) Validate

func (m Manifest) Validate() error

type Runtime

type Runtime struct {
	IncusSDKVersion          string `json:"incus_sdk_version" yaml:"incus_sdk_version"`
	QueueIntentSchemaVersion int    `json:"queue_intent_schema_version" yaml:"queue_intent_schema_version"`
}

type Upstream

type Upstream struct {
	Repository         string `json:"repository" yaml:"repository"`
	Release            string `json:"release" yaml:"release"`
	Commit             string `json:"commit" yaml:"commit"`
	ReleaseAssetSHA256 string `json:"release_asset_sha256" yaml:"release_asset_sha256"`
}

Jump to

Keyboard shortcuts

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