New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposal: add new Question? label to issue tracker #23745

Open
bradfitz opened this Issue Feb 8, 2018 · 21 comments

Comments

Projects
None yet
@bradfitz
Member

bradfitz commented Feb 8, 2018

Go doesn't currently allow questions on our GitHub issue tracker.

If we get a question, we reply with a link to https://golang.org/wiki/Questions in some stock answer explaining that Go is unlike some projects on GitHub that use their issue tracker as a forum and users should use a mailing list or slack or the Discourse web forum.

It's pretty sad to turn all those users away, though.

I've been thinking that we should just maybe start to allow the questions. We can automate away the email annoyance spam with bots pushing the Subscribe/Unsubscribe button automatically (for those who want the ~firehose minus questions) based on heuristics and labels (the community can label the issues as "Question").

What really drove this home was this same exchange happening to me recently in a non-Go project. I had filed a feature request bug with a project with a proposed way to implement it, and I was told to go away to a forum, where it rotted unseen & untracked.

The nice thing about questions in issue trackers is that they can be closed when they're resolved and you can search for open questions. That doesn't happen in forums.

I still don't think we'd want to promote the issue tracker as the canonical forum for questions, but I also think we should consider not turning people away who end up there.

Doing this, combined with #18517 (accept GitHub PRs), which @andybons has recently completed, seems like it'd make us a more welcoming project.

@bradfitz bradfitz added the Proposal label Feb 8, 2018

@gopherbot gopherbot added this to the Proposal milestone Feb 8, 2018

@andybons

This comment has been minimized.

Member

andybons commented Feb 8, 2018

Considering the slowness and poor user experience of Google Groups (as reported by many of our users), I think this is a good idea. I've seen it work well for other projects, too.

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Feb 8, 2018

My concern is that many more people read the forums, and they are far more likely to be able to actually answer the questions. Questions about use of the language are easy enough to answer, but many questions are about unusual use cases and libraries, for which there are people who know the answer but they aren't reading the issue tracker. If we make this change we'll need some way to encourage the people already reading the forums to also read the issue tracker.

@josharian

This comment has been minimized.

Contributor

josharian commented Feb 8, 2018

Spitballing, applying the Question tag (or something else?) could trigger a bot to email golang-nuts notifying the forums of an interesting issue tracker question. Or a different/new forum?

Assuming the details can be sorted out, this is an excellent idea. Meet your users where they are.

@adamdecaf

This comment has been minimized.

Contributor

adamdecaf commented Feb 8, 2018

How about answering quick questions in the issue, but still closing the issue and redirecting them to the wiki? I agree that a quick close is off putting, but there's no additional noise as the answer/close would still happen.

@bradfitz

This comment has been minimized.

Member

bradfitz commented Feb 8, 2018

How about answering quick questions in the issue

We don't want to require that the first-level triage-er have to write (or research!) an answer. They need to be able to add some metadata (or close) quickly. But adding the label "Question" is as quick as closing it. And then gopherbot can take over and unsubscribe all the bugs-only users who are only interested in actual bugs. It can even use the gmail API to remove it from our inbox. (I have existing gmail bots that that for other things.)

@ALTree

This comment has been minimized.

Member

ALTree commented Feb 8, 2018

tl; dr: IMO this is a bad idea. I'll elaborate

It's pretty sad to turn all those users away, though.

We're not turning them away. We are re-routing them to places (like forum.golangbridge.org or stackoverflow) that are much better suited for questions, and where there are a lot of people reading questions and answering them.

If just pasting "for questions, see https://golang.org/wiki/Questions" feels "sad" (and I agree it doesn't feel nice), you just have to write a better pre-packaged reply once (one that is more verbose, and feels "nicer"), and insert that when you close the issue.

We can automate away the email annoyance spam with bots pushing the Subscribe/Unsubscribe button automatically

but you can't automate the questions away for the people gardening from the github user interface. Also this kind of "automation" would still rely on contributors gardening the issue tracker and labelling the questions as "questions", so I'm not convinced that it would be actually possible to keep the tracker tidy and clean for people not interested in answering questions.

What really drove this home was this same exchange happening to me recently in a non-Go project. I had filed a feature request bug with a project with a proposed way to implement it

Yours was not a question, then. We already allow feature requests in the tracker, and especially so the ones with concrete implementation ideas. I don't think this experience is that relevant since on this tracker your issue would still be open. Also we're not re-routing people to abandoned internet places... we're re-routing them to places filled with people answering go questions!

The nice thing about questions in issue trackers is that they can be closed when they're resolved and you can search for open questions. That doesn't happen in forums.

This is actually a bad thing. Because users won't search among closed issue to see if their question was answered in the past. Nobody cares about or looks at closed issues. On the other hand, in a forum or on stackoverflow you usually don't "close" or "archive" valid questions, and all the threads are kept there, so users 1) actually use to search button to look for older threads, because they're not stacked away in a "closed" page 2) resurrect old threads if they want to ask more things in topic with the thread

