blob: c2ef1edaacb0e02219348239c0603dbe8413164c [file] [log] [blame] [view]
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -08001# Gardening
2
3## What is gardening?
4
5"Gardening" in open source projects refers to the background maintenance tasks done to keep the project healthy & growing & nice looking.
6
7This page lists common Go gardening tasks.
8
Brad Fitzpatrick922c95a2017-01-06 14:57:53 -08009## Access
10
11If you've been regularly active in the Go community for some time, feel free to ask for Gerrit and/or Github access to modify things.
12
13See http://golang.org/wiki/GerritAccess and http://golang.org/wiki/GithubAccess
14
15## Gardening Tasks
16
Brad Fitzpatrick9ea57d02017-01-06 16:53:37 -080017Before doing any gardening work, especially on the issue tracker, remember to familiarize yourself with the issues life-cycle, described here: [Handling Issues - Issue States](https://github.com/golang/go/wiki/HandlingIssues#issue-states).
Alberto Donizettia5e4abe2017-01-07 01:48:30 +010018
Brad Fitzpatrickaa772a02017-02-17 10:32:41 -080019### Fix red
20
21Look at https://build.golang.org/ --- is anything red? Fix or file bugs or nag people. The build dashboard should never be red, even occasionally. If the tree is red, people can't work effectively because TryBots and such will just report failures, masking other problems.
22
Brad Fitzpatrick922c95a2017-01-06 14:57:53 -080023### Triage new bugs
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080024
Bryan C. Mills9ef447c2019-05-30 10:32:07 -040025Look at the [untriaged issues](https://github.com/golang/go/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+-label%3ANeedsInvestigation+-label%3ANeedsFix+-label%3ANeedsDecision+-label%3AWaitingForInfo+-label%3AQuestion+-label%3AGo2+-label%3AProposal+-label%3ACherryPickCandidate+-label%3ACherryPickApproved+no%3Aassignee+-label%3Agopls+sort%3Aupdated-desc). For Go, we use the presence of certain labels (`Needs*`, `WaitingForInfo`, or `Question`) to indicate that an issue has been triaged. Issues labeled `Go2`, `Proposal`, `CherryPickCandidate`, or `gopls` have their own, separate triage queues and can be skipped.
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080026
27While triaging the bug:
28
29* is it a duplicate? Close it, referencing the dup.
Bryan C. Mills01aaeba2019-05-29 10:13:45 -040030* is it a Question rather than a bug? Label it [`Question`](https://github.com/golang/go/labels/Question) and reply with something like "For questions about Go, see https://golang.org/wiki/Questions".
31* is the subject the correct format? It should start with the package path and a colon: "net/http: fix crash in Server during foo operation".
32* is it in a subrepo? Leave the milestone as `Unreleased` unless it's a subrepo that goes into a release, like `http2`.
33* if it is a regression and you can reproduce it, use `git bisect` to find the bad commit (optional but very helpful).
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080034
Bryan C. Mills01aaeba2019-05-29 10:13:45 -040035When the issue has been triaged, an an appropriate label (per https://golang.org/wiki/HandlingIssues) to mark it as such.
Brad Fitzpatrick8e8702a2017-02-02 15:31:55 -080036
Alexey Palazhchenkobe9de462017-01-25 18:42:35 +030037### WaitingForInfo
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080038
Alexey Palazhchenkobe9de462017-01-25 18:42:35 +030039Find bugs that are in state WaitingForInfo (https://github.com/golang/go/labels/WaitingForInfo) and ping them, remove the label when replies arrive, or close the bugs if a reply never arrived.
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080040
Dmitri Shuralyov863e9c72017-02-09 00:41:55 -050041### "Unplanned" bugs
Brad Fitzpatrick22320672017-01-31 10:12:29 -080042
Bryan C. Mills01aaeba2019-05-29 10:13:45 -040043["Unplanned" issues](https://github.com/golang/go/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3AUnplanned%20sort%3Aupdated-asc%20-label%3AGo2%20-label%3ALanguageChange) have a habit of being neglected. Check out old ones and see if they're easily fixable (and can be moved to a Go1.n or Go 1.nMaybe milestone), or should be closed.
Dmitri Shuralyov863e9c72017-02-09 00:41:55 -050044
Brad Fitzpatrick5c787822017-01-06 15:58:31 -080045### Pending CLs
Brad Fitzpatrick8e55d7f2017-01-06 13:08:22 -080046
47Review the format of commit messages and presence of tests and formatting of code and typos/grammar in incoming pending CLs. All of that can be done without determining the correctness of the change itself. See https://dev.golang.org/release for the list of pending CLs.
48
Brad Fitzpatrickc4fa0a22017-01-06 15:58:08 -080049Once it has a +1, the owner of that area can give it a +2.
50
51Read a +1 as meaning "triaged", or "not obviously wrong". If it has tests, is formatted properly (references a bug number, probably), and is ready for more review, give it a +1.
52
Brad Fitzpatrick922c95a2017-01-06 14:57:53 -080053### Pending CLs: ask about tests
Brad Fitzpatrickd6279c32017-01-06 13:32:56 -080054
55If a new CL arrives without a test, but could/should have a test, ask if they could add a test. Or suggest how.
56
Brad Fitzpatrick922c95a2017-01-06 14:57:53 -080057### Pending CLs: run TryBots
Brad Fitzpatrickd6279c32017-01-06 13:32:56 -080058
59If you have access (see https://golang.org/wiki/GerritAccess) to run the TryBots and you see a CL with plausible (and non-malicious) code, kick off the TryBots. (We've never seen malicious code trying to escape our TryBot sandboxes, but that's why it's not automatic yet. Please alert us if you see something.)