Documentation ¶
Overview ¶
Package mkversion gets version info from git and provides a bunch of differently formatted version strings that get used elsewhere in the build system to embed version numbers into binaries.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type VersionInfo ¶
type VersionInfo struct { // Major is the major version number portion of Short. Major int // Minor is the minor version number portion of Short. Minor int // Patch is the patch version number portion of Short. Patch int // Short is the short version string. See the documentation of version.Short // for possible values. Short string // Long is the long version string. See the documentation for version.Long // for possible values. Long string // GitHash is the git hash of the tailscale.com Go module. GitHash string // OtherHash is the git hash of a supplemental git repository, if any. For // example, the commit of the tailscale-android repository. OtherHash string // Xcode is the version string that gets embedded into Xcode builds for the // Tailscale iOS app and macOS standalone (aka "macsys") app. // // It is the same as Short, but with 100 added to the major version number. // This is because Apple requires monotonically increasing version numbers, // and very early builds of Tailscale used a single incrementing integer, // which the Apple interprets as the major version number. When we switched // to the current scheme, we started the major version number at 100 (v0, // plus 100) to make the transition. Xcode string // XcodeMacOS is the version string that gets embedded into Xcode builds for // the Tailscale macOS app store app. // // This used to be the same as Xcode, but at some point Xcode reverted to // auto-incrementing build numbers instead of using the version we embedded. // As a result, we had to alter the version scheme again, and switched to // GitHash's commit date, in the format "YYYY.DDD.HHMMSS" XcodeMacOS string // Winres is the version string that gets embedded into Windows exe // metadata. It is of the form "x,y,z,0". Winres string // Synology is a map of Synology DSM major version to the // Tailscale numeric version that gets embedded in Synology spk // files. Synology map[int]int64 // GitDate is the unix timestamp of GitHash's commit date. GitDate string // OtherDate is the unix timestamp of OtherHash's commit date, if any. OtherDate string // Track is the release track of this build: "stable" if the minor version // number is even, "unstable" if it's odd. Track string // MSIProductCodes is a map of Windows CPU architecture names to UUIDv5 // hashes that uniquely identify the version of the build. These are used in // the MSI installer logic to uniquely identify particular builds. MSIProductCodes map[string]string }
VersionInfo is version information extracted from a git checkout.
func Info ¶
func Info() VersionInfo
Info constructs a VersionInfo from the current working directory and returns it, or terminates the process via log.Fatal.
func InfoFrom ¶
func InfoFrom(dir string) (VersionInfo, error)
InfoFrom constructs a VersionInfo from dir and returns it, or an error.
func (VersionInfo) String ¶
func (v VersionInfo) String() string
String returns v's information as shell variable assignments.
Click to show internal directories.
Click to hide internal directories.