Skip to content

Commit 8e26fc1

Browse files
committed
fix(releaser): add MODULE.bazel boilerplate
1 parent b1f9017 commit 8e26fc1

File tree

5 files changed

+88
-8
lines changed

5 files changed

+88
-8
lines changed

go/tools/releaser/BUILD.bazel

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ go_library(
3131

3232
go_test(
3333
name = "releaser_test",
34-
srcs = ["upgradedep_test.go"],
34+
srcs = [
35+
"boilerplate_test.go",
36+
"upgradedep_test.go",
37+
],
38+
data = glob(["testdata/**"]),
3539
embed = [":releaser_lib"],
3640
deps = ["@com_github_bazelbuild_buildtools//build:go_default_library"],
3741
)

go/tools/releaser/boilerplate.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,27 +21,44 @@ import (
2121
"io"
2222
"net/http"
2323
"sort"
24+
"strings"
2425

2526
"golang.org/x/mod/semver"
2627
)
2728

28-
func genBoilerplate(version, shasum, goVersion string) string {
29-
return fmt.Sprintf(`load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
29+
func genBoilerplate(version, shasum, goVersion, rnotesData string) string {
30+
trimmedVersion := strings.TrimPrefix(version, "v")
31+
return fmt.Sprintf(`%[4]s
32+
33+
## `+"`MODULE.bazel`"+` code
34+
35+
`+"```"+`
36+
bazel_dep(name = "rules_go", version = "%[1]s")
37+
38+
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
39+
go_sdk.download(version = "%[3]s")
40+
`+"```"+`
41+
42+
## `+"`WORKSPACE`"+` code
43+
44+
`+"```"+`
45+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
3046
3147
http_archive(
3248
name = "io_bazel_rules_go",
3349
sha256 = "%[2]s",
3450
urls = [
35-
"https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/%[1]s/rules_go-%[1]s.zip",
36-
"https://github.com/bazel-contrib/rules_go/releases/download/%[1]s/rules_go-%[1]s.zip",
51+
"https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v%[1]s/rules_go-v%[1]s.zip",
52+
"https://github.com/bazel-contrib/rules_go/releases/download/v%[1]s/rules_go-v%[1]s.zip",
3753
],
3854
)
3955
4056
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
4157
4258
go_rules_dependencies()
4359
44-
go_register_toolchains(version = "%[3]s")`, version, shasum, goVersion)
60+
go_register_toolchains(version = "%[3]s")
61+
`+"```\n", trimmedVersion, shasum, goVersion, rnotesData)
4562
}
4663

4764
func findLatestGoVersion() (v string, err error) {

go/tools/releaser/boilerplate_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"os"
5+
"path/filepath"
6+
"strings"
7+
"testing"
8+
)
9+
10+
func TestGenBoilerplate(t *testing.T) {
11+
version := "v1.2.3"
12+
shasum := "abcd1234"
13+
goVersion := "1.23"
14+
rnotesData := "Release notes"
15+
16+
actual := genBoilerplate(version, shasum, goVersion, rnotesData)
17+
18+
expectedPath := filepath.Join(".", "testdata", "boilerplate.md")
19+
expectedBytes, err := os.ReadFile(expectedPath)
20+
if err != nil {
21+
t.Fatalf("failed to read expected boilerplate: %v", err)
22+
}
23+
expected := strings.TrimSpace(string(expectedBytes))
24+
actual = strings.TrimSpace(actual)
25+
26+
if actual != expected {
27+
t.Errorf("generated boilerplate does not match expected\nExpected:\n%s\nActual:\n%s", expected, actual)
28+
}
29+
}

go/tools/releaser/prepare.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ func runPrepare(ctx context.Context, stderr io.Writer, args []string) error {
159159
if err != nil {
160160
return err
161161
}
162-
boilerplate := genBoilerplate(version, arcSum, goVersion)
163-
rnotesStr := string(rnotesData) + "\n\n## `WORKSPACE` code\n\n```\n" + boilerplate + "\n```\n"
162+
rnotesStr := genBoilerplate(version, arcSum, goVersion, string(rnotesData))
164163

165164
// Push the release branch.
166165
fmt.Fprintf(stderr, "pushing branch %s to origin...\n", branchName)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Release notes
2+
3+
## `MODULE.bazel` code
4+
5+
```
6+
bazel_dep(name = "rules_go", version = "1.2.3")
7+
8+
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")
9+
go_sdk.download(version = "1.23")
10+
```
11+
12+
## `WORKSPACE` code
13+
14+
```
15+
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
16+
17+
http_archive(
18+
name = "io_bazel_rules_go",
19+
sha256 = "abcd1234",
20+
urls = [
21+
"https://mirror.bazel.build/github.com/bazel-contrib/rules_go/releases/download/v1.2.3/rules_go-v1.2.3.zip",
22+
"https://github.com/bazel-contrib/rules_go/releases/download/v1.2.3/rules_go-v1.2.3.zip",
23+
],
24+
)
25+
26+
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
27+
28+
go_rules_dependencies()
29+
30+
go_register_toolchains(version = "1.23")
31+
```

0 commit comments

Comments
 (0)