Unlike many projects on GitHub, the Go project does not use its bug tracker for general discussion or asking questions.
We only use our bug tracker for tracking bugs and tracking proposals going through the [Proposal Process](https://go.dev/s/proposal-process).

For asking questions, see:

* [The golang-nuts mailing list](https://groups.google.com/d/forum/golang-nuts)

* [The Go Forum](https://forum.golangbridge.org/), a web-based forum

* [Gophers Slack](https://gophers.slack.com), use the [invite app](https://invite.slack.golangbridge.org/) for access

* [Stack Overflow](https://stackoverflow.com/questions/tagged/go) with questions tagged "go"

* **IRC** channel #go-nuts on Libera
