aboutsummaryrefslogtreecommitdiff
path: root/internal/stdlib/stdlib.go
diff options
context:
space:
mode:
authorJulie Qiu <julie@golang.org>2021-06-04 18:51:12 -1000
committerJulie Qiu <julie@golang.org>2021-06-07 16:08:15 +0000
commit37e31904c441f2d06e7858c403aec1937f9237d1 (patch)
treeee2df015648576a02ec381b93f693944d5b40c56 /internal/stdlib/stdlib.go
parent43b1879f55c53e3f55b2e3ec8f9f41f9bb77bac2 (diff)
downloadgo-x-pkgsite-37e31904c441f2d06e7858c403aec1937f9237d1.tar.xz
internal/stdlib: use version constants
The strings "latest", "master" and "main" are replaced with constants. Change-Id: Icb44678e54c0a5834b9f4aebcde6db39761c3c6f Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/325391 Trust: Julie Qiu <julie@golang.org> Run-TryBot: Julie Qiu <julie@golang.org> TryBot-Result: kokoro <noreply+kokoro@google.com> Reviewed-by: Jamal Carvalho <jamal@golang.org>
Diffstat (limited to 'internal/stdlib/stdlib.go')
-rw-r--r--internal/stdlib/stdlib.go56
1 files changed, 28 insertions, 28 deletions
diff --git a/internal/stdlib/stdlib.go b/internal/stdlib/stdlib.go
index aed321ef..57a20d7e 100644
--- a/internal/stdlib/stdlib.go
+++ b/internal/stdlib/stdlib.go
@@ -66,7 +66,7 @@ func VersionForTag(tag string) string {
return ""
}
// Special case for latest and master.
- if tag == "latest" || tag == "master" {
+ if tag == version.Latest || tag == version.Master {
return tag
}
m := tagRegexp.FindStringSubmatch(tag)
@@ -88,21 +88,21 @@ func VersionForTag(tag string) string {
// TagForVersion returns the Go standard library repository tag corresponding
// to semver. The Go tags differ from standard semantic versions in a few ways,
// such as beginning with "go" instead of "v".
-func TagForVersion(version string) (_ string, err error) {
- defer derrors.Wrap(&err, "TagForVersion(%q)", version)
+func TagForVersion(v string) (_ string, err error) {
+ defer derrors.Wrap(&err, "TagForVersion(%q)", v)
// Special case: master => master
- if version == "master" || strings.HasPrefix(version, "v0.0.0") {
- return "master", nil
+ if v == version.Master || strings.HasPrefix(v, "v0.0.0") {
+ return version.Master, nil
}
// Special case: v1.0.0 => go1.
- if version == "v1.0.0" {
+ if v == "v1.0.0" {
return "go1", nil
}
- if !semver.IsValid(version) {
- return "", fmt.Errorf("%w: requested version is not a valid semantic version: %q ", derrors.InvalidArgument, version)
+ if !semver.IsValid(v) {
+ return "", fmt.Errorf("%w: requested version is not a valid semantic version: %q ", derrors.InvalidArgument, v)
}
- goVersion := semver.Canonical(version)
+ goVersion := semver.Canonical(v)
prerelease := semver.Prerelease(goVersion)
versionWithoutPrerelease := strings.TrimSuffix(goVersion, prerelease)
patch := strings.TrimPrefix(versionWithoutPrerelease, semver.MajorMinor(goVersion)+".")
@@ -178,14 +178,14 @@ var (
)
// getGoRepo returns a repo object for the Go repo at version.
-func getGoRepo(version string) (_ *git.Repository, err error) {
- defer derrors.Wrap(&err, "getGoRepo(%q)", version)
+func getGoRepo(v string) (_ *git.Repository, err error) {
+ defer derrors.Wrap(&err, "getGoRepo(%q)", v)
var ref plumbing.ReferenceName
- if version == "master" {
+ if v == version.Master {
ref = plumbing.HEAD
} else {
- tag, err := TagForVersion(version)
+ tag, err := TagForVersion(v)
if err != nil {
return nil, err
}
@@ -201,13 +201,13 @@ func getGoRepo(version string) (_ *git.Repository, err error) {
}
// getTestGoRepo gets a Go repo for testing.
-func getTestGoRepo(version string) (_ *git.Repository, err error) {
- defer derrors.Wrap(&err, "getTestGoRepo(%q)", version)
- if strings.HasPrefix(version, "v0.0.0") {
- version = "master"
+func getTestGoRepo(v string) (_ *git.Repository, err error) {
+ defer derrors.Wrap(&err, "getTestGoRepo(%q)", v)
+ if strings.HasPrefix(v, "v0.0.0") {
+ v = version.Master
}
- fs := osfs.New(filepath.Join(testhelper.TestDataPath("testdata"), version))
+ fs := osfs.New(filepath.Join(testhelper.TestDataPath("testdata"), v))
repo, err := git.Init(memory.NewStorage(), fs)
if err != nil {
return nil, err
@@ -265,9 +265,9 @@ func Versions() (_ []string, err error) {
}
// Directory returns the directory of the standard library relative to the repo root.
-func Directory(version string) string {
- if semver.Compare(version, "v1.4.0-beta.1") >= 0 ||
- version == "master" || strings.HasPrefix(version, "v0.0.0") {
+func Directory(v string) string {
+ if semver.Compare(v, "v1.4.0-beta.1") >= 0 ||
+ v == version.Master || strings.HasPrefix(v, "v0.0.0") {
return "src"
}
// For versions older than v1.4.0-beta.1, the stdlib is in src/pkg.
@@ -296,7 +296,7 @@ func ZipInfo(requestedVersion string) (resolvedVersion string, err error) {
// version.
//
// Normally, Zip returns the resolved version it was passed. If the resolved
-// version is "master", Zip returns a semantic version for the branch.
+// version is version.Master, Zip returns a semantic version for the branch.
//
// Zip reads the standard library at the Go repository tag corresponding to to
// the given semantic version.
@@ -312,7 +312,7 @@ func Zip(requestedVersion string) (_ *zip.Reader, resolvedVersion2 string, commi
if UseTestData {
repo, err = getTestGoRepo(requestedVersion)
} else {
- if requestedVersion == "latest" {
+ if requestedVersion == version.Latest {
requestedVersion, err = semanticVersion(requestedVersion)
if err != nil {
return nil, "", time.Time{}, err
@@ -333,7 +333,7 @@ func Zip(requestedVersion string) (_ *zip.Reader, resolvedVersion2 string, commi
if err != nil {
return nil, "", time.Time{}, err
}
- if requestedVersion == "master" {
+ if requestedVersion == version.Master {
requestedVersion = newPseudoVersion("v0.0.0", commit.Committer.When, commit.Hash)
}
root, err := repo.TreeObject(commit.TreeHash)
@@ -372,14 +372,14 @@ func newPseudoVersion(version string, commitTime time.Time, hash plumbing.Hash)
}
// semanticVersion returns the semantic version corresponding to the
-// requestedVersion. If the requested version is "master", then semanticVersion
+// requestedVersion. If the requested version is version.Master, then semanticVersion
// returns it as is. The branch name is resolved to a proper pseudo-version in
// Zip.
func semanticVersion(requestedVersion string) (_ string, err error) {
defer derrors.Wrap(&err, "semanticVersion(%q)", requestedVersion)
- if requestedVersion == "master" {
- return "master", nil
+ if requestedVersion == version.Master {
+ return version.Master, nil
}
knownVersions, err := Versions()
@@ -388,7 +388,7 @@ func semanticVersion(requestedVersion string) (_ string, err error) {
}
switch requestedVersion {
- case "latest":
+ case version.Latest:
var latestVersion string
for _, v := range knownVersions {
if !strings.HasPrefix(v, "v") {