Next Release Notes Draft
DRAFT RELEASE NOTES — Introduction to Go 1.28
Go 1.28 is not yet released. These are work-in-progress release notes. Go 1.28 is expected to be released in February 2027.
Tools
Vet
The new scannererr
analyzer checks for failure to handle scanner errors after a loop
around bufio.Scanner.Scan, which may cause scanning or I/O errors to
go unreported.
The sqlrowserr
analyzer performs a similar check for loops around sql.Rows.Next,
so that iteration errors are correctly distinguished from a smaller result.
Standard library
Minor changes to the library
encoding/base32
Encoding.EncodedLen now panics if the encoded length overflows int,
rather than returning a negative number.
encoding/base64
Encoding.EncodedLen now panics if the encoded length overflows int,
rather than returning a negative number.
go/parser
The ResolveFile function performs legacy syntactic identifier
resolution on an ast.File syntax tree. This resolution is
deprecated; new applications should instead use go/types.
This function is provided to ease the transition away from the old
resolution in applications that mostly parse files in
SkipObjectResolution mode but later encounter some cases where the
old resolution is needed.
net/http
ProxyFromEnvironment now prioritizes lowercase proxy environment variables
(http_proxy, https_proxy, and no_proxy) over the uppercase versions if
both are set to different values. This change also affects default proxy lookups
in DefaultTransport and DefaultClient by extension.
net/url
The new MustParse function returns the parsed URL
or panics on error.
It can simplify some common uses of Parse.
For instance, initializing variables with valid URL string constants.
testing/synctest
The new Subtest convenience function combines [testing.(*T).Run] and testing/synctest.Test.