Remix.run Logo
eviks 19 hours ago

> This pattern makes it easier for maintainers or contributors to find issues to work on since every issue is ready to be worked on.

How is this not trivially solved via a "ready-to-be-worked-on" tag?

mitchellh 16 hours ago | parent | next [-]

Because I don't want my default view to be "triage." If GitHub allowed default issue views (and reflected that in the issue count in the tabs as well), then maybe. But currently, it doesn't work. I've tried it at large project scale across many (multiple projects with more than 20K stars and millions of downloads).

Compared to that, this system has been a huge success. It has its own problems, but it's directionally better.

eviks 6 hours ago | parent | next [-]

How does different count affect search? You can use a bookmark to change the view, and if using bookmarks is too much, ok, but that's not a bold universal reason.

(also, what is "huge success" in methods of organizing issues?)

bookmark: (and if your browser supports shortcuts, it can be as easy to open as remembering to type a single char)

https://github.com/ghostty-org/ghostty/issues?q=is%3Aissue%2...

mitchellh 5 hours ago | parent [-]

Here is an abridged set of reasons, just because it quickly turns into a very big thing:

1. The barrier to mislabel is too low. There is no confirmation to remove labels. There is no email notification on label change. We've had "accepted" issues accidentally lose their accepted label and enter the quagmire of thousands of unconfirmed issues. Its lost. In this new approach, every issue is critical and you can't do this. You can accidentally _close_ it, but that sends an email notification. This sounds dumb, but it happens, usually due to keyboard shortcuts.

2. The psychological impact of the "open issue count" has real consequences despite being meaningless on its own. People will see a project with 1K+ issues and think "oh this is a buggy hell hole" when 950 of those issues are untriaged, unaccepted, 3rd party issues, etc.

My practical experience with #2 was Terraform ~5 years ago (when I last worked on it, can't speak to the current state). We had something like 1,800 open issues and someone on Twitter decided to farm engagement and dunk on it and use that as an example of how broken it is. It forced me to call for a feature freeze and full on-hands triage. We ultimately discovered there were ~5 crashing bugs, ~50 or so core bugs, ~100 bugs in providers we control, and the rest were 3rd party provider bugs (which we accepted in our issue tracker at the time) or unaccepted/undesigned features or unconfirmed bugs (no reproduction).

With the new approach, these are far enough away that it gets rid of this issue completely.

3. The back-and-forth process of confirming a bug or designing and accepting a feature produces a lot of noise that is difficult to hide within an issue. You can definitely update the original post but then there might be 100 comments below that you have to individually hide or write tooling to hide, because ongoing status update discussions may still be valuable.

This is also particularly relevant in today's era of AI where well written GH issues and curated comments produce excellent context for an agent to plan and execute. But, if you don't like AI you can ignore that and the point is still valid... for people!

By separating out the design + accept into two separate posts, it _forces_ you to rewrite the core post and shifts the discussion from design to progress. I've found it much cleaner and I'm very happy about this.

4. Flat threads don't work well for issue discussion. You even see this in traditional OSS that uses mailing lists (see LKML): they form a tree of responses! Issues are flat. Its annoying. Discussions are threaded! And that is very helpful to chase down separate chains of thought, or reproductions, or possibly unrelated issues or topics.

Once an issue is accepted, the flat threads work _fine_. I'd still prefer a tree, but it's a much smaller issue. :)

-----------

Okay I'm going to stop there. I have more, many more, but I hope this gives you enough for you to empathize a bit that there are some practical issues, and this is something I've both thought of critically for and tried for over a decade.

There's a handful of people in this thread who are throwing around words like "just" or "trivially" or just implying how obvious a simple solution looks without perhaps accepting that I've been triaging and working on GH issues in large open projects full-time non-stop for the last 15 years. I've tried it, I promise!

This is completely a failure of GitHub's product suite and as I noted in another comment I'm not _happy_ I have to do this. I don't think discussions are _good_. They're just the _least bad_ right now, unfortunately.

efreak 29 minutes ago | parent | next [-]

I recommend posting (or lining to) this somewhere on GitHub, maybe in the pinned issue.

coxley 4 hours ago | parent | prev [-]

Not to mention you can restrict who can file issues with permissions. So you have a forcing function, whereas hoping tags are correctly applied is a never ending battle.

