Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions go/releaser/blog_post.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,44 @@ package releaser
func DraftBlogPost() []string {
return []string{
"The release announcement blog post must be finished before the release day.",
"A highlight of the major changes must be included in the blog post, along with a link to the release notes.",
"You may take example on previous release announcement blog post.",
"",
"A Pull Request on the website repository of Vitess has to be created so we can easily publish the blog during the release day.",
"The blog post should at least have the following:",
"\t- Highlight of the major changes.",
"\t- A link to the release notes.",
"",
"During the pre-release, we will create a Pull Request on the website repository with the draft.",
}
}

func RequestCrossPostBlogPost() []string {
return []string{
"You must coordinate with the different organizations (CNCF and PlanetScale) for cross-posting the blog post.",
"You must coordinate with the different organizations (CNCF and PlanetScale) to cross-post the blog post.",
"Send out an email to both parties to request a cross-post a couple weeks before the GA release.",
"",
"CNCF:",
"\tThe title of the blog post Google Docs usually contains 'DRAFT', and we usually let CNCF know that until the title does not say 'FINAL',",
"\tthe blog post cannot be posted. We usually ask them to publish the cross-post on the same day as the release, morning time PST.",
"",
"PlanetScale:",
"\t Send a request to a Vitess maintainers working at PlanetScale to let them handle the cross-post request internally.",
"\t PlanetScale usually publish the cross-post the same days as the release, morning time PST.",
"",
"Important:",
"\tIf for whatever reason the GA release is delayed, all parties must be informed ASAP so they don't release the blog post before the release.",
}
}

func CreateBlogPostPR() []string {
return []string{
"Open a Pull Request on the website repository that contains the new blog post.",
"",
"Doing this now is important, it allows other maintainers to review the PR before the release.",
}
}

func MergeBlogPostPR() []string {
return []string{
"Merge the blog post Pull Request you have created during the pre-release.",
}
}
}
13 changes: 12 additions & 1 deletion go/releaser/git/git.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,18 @@ func Push(remote, branch string) {
func CommitAll(msg string) (empty bool) {
utils.Exec("git", "add", "--all")

out, err := utils.ExecWithError("git", "commit", "-n", "-s", "-m", msg)
out, err := utils.ExecWithError(
"git",
"commit",
"-n",
"-s",
"-m",
msg,
"-m",
"This commit was made automatically by the vitess-releaser tool.",
"-m",
"See https://github.com/vitessio/vitess-releaser",
)
if err != nil {
if strings.Contains(out, "nothing to commit, working tree clean") {
return true
Expand Down
3 changes: 1 addition & 2 deletions go/releaser/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,7 @@ const (

### Pre-Release _(~1-3 days before)_

- [{{fmtStatus .CreateReleasePR.Done}}] Create Release PR.
<sub><sup>(We do this earlier to catch any issues in the tool and let CI run.)</sup></sub>
- [{{fmtStatus .CreateReleasePR.Done}}] Create Release PR. <sub><sup>(We do this earlier to catch any issues in the tool and let CI run.)</sup></sub>
{{- if .CreateReleasePR.URL }}
- {{ .CreateReleasePR.URL }}
{{- end }}
Expand Down
11 changes: 6 additions & 5 deletions go/releaser/prerequisite/summary.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ import (

func CheckSummary(state *releaser.State) []string {
return []string{
"If the release does not contain significant changes (i.e. a small patch release) then this step can be skipped",
"It is common for small releases (i.e. patch releases) to not have a summary file, in this case this step can be marked as done and ignored.",
"",
"We must verify that the summary file makes sense: no grammar/english mistake, the content is well organized, that the links are not broken.",
"We must verify that the summary file makes sense: no grammar or english mistake, that the content is well organized and that the links are not broken.",
"We must treat this file as if it was a blog post, this is one of the main entrypoints for people wanting to learn more about the release.",
"",
"Over the release cycle, people add their bits to this file, but no one looks at the file as a whole, this is the time to do it.",
"Over the release cycle people add their bits to this file, but no one looks at the file as a whole, this is the time to do it!",
"",
fmt.Sprintf("The summary file is located in: ./changelog/%s.0/%s/summary.md.", state.VitessRelease.MajorRelease, releaser.RemoveRCFromReleaseTitle(state.VitessRelease.Release)),
"The summary file for a release candidate is the same as the one for the GA release.",
fmt.Sprintf("The summary file is located in: './changelog/%s.0/%s/summary.md'.", state.VitessRelease.MajorRelease, releaser.RemoveRCFromReleaseTitle(state.VitessRelease.Release)),
"",
"Note: the summary file for a release candidate is the same as the one for the GA release.",
}
}
3 changes: 1 addition & 2 deletions go/releaser/release/java.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ func JavaRelease(state *releaser.State) (*logging.ProgressLogging, func() string

if strings.Contains(state.VitessRelease.Repo, "vitessio/vitess") {
pl.NewStepf("Do the Java release")
cmd := exec.Command("/bin/sh", "-c", "eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info); export GPG_TTY=$(tty); export GPG_AGENT_INFO; export MAVEN_OPTS=\"--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED\"; mvn clean deploy -P release -DskipTests;",
)
cmd := exec.Command("/bin/sh", "-c", "eval $(gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info); export GPG_TTY=$(tty); export GPG_AGENT_INFO; export MAVEN_OPTS=\"--add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED\"; mvn clean deploy -P release -DskipTests;")
pwd, err := os.Getwd()
if err != nil {
utils.LogPanic(err, "failed to get current working directory")
Expand Down