versioning

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const ENV_VAR_PREFIX = "SPEAKEASY_VERSION_REPORT_LOCATION"

Variables

This section is empty.

Functions

func AddVersionReport

func AddVersionReport(ctx context.Context, report VersionReport) error

func AddVersionReportV2Target added in v0.7.0

func AddVersionReportV2Target(ctx context.Context, target VersionReportV2Target) error

AddVersionReportV2Target appends a single target's changelog data to the V2 report file. Multiple calls with different targets will accumulate in the same file. Returns nil if the V1 environment variable is not set (graceful degradation).

func MustGenerate added in v0.2.0

func MustGenerate(ctx context.Context) bool

Types

type BumpType added in v0.3.0

type BumpType string
const (
	BumpMajor      BumpType = "major"
	BumpMinor      BumpType = "minor"
	BumpPatch      BumpType = "patch"
	BumpGraduate   BumpType = "graduate"
	BumpPrerelease BumpType = "prerelease"
	BumpCustom     BumpType = "custom"
	BumpNone       BumpType = "none"
)

type MergedVersionReport

type MergedVersionReport struct {
	Reports []VersionReport
}

func (*MergedVersionReport) GetCommitMarkdownSection added in v0.6.1

func (m *MergedVersionReport) GetCommitMarkdownSection() string

func (*MergedVersionReport) GetMarkdownSection added in v0.4.0

func (m *MergedVersionReport) GetMarkdownSection() string

func (*MergedVersionReport) MustGenerate

func (m *MergedVersionReport) MustGenerate() bool

type VersionReport

type VersionReport struct {
	Key          string   `json:"key"`
	Priority     int      `json:"priority"`
	BumpType     BumpType `json:"bump_type"`
	NewVersion   string   `json:"new_version"`
	MustGenerate bool     `json:"must_generate"`
	PRReport     string   `json:"pr_report"`
	CommitReport string   `json:"commit_report"`
	// contains filtered or unexported fields
}

type VersionReportCapture added in v0.7.0

type VersionReportCapture struct {
	V1 *MergedVersionReport
	V2 *VersionReportV2Data
}

VersionReportCapture holds both V1 and V2 version reports.

func WithVersionReportCapture

func WithVersionReportCapture[T any](ctx context.Context, f func(ctx context.Context) (T, error)) (*VersionReportCapture, T, error)

type VersionReportV2Data added in v0.7.0

type VersionReportV2Data struct {
	Targets []VersionReportV2Target `json:"targets"`
}

VersionReportV2Data is the top-level container for V2 changelog data. It stores structured change information for all targets in a single generation run. This enables more flexible changelog rendering with support for multiple targets and future features like commit templates.

func GetVersionReportV2 added in v0.7.0

func GetVersionReportV2() (*VersionReportV2Data, error)

GetVersionReportV2 reads all V2 target reports from the file and returns them as a VersionReportV2Data struct. Returns nil if the file doesn't exist or the V1 environment variable is not set.

type VersionReportV2FieldChange added in v0.7.0

type VersionReportV2FieldChange struct {
	Path       string                         `json:"path"`        // e.g., "request.email", "response.data.items"
	Type       VersionReportV2FieldChangeType `json:"type"`        // added, removed, changed
	IsBreaking bool                           `json:"is_breaking"` // true if this specific change is breaking
}

VersionReportV2FieldChange represents a single field-level change within an operation.

type VersionReportV2FieldChangeType added in v0.7.0

type VersionReportV2FieldChangeType string

VersionReportV2FieldChangeType indicates what kind of change happened to a field.

const (
	FieldAdded   VersionReportV2FieldChangeType = "added"
	FieldRemoved VersionReportV2FieldChangeType = "removed"
	FieldChanged VersionReportV2FieldChangeType = "changed"
)

type VersionReportV2Operation added in v0.7.0

type VersionReportV2Operation struct {
	Name       string                       `json:"name"`        // e.g., "sdk.createUser()", "Sdk.Inner.ComplexOperation()"
	Type       VersionReportV2OperationType `json:"type"`        // added, removed, modified, deprecated
	IsBreaking bool                         `json:"is_breaking"` // true if any child change is breaking
	Changes    []VersionReportV2FieldChange `json:"changes"`     // list of field-level changes (empty for added/removed operations)
}

VersionReportV2Operation represents changes to a single SDK operation/method.

type VersionReportV2OperationType added in v0.7.0

type VersionReportV2OperationType string

VersionReportV2OperationType indicates what kind of change happened to an operation.

const (
	OperationAdded      VersionReportV2OperationType = "added"
	OperationRemoved    VersionReportV2OperationType = "removed"
	OperationModified   VersionReportV2OperationType = "modified"
	OperationDeprecated VersionReportV2OperationType = "deprecated"
)

type VersionReportV2Target added in v0.7.0

type VersionReportV2Target struct {
	TargetName      string                     `json:"target_name"`                // e.g., "typescript", "go", "python"
	PackageName     string                     `json:"package_name,omitempty"`     // e.g., "@vercel/sdk", "github.com/vercel/sdk-go"
	PreviousVersion string                     `json:"previous_version,omitempty"` // e.g., "1.23.7"
	NewVersion      string                     `json:"new_version"`                // e.g., "1.23.8"
	GeneratedAt     string                     `json:"generated_at,omitempty"`     // ISO8601 timestamp
	Operations      []VersionReportV2Operation `json:"operations"`                 // List of changed operations
}

VersionReportV2Target represents the changes made to a single SDK target.

Jump to

Keyboard shortcuts

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