ginko 9 hours ago | parent | prev | next [-]

Can't you just set a bookmark with the filters you want?

IshKebab 6 hours ago | parent | prev [-]

Seems like a pretty huge cost just because you don't want to create a bookmark...

8n4vidtmkvmk 17 hours ago | parent | prev | next [-]

For one, it might require several rounds of back and forth before its ready to receive the tag, but now the details are spread across several comments instead of neatly at the top

Too 14 hours ago | parent | next [-]

GitHub desperately needs a feature to pin comments in issues or sort by reactions.

Very often in those infamous bugs that has been open for years, having hundreds of ”me too” comments, there are gems with workarounds or reproductions, unfortunately hidden somewhere under 4 iterations of ”click to load 8 more comments”, making it difficult to find. This generates even more ”anyone know how to solve this” spam, further contributing to the difficulty to find the good post.

eviks 17 hours ago | parent | prev | next [-]

No, you can always summarize details neatly at the top, you can edit comments, you know?

NewJazz 16 hours ago | parent [-]

Yes but the person who is qualified to summarize might not be the person who initiated a discussion.

eviks 16 hours ago | parent [-]

No again, the person qualified can edit the initial comment.

NewJazz 16 hours ago | parent [-]

Hmm didn't realize that repo owners could edit other folks' comments

lrem 12 hours ago | parent | prev [-]

Don't worry, I'm willing to bet that there's an AI integration in the works for this...

em-bee 17 hours ago | parent | prev | next [-]

that solution is not trivial because it requires permission for anyone to comment on issues, which invites irrelevant or unhelpful comments or even complaints. the separation allows issues to be limited to developers only, those who actually work to fix the issues.

technically, messages are messages. this approach no more than grouping messages into different forums. it could also all be under discussion with a sub forum for issues, one for features, one for other topics, etc, and then there would need to be a permission system for each sub forum.

so all this does is to create two spheres of access for users and developers. and that's the point.

in the end it's really a matter of taste and preference.

eviks 16 hours ago | parent [-]

That's not true, you can limit comments to collaborators if you don't like them. Although note that it's something you've made up, comments are not part of the original list of reasons. Moreover, comments aren't limited in the actual issues, so nothing prevents unhelpful comments, leaving your issue unresolved

em-bee 16 hours ago | parent [-]

well that's exactly what they did, limit comments to collaborators. anyone else can comment in the discussion forum.

eviks 16 hours ago | parent [-]

Well, that's not what they did, did you not read the last sentence of my previous comment (or checked for yourself)?

onion2k 15 hours ago | parent | prev | next [-]

An non-issue raised as an issue can never be closed, because the person who reported it will just open another one saying "Why did you close my issue without fixing it?" If that user is also raising valid, useful issues then you don't want to just ban them. Consequently your issues list will become unmanageable.

Kwpolska 14 hours ago | parent [-]

Reporting valid issues does not grant you the right to abuse the issue tracker.

onion2k 14 hours ago | parent [-]

I'm not saying it does. I'm saying that banning a user who is making a mistake in one area means you lose the value they provide in another (which might be valid issues, but equally it might be 90% of your revenue or something), so it's not always an obvious decision to just wield the ban hammer every time. Moving discussion of issues before they're created to a separate place helps keep the issue tracker focused on issues that are likely to be addressed.

An additional benefit of that is that a user whose discussion leads to a real issue being created will feel like they're genuinely being listened to. That creates a good customer experience, which is good for your brand's reputation. It's a positive experience. Closing non-issues in the tracker is a negative experience.

voxl 17 hours ago | parent | prev [-]

How is it not trivially solved by a discussion section? Why is your solution better for someone else's work flow? Why do you feel like you get to impose your way of doing work on an open source project?

eviks 17 hours ago | parent [-]

Why do you feel like it's ok to make up nonsense about imposing? How can I impose anything on that project? Why break the expected/established workflow of users if the explanation doesn't work? Why are you asking 3 questions without answering 1?

orangeisthe 15 hours ago | parent | next [-]

> Why break the expected/established workflow of users

Is it really that hard to open a discussion?

em-bee 16 hours ago | parent | prev [-]

each project has its own workflow. no established workflow is broken. github traditionally imposed a different workflow because initially it didn't even have discussions.