Files
ReleaseKit/docs/internal/overview.md

2.1 KiB

Internal package inventory

Public facades and their contracts are defined in Go declarations and GoDoc. The runtime consumer guide covers application usage, and the CLI contract covers command behavior.

Implemented internal packages:

  • internal/runtimeinfo holds the injected version value and selects the executable's main-module version when no injected value is present.
  • internal/versioncontract names the linker symbol and stable version form shared with the build and candidate operations.
  • internal/apicheck checks compiled exports with go/types and checks import direction. Run it with go run ./internal/apicheck from the repository root.
  • internal/process runs cancellable child commands with per-child environment overlays.
  • internal/build compiles explicit Go targets with shared version injection, verifies native version output, and returns generated file digests.
  • internal/gitea verifies hosted source tags and finds or creates matching stable release pages through the Gitea REST API.
  • internal/candidate captures and validates one clean local candidate, checks its committed release note and local tag state, runs validation once, and rechecks mutable repository state.
  • internal/git resolves one effective push destination, applies it to a command-scoped remote, reads exact authoritative branch and tag refs, and creates and pushes exact annotated tag objects.
  • internal/publish coordinates local and remote guards around one validation run and reports the publication state reached by that invocation.
  • cmd/releasekit/internal/cli parses implemented commands, loads strict JSON profiles, adapts configured checks, and writes and validates private local build receipts.

The executable controller uses the runtime facade and the command-owned CLI adapter. The adapter uses the process runner and imports neither public facade. The publication operation coordinates the candidate and Git packages. The internal Gitea client is documented in the Gitea integration guide; delivery orchestration will use it when that facade and CLI work lands.