Documentation
¶
Overview ¶
Package history holds the Go project release history.
Package history stores historical data for the Go project.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Majors []*Major = majors() // major versions, newest first
var Releases = []*Release{}/* 189 elements not displayed */
Releases summarizes the changes between official stable releases of Go. It contains entries for all releases of Go, but releases older than Go 1.9 omit information about minor versions, which is instead hard-coded in _content/doc/devel/release.html.
The table is sorted by date, breaking ties with newer versions first.
Functions ¶
This section is empty.
Types ¶
type Date ¶
type Date struct { Year int // Year (e.g., 2009). Month time.Month // Month of the year (January = 1, ...). Day int // Day of the month, starting at 1. }
A Date represents the date (year, month, day) of a Go release.
This type does not include location information, and therefore does not describe a unique 24-hour timespan.
type FixSummary ¶
type FixSummary struct { Quantifier string // Optional quantifier. Empty string for unspecified amount of fixes (typical), "a" for a single fix, "two", "three" for multiple fixes, etc. Components []template.HTML // Components involved. For example, "cgo", "the compiler", "runtime", "the <code>go</code> command", etc. Packages []string // Packages involved. For example, "crypto/x509", "net/http", etc. }
FixSummary summarizes fixes in a Go release, listing components and packages involved.
func (*FixSummary) ComponentsAndPackages ¶
func (f *FixSummary) ComponentsAndPackages() template.HTML
ComponentsAndPackages joins components and packages involved in a Go release for the purposes of being displayed on the release history page, keeping English grammar rules in mind.
The different special cases are:
c1 c1 and c2 c1, c2, and c3 the p1 package the p1 and p2 packages the p1, p2, and p3 packages c1 and [1 package] c1, and [2 or more packages] c1, c2, and [1 or more packages]
type Release ¶
type Release struct { Version Version Date Date Future bool // if true, the release hasn't happened yet // Release content summary. Security *FixSummary // Security fixes, if any. Bug *FixSummary // Bug fixes, if any. More template.HTML // Additional release content. CustomSummary template.HTML // CustomSummary, if non-empty, replaces the entire release content summary with custom HTML. }
A Release describes a single Go release.
type Version ¶
type Version struct { X int // X is the 1st component of a Go X.Y.Z version. It must be 1 or higher. Y int // Y is the 2nd component of a Go X.Y.Z version. It must be 0 or higher. Z int // Z is the 3rd component of a Go X.Y.Z version. It must be 0 or higher. }
A Version is a Go release version.
In contrast to Semantic Versioning 2.0.0, a version like Go 1.21.0 is considered a major Go release and a version like Go 1.21.1 is considered a minor Go release. Prior to 1.21.0, trailing zero components were omitted. (See proposal 57631 that changed this.)
See proposal go.dev/issue/32450 for background, details, and a discussion of the costs involved in making a change.
func (Version) MajorPrefix ¶
MajorPrefix returns the major version prefix of a Go release version, like "1", "1.20", "1.21", and so on.
This prefix can be used when referring to the entire series of releases, including the major Go release and all of its subsequent minor releases, that this version belongs to.