Go shipped generics in Go 1.18 (March 2022) after more than a decade of proposals. This is a timeline of each serious design, what it proposed, and why it was rejected. Syntax is taken from each design document at the commit it was published.
The umbrella issue is golang/go#15292. The accepted proposal is golang/go#43651.