Skip to content

Commit

Permalink
internal/dl: categorize new darwin/arm64 binaries better
Browse files Browse the repository at this point in the history
We want the new darwin/arm64 installer and archive to be placed next
to the original darwin/amd64 files, not under "Other Ports". Also
highlight (make bold) the darwin/arm64 installer (but not archive).

The "pretty" version of the architecture will be displayed as "ARMv8",
and maybe should be made more macOS-specific in the future.

Updates golang/go#42756.

Change-Id: I5e95a3b93d30253d8fa291d153b3f96f49f9ab5d
Reviewed-on: https://go-review.googlesource.com/c/website/+/278787
Trust: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
  • Loading branch information
dmitshur committed Dec 17, 2020
1 parent fecdec9 commit 8d60aee
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 34 deletions.
18 changes: 8 additions & 10 deletions internal/dl/dl.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ func (f File) PrettyChecksum() string {

func (f File) PrettyOS() string {
if f.OS == "darwin" {
// Some older releases, like Go 1.4,
// still contain "osx" in the filename.
switch {
case strings.Contains(f.Filename, "osx10.8"):
return "OS X 10.8+"
Expand All @@ -91,6 +93,7 @@ func (f File) PrettySize() string {

var primaryPorts = map[string]bool{
"darwin/amd64": true,
"darwin/arm64": true,
"linux/386": true,
"linux/amd64": true,
"linux/armv6l": true,
Expand All @@ -110,17 +113,12 @@ func (f File) Highlight() bool {
switch {
case f.Kind == "source":
return true
case f.Arch == "amd64" && f.OS == "linux":
case f.OS == "linux" && f.Arch == "amd64":
return true
case f.OS == "windows" && f.Kind == "installer" && f.Arch == "amd64":
return true
case f.OS == "darwin" && f.Kind == "installer" && !strings.Contains(f.Filename, "osx10.6"):
return true
case f.Arch == "amd64" && f.Kind == "installer":
switch f.OS {
case "windows":
return true
case "darwin":
if !strings.Contains(f.Filename, "osx10.6") {
return true
}
}
}
return false
}
Expand Down
85 changes: 61 additions & 24 deletions internal/dl/dl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,19 @@ func TestParseVersion(t *testing.T) {

func TestFileOrder(t *testing.T) {
fs := []File{
{Filename: "go1.3.src.tar.gz", Version: "go1.3", OS: "", Arch: "", Kind: "source"},
{Filename: "go1.3.1.src.tar.gz", Version: "go1.3.1", OS: "", Arch: "", Kind: "source"},
{Filename: "go1.3.linux-amd64.tar.gz", Version: "go1.3", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.3.1.linux-amd64.tar.gz", Version: "go1.3.1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.3.darwin-amd64.tar.gz", Version: "go1.3", OS: "darwin", Arch: "amd64", Kind: "archive"},
{Filename: "go1.3.darwin-amd64.pkg", Version: "go1.3", OS: "darwin", Arch: "amd64", Kind: "installer"},
{Filename: "go1.3.darwin-386.tar.gz", Version: "go1.3", OS: "darwin", Arch: "386", Kind: "archive"},
{Filename: "go1.3beta1.linux-amd64.tar.gz", Version: "go1.3beta1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.3beta2.linux-amd64.tar.gz", Version: "go1.3beta2", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.3rc1.linux-amd64.tar.gz", Version: "go1.3rc1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.2.linux-amd64.tar.gz", Version: "go1.2", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.2.2.linux-amd64.tar.gz", Version: "go1.2.2", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16.src.tar.gz", Version: "go1.16", OS: "", Arch: "", Kind: "source"},
{Filename: "go1.16.1.src.tar.gz", Version: "go1.16.1", OS: "", Arch: "", Kind: "source"},
{Filename: "go1.16.linux-amd64.tar.gz", Version: "go1.16", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16.1.linux-amd64.tar.gz", Version: "go1.16.1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16.darwin-amd64.tar.gz", Version: "go1.16", OS: "darwin", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16.darwin-amd64.pkg", Version: "go1.16", OS: "darwin", Arch: "amd64", Kind: "installer"},
{Filename: "go1.16.darwin-arm64.tar.gz", Version: "go1.16", OS: "darwin", Arch: "arm64", Kind: "archive"},
{Filename: "go1.16.darwin-arm64.pkg", Version: "go1.16", OS: "darwin", Arch: "arm64", Kind: "installer"},
{Filename: "go1.16beta1.linux-amd64.tar.gz", Version: "go1.16beta1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16beta2.linux-amd64.tar.gz", Version: "go1.16beta2", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16rc1.linux-amd64.tar.gz", Version: "go1.16rc1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.15.linux-amd64.tar.gz", Version: "go1.15", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.15.2.linux-amd64.tar.gz", Version: "go1.15.2", OS: "linux", Arch: "amd64", Kind: "archive"},
}
sort.Sort(fileOrder(fs))
var s []string
Expand All @@ -51,18 +52,19 @@ func TestFileOrder(t *testing.T) {
}
got := strings.Join(s, "\n")
want := strings.Join([]string{
"go1.3.1.src.tar.gz",
"go1.3.1.linux-amd64.tar.gz",
"go1.3.src.tar.gz",
"go1.3.darwin-386.tar.gz",
"go1.3.darwin-amd64.tar.gz",
"go1.3.darwin-amd64.pkg",
"go1.3.linux-amd64.tar.gz",
"go1.2.2.linux-amd64.tar.gz",
"go1.2.linux-amd64.tar.gz",
"go1.3rc1.linux-amd64.tar.gz",
"go1.3beta2.linux-amd64.tar.gz",
"go1.3beta1.linux-amd64.tar.gz",
"go1.16.1.src.tar.gz",
"go1.16.1.linux-amd64.tar.gz",
"go1.16.src.tar.gz",
"go1.16.darwin-amd64.tar.gz",
"go1.16.darwin-amd64.pkg",
"go1.16.darwin-arm64.tar.gz",
"go1.16.darwin-arm64.pkg",
"go1.16.linux-amd64.tar.gz",
"go1.15.2.linux-amd64.tar.gz",
"go1.15.linux-amd64.tar.gz",
"go1.16rc1.linux-amd64.tar.gz",
"go1.16beta2.linux-amd64.tar.gz",
"go1.16beta1.linux-amd64.tar.gz",
}, "\n")
if got != want {
t.Errorf("sort order is\n%s\nwant:\n%s", got, want)
Expand Down Expand Up @@ -97,6 +99,41 @@ func TestFilesToReleases(t *testing.T) {
}
}

func TestHighlightedFiles(t *testing.T) {
fs := []File{
{Filename: "go1.16beta1.src.tar.gz", Version: "go1.16beta1", OS: "", Arch: "", Kind: "source"},
{Filename: "go1.16beta1.linux-386.tar.gz", Version: "go1.16beta1", OS: "linux", Arch: "386", Kind: "archive"},
{Filename: "go1.16beta1.linux-amd64.tar.gz", Version: "go1.16beta1", OS: "linux", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16beta1.darwin-amd64.tar.gz", Version: "go1.16beta1", OS: "darwin", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16beta1.darwin-amd64.pkg", Version: "go1.16beta1", OS: "darwin", Arch: "amd64", Kind: "installer"},
{Filename: "go1.16beta1.darwin-arm64.tar.gz", Version: "go1.16beta1", OS: "darwin", Arch: "arm64", Kind: "archive"},
{Filename: "go1.16beta1.darwin-arm64.pkg", Version: "go1.16beta1", OS: "darwin", Arch: "arm64", Kind: "installer"},
{Filename: "go1.16beta1.windows-386.zip", Version: "go1.16beta1", OS: "windows", Arch: "386", Kind: "archive"},
{Filename: "go1.16beta1.windows-386.msi", Version: "go1.16beta1", OS: "windows", Arch: "386", Kind: "installer"},
{Filename: "go1.16beta1.windows-amd64.zip", Version: "go1.16beta1", OS: "windows", Arch: "amd64", Kind: "archive"},
{Filename: "go1.16beta1.windows-amd64.msi", Version: "go1.16beta1", OS: "windows", Arch: "amd64", Kind: "installer"},
}
sort.Sort(fileOrder(fs))
var highlighted []string
for _, f := range fs {
if !f.Highlight() {
continue
}
highlighted = append(highlighted, f.Filename)
}
got := strings.Join(highlighted, "\n")
want := strings.Join([]string{
"go1.16beta1.src.tar.gz",
"go1.16beta1.darwin-amd64.pkg",
"go1.16beta1.darwin-arm64.pkg",
"go1.16beta1.linux-amd64.tar.gz",
"go1.16beta1.windows-amd64.msi",
}, "\n")
if got != want {
t.Errorf("highlighted files:\n%s\nwant:\n%s", got, want)
}
}

func TestOldUnstableNotShown(t *testing.T) {
fs := []File{
{Version: "go1.7.4"},
Expand Down

0 comments on commit 8d60aee

Please sign in to comment.