I still don't think we'd want to promote the issue tracker as the canonical forum for questions, but I also think we should consider not turning people away who end up there.

Having a centralized database of questions/answers is a valuable thing. That's why stackoverflow is widely used. At this point for most technologies you don't even have to actually "ask" a question. You just search and find a past thread with answers. Routing people to a couple of standard places has two benefits 1) there's an high chance of the question already having an answer, you just have to search 2) if that doesn't happen, the person asks the question there, enriching the questions/answers database.

Considering the slowness and poor user experience of Google Groups

You can fix this by closing nuts and routing people to forum.golangbridge.org and stackoverflow, so it shouldn't be used as an argument for allowing questions on the issue tracker.

Ian wrote:

My concern is that many more people read the forums, and they are far more likely to be able to actually answer the questions.

I agree. I have the feeling that the people answering go questions on stackoverflow and forum.golangbridge.org are not the same that "patrol" the issue tracker.

The current separation between the issue tracker (only for bugs and feature requests/proposal) and questions/answers forums is beneficial because it allows us to keep the issue tracker a somewhat tidy, clean place that the people working on go can visit to find things to do; and it permits the kind of people that answer questions and discuss about the language (and there are many many more of these) to visit places that are exactly meant for this kind of interaction.

@pciet

This comment has been minimized.

Contributor

pciet commented Feb 8, 2018

GitHub is superior to Google Groups for discussing code and searching for past questions. The bi-directional issue linking is nice and other places don't have that. If a bug or proposal topic is generating many questions then that shows in the issue.

If a question can't be answered in a reasonable amount of time (such as for usage of a third party library) then somewhere like golang-nuts would be more appropriate and the issue can be closed as "don't know".

@cherrymui

This comment has been minimized.

Contributor

cherrymui commented Feb 8, 2018

What about two issue trackers? One (golang/go) for bugs and one (maybe golang/questions) for questions? That way we can have the advantages of using issue tracker for questions as well as the separation of questions and bugs.

@bradfitz

This comment has been minimized.

Member

bradfitz commented Feb 8, 2018

@cherrymui, the problem is we can't move bugs between repos, so people will file questions at golang/go anyway. This issue is about deciding how we handle questions that arrive at golang/go.

@jimmyfrasche

This comment has been minimized.

Member

jimmyfrasche commented Feb 8, 2018

You could also make a subset of the issue tracker into a quick-and-dirty q&a site: have questions.golang.org show a list of the titles of issues labeled Question that link to the issue on github and an "ask question" link that goes to the new issue form (assuming there's some way to set that up to be prefilled so it automatically gets labeled?)

@as

This comment has been minimized.

Contributor

as commented Feb 10, 2018

Is there a chance this could inflate the number of open "issues" people see when they look at the repo?

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Feb 10, 2018

@as I don't think that needs to be a concern here. There are currently over 3000 open issues; anybody making decisions on that basis is not going to be affected by this change.

@dlsniper

This comment has been minimized.

Contributor

dlsniper commented Feb 10, 2018

Hi, here are my thoughts on this issue as a Gopher and Gophers Slack Admin.

I agree with Brad that it's pretty sad to reject people and turn them away from Github when they have a question. It would be nice if people could ask questions here and then drive pages like FAQ, or may lead to creating new ones.

However, currently as far as community goes, there are far less people active here, potentially answering / helping others than on other mediums, like the GoBridge Forum or the golang-nuts ML.

There's also the problem that Github really doesn't make it easy to allow people interested in helping the community to help them as there's no way to subscribe to new issues only, you can either get all the e-mails or you have to manually subscribe to the issues you are interested in (or comment on them).

And, so far I haven't mentioned the elephant in the room.
While there are vastly different opinions on Slack, we currently have 24k members signed up, roughly between 1500 - 2000 weekly active users, and we usually generate about 30000 messages per week. Besides the idle chatter that happens at times, we have a lot of questions that we answer hourly, sometimes with a successful answer within minutes of the question being asked, with topics that sometimes span outside of Go itself, such as how to configure nginx or how to design APIs. The obvious disadvantage of that community is that we often repeat the same questions / answers and all the knowledge that we have as a collective is quickly replaced by the new stream of chat.

I leave out Reddit out of this, as despite the best efforts of the admins there, a whole thread can quickly turn bad for anyone having a question that needs to be answered.

I wonder if instead of the classic link to the questions wiki page, https://github.com/golang/go/wiki/Questions , a better answer could be to just answer with the contents of the page directly. Maybe a bot command could be added to open the issue on behalf of the user on the Forum and then link it here, add the rest of the reply, apply the Go Usage Question label, then close the issue and lock it down. That way the user would not need to necessarily open a new account on the forum, unless it wants to reply to questions, and people helping out in the forum could get a chance to reply to these questions.

Finally, this is also a problem of image. When you navigate on golang.org, it's pretty hard to figure out where to get help from, or even to find the Contributing page (I always have to google for that one). I would love to have a redesigned website which puts more emphasis on helping users discover these kind of places and provide recommendations for officially endorsed support channels.

Edit 1:

To the above reply I can also add the fact that it would create a lot of noise here, which would make it harder for the Go Team / people working on supporting the Go project itself to be effective at distinguishing generic usage questions from actual Go problems / proposals.

Also Github lacks a lot of functionality, chief among which threaded replies, and a decent search feature.

@dlsniper

This comment has been minimized.

Contributor

dlsniper commented Feb 11, 2018

Another thing to consider is that currently the issue tracker itself doesn't really like me too comments, see: #19282 (comment) as an example. Part of opening up the tracker to generic Go issues will be dealing with those nonsensical comments (or people randomly commenting on closed issues with me too and so on.

This would create too much noise for maintainers / people helping out and the current Github tooling is pretty bad at this (as mentioned earlier).

@as

This comment has been minimized.

Contributor

as commented Feb 12, 2018

The current search defaults are is:issue is:open:

is:issue distinguishes pull requests et. al, from issues.
is:open filters on open issues

Is a question an issue?
If a question is answered, is it closed?
If it's closed, would we instruct users to clear the search tag is:open to search for questions that have already been answered before asking a new one?

@bradfitz

This comment has been minimized.

Member

bradfitz commented Feb 12, 2018

A middle ground might be agreeing on a template text we all use saying something like:

Sorry, this looks like a question. We don't really use this issue tracker for general discussion. We'll keep it open, though, but label it 'Question'. Be aware that there aren't many people answering questions around here. There is a more active user community answering questions at: [LIST OF FORUMS]

This issue will be auto-closed in 30 days. If you get your answer elsewhere before then, please reply with a link to the answer and then close this bug.

If it turns out this is a bug and not a question, we can remove the 'Question' label and promote it to a bug.

Thanks!

Notably:

  • it tells them there are better forums
  • doesn't immediately close their issue
  • still lets people help for a bit
  • leaves open the possibility that the question is actually a bug (many of our bug reports are unclear)

I'm not sure what the best answer here is. I'm still spitballing.

@pciet

This comment has been minimized.

Contributor

pciet commented Feb 12, 2018

@as label:Question <keywords> would be the standard search.

Maybe the tracker will become one of the better forums if questions are allowed. If questions become overwhelming for the people here then they could be disallowed again.

@rsc

This comment has been minimized.

Contributor

rsc commented Feb 26, 2018

Sounds good to proposal-review.

@rsc rsc changed the title from proposal: consider allowing questions on the GitHub issue tracker to proposal: add new Question? label to issue tracker Feb 26, 2018

@as

This comment has been minimized.

Contributor

as commented Aug 10, 2018

So what happened here? #26901

Are questions allowed on the tracker or not?

@ianlancetaylor

This comment has been minimized.

Contributor

ianlancetaylor commented Aug 10, 2018

Good question, I kind of forgot about this one.

@myitcv

This comment has been minimized.

Member

myitcv commented Sep 7, 2018

If we do start allowing questions, we could easily provide a link by which the title of the issue is pre-populated. gopherbot can then do something sensible with it, which will catch most questions.

https://github.com/golang/go/issues/new?title=question:&body=

We could also provide a separate issue template for questions to ensure that people add as much relevant information as possible, structure things in a vaguely common way etc.

One request I would make; I, like a (small) number of folks, have the firehose of issues turned on, more for idle reading than anything. If questions can be asked via the GitHub issue tracker, the traffic will likely increase; by how much I'm unclear, but it would be fair to assume it will be some percentage of the existing traffic to golang-nuts, StackOverFlow, Twitter etc.

If gopherbot or something similar gained the ability to subscribe people to issues according to certain filter criteria, this would enable me to turn off the firehose, and folks more generally to more precisely specify the issue flow they are interested in. It would also help to eliminate the duplicate emails I get from GitHub about the PR associated with a Gerrit-bot linked CL (because you can't filter out PR emails from GitHub).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment