top | item 41708174

Evolving GitHub Issues

110 points| joeig | 1 year ago |github.blog

86 comments

order

mjw1007|1 year ago

I think the biggest weakness of github issues is that the main content it shows when you visit an issue page is the original report.

That's very often unhelpful because:

- it's likely that the actual problem wasn't understood at that point (it's likely to be describing a symptom, rather than a bug)

- it's quite possible the original reporter wasn't very good at writing bug reports

- issues often remain open after the main underlying problem is fixed, because there's some small remaining part that's unsettled.

I'd much prefer it if the topmost part of the page was reserved for a space, maintained by whoever's responsible for dealing with the issue, describing the current understanding of the problem and the current status.

Then the orignal report and further discussion could be laid out under that as at present.

It's possible to get roughly this now, by repeatedly editing the initial message. But the UX isn't ideal, and more importantly it isn't culturally expected.

(Of course this isn't a github-specific problem. But github are in a better position than most to offer a fix.)

smileybarry|1 year ago

GitHub issues have edit history now IIRC, so the maintainer can just edit the ticket in these cases, and still have the original text available under the "edited" submenu.

ProxCoques|1 year ago

Issues are a mess because they get used like bulletin boards for any random brain fart anyone has, despite Issue Templates trying to plead otherwise.

IMO the way to fix this is to gestate all issues in Discussions. Then, when a clear and agreed resolution is hammered out there, a maintainer creates an Issue (or just does a PR) referencing that Discussion. This would have the side effect of encouraging people to contribute to projects more when they can clearly see what needs picking up.

ogoffart|1 year ago

I often edit the title and description of issues.

I usually let the original content after a

### Original message

...

vundercind|1 year ago

Noooooo! I’ve been hoping for years and years to eventually land on a team that uses GH issues so I can not hate our ticket tracker for once, but they’re gonna shit it up like ADO and Jira and Asana before that can happen. They’d already made it borderline too complicated, this will complete the transition from productivity to “legibility”.

lars_francke|1 year ago

Just to add a different opinion: I have been using Jira my whole life and I am now using GitHub issues full-time and I like it a lot, I also like these new changes and I'm looking forward to even more to dependencies between issues.

https://github.com/github/roadmap/issues/956

I understand that this is your opinion but there are others out there with differing ones :)

zamalek|1 year ago

Couldn't agree more. Creating taxonomies has to be a dopamine hack or something, because humans will spend hours and hours on them. They will be left feeling rewarded and accomplished, despite accomplishing very little. It's playing Solitaire in a way that keeps your boss happy.

bluGill|1 year ago

This is the constant problem with issue trackers. You start simple and over a few years various people have legitimate needs that the system isn't solving so they make some small changes to work better. Then one day you look and realize the system is far too complex so you start over with a simple system - which of course doesn't meet the needs of the people above and so they slowly get that complexity added back. I've seen it over an over again, and I expect to see it again because what I need is a simple system, but there are other parties who need various complex things that I can't keep track of.

The simplification above isn't all bad - you often discover that 25% of the complexity in the system isn't needed anymore and so that doesn't come back. However there is always new/different complexity needed.

tuespetre|1 year ago

i have always admired GitHub's issues system for its simplicity.

s/have/had/

voidfunc|1 year ago

This was inevitable. Microsoft probably doesn't want to support both Azure DevOps and GitHub long term. GitHub needs to gain the most important features of ADO that ADO customers care about.

smileybarry|1 year ago

As long as they don't add workflows, we're safe.

ProxCoques|1 year ago

If Issues could be restricted to repo maintainers (with everyone else using Discussions), it would make contributing to F/LOSS projects far easier because you could easily see what the team was "thinking" (PR lists aren't like that).

As it is, most Issues are polluted by random support requests, suggestions and open-ended chat which obscures the focus so much that sometimes I just can't tell what they need help with, so I don't bother offering.

I have no interest in the Jirafication of Issue though. None at all.

jeremy_k|1 year ago

I agree. The issue with Issues and Discussions is no one knows where to put content. Most falls into Issues because Discussions aren't always enabled and Issues were the original dumping ground.

It would be nice to know that if you want to ask random questions or get guidance on how to use the project, go to Discussions. If you're looking for real bug reports, go to Issues. I'm not sure how to enforce Issues being only bug reports though. The first thing that comes to mind is having a triaging mechanism, but that puts more onus on maintainers to actually look through everything submitted and make a decision on it.

digging|1 year ago

I feel this new version could help with that if unapproved users are restricted in the types of issues they're allowed to create. Something like "external". Or vice versa, they can't create "Internal" issues. But I immediately see a problem which is that types are not tags so the dichotomy of internal/external means that types now can't be used for type-of-work, only channel-of-input. So you'd be back to using tags for the former...

okl|1 year ago

> As it is, most Issues are polluted by random support requests, suggestions and open-ended chat which obscures the focus so much that sometimes I just can't tell what they need help with, so I don't bother offering.

Totally agree. They should have some AI solution categorize the issues and separate actual issues/tickets from support requests and other noise.

ogoffart|1 year ago

I've observed it has become much better on my repository over the past few years. Discussions took a while to be adopted and I have to guide users to discussions through the CONTRIBUTING.md and issue template. For the few questions that still comes in the issues, i'm immediately converting them into discussions.

holman|1 year ago

I built the last major update to GitHub Issues over a decade ago now, and I was... kind of hoping for more. Feels more like it's checkbox-driven development instead of sitting down and really planning long-term about what improvements could be made. Also it has React.

Fuzzwah|1 year ago

Zach your conference presentations back when you were at github were amazing to me, and were such a huge reason I applied for a job at github. I've been there for 7 years now and I just wanted to thank you for being you.

38|1 year ago

if GitHub really wants to fix issues, fix the god damn pagination. the current system is basically:

    comment
    comment
    [bunch of hidden comments]
    comment
    comment
this is not better, at all. to get all comments, you have to constantly click "more" until all are loaded, IN A SINGLE page. then if you accidentally refresh or navigate away from the page, boom you have to redo the entire process.

hkdobrev|1 year ago

they have at least extended the number of items being loaded when you click more from 50 to 150 in the preview

sluongng|1 year ago

I don't get the negativity. This is a great upgrade for enterprise user persona and is a catch up comparing to Gitlab Issue or Linear. I hope they put more effort into this.

vundercind|1 year ago

Serving the “enterprise user” (the enterprise project manager and product owner, specifically) personas is why most other solutions are already so unproductive and unhelpful for the people doing the actual work. That’s where the negativity comes from. It’s like a mechanic’s ratchet having all kinds of bullshit attached to it to measure how many turns it makes and which socket’s getting used the most: that’s probably useful info for someone, but now the tool is terrible for the mechanic.

mikeocool|1 year ago

Please god add a “closed - duplicate,” “closed - won’t fix,”and maybe “our bot closed this because no one commented on it for 6 weeks” status.

Nothing is more frustrating than finding an issue that exactly describes what your are experiencing marked “closed,” scrolling through months of comments only to find that the issue still exists and it’s been closed for one of these reasons.

mckn1ght|1 year ago

Labels have been able to do this for years, why are they not a sufficient solution?

And even if they elevated these to first class items, nothing is stopping maintainers from still closing them or letting them be closed without the issue having been actually fixed.

TheBruceHimself|1 year ago

I'm shocked they haven't added this. Especially with so many projects using bots to close issues just because of inactivty (annoyingly when the inactivity is on the side of the develops, not the person raising the issue).

I'd also say the fixed issues should immediately tell you what PR fixed the issue if possible. It frustrates me to no end when someone says the issue is fixed and they are 5 to 6 referenced PRs in the issue and it's unclear which actually fixes the issue or just mentions the issue in a comment for some reason.

JamesSwift|1 year ago

Stalebot is a scourge on society. Half joking. Mostly not though.

kayson|1 year ago

Whats the point of issue types when we already had labels?

kibwen|1 year ago

I'm unclear myself. For a start, unlike labels, an issue can only have exclusively one type.

From the docs this appears to be how they envision people using this:

Default issue types are included in every organization, but these can edited, disabled, or deleted. The default types are task, bug, and feature.

On the one hand there's already precedence for this, since PRs are sorta just issues that live in a different tab. If issue types actually let people create new top-level tabs in the UI, that might be interesting. Also it looks like there's a maximum of 10 user-defined types per repo, so it wouldn't even threaten to mess up the UI that much if they did so.

smileybarry|1 year ago

We use labels as module tags; e.g. this PR/issue applies to the "filter" module. Having types be its own thing helps separate the two logical categories and enforce "one type per ticket" at the same time.

ericboehs|1 year ago

Issue Types are cross repo (defined at the org level).

I believe they wanted to rework labels and milestones (repository specific) and ended up with Issue Types and Sub-Issues.

seanwilson|1 year ago

A recurring pattern I see is someone will add an issue comment like "This is great but we need to fix 1. this, and 2. that", and it's just a mess keeping track of discussion threads related to 1 and 2, who is assigned to fix them, and if they're done.

A hack is to add a [ ] checkbox in front of each task (by editing the comment yourself if needed), but then it's not clear if the person that thinks they've completed the task ticks it, or if the original commenter ticks it after they've reviewed the work, and the comment will eventually get folded/hidden.

Another hack is to add a review comment to a pull request anywhere in the code, which at least gives you threaded conversions and a resolved status, but you can't mark who it's assigned to.

Any more hacks here?

Maybe sub-issues will solve this, but if it's similar to creating new issues, that's quite heavy for small items.

skeptrune|1 year ago

Biggest issue with GitHub issues is that large open source projects can't easily signal to viewers which issues are a priority and which are dead or spam. Anytime I see a project with a bazillion issues (like Element), I worry about it's health when maybe I shouldn't because the project is actually fine and the maintainers just use some other ticketing system outside of GitHub.

Aggressive moderation to keep the # open is possible, but not ideal because it causes anxiety for issue-creators and prevents maintainers from finding out about bugs and feature reqs. Some first-class way to differentiate between backlog and todo on the repo would be my #1 request.

franga2000|1 year ago

I guess a big part of the problem is the name "issues". A lot of large projects have dozens or even close to a hundred feature requests and other non-issue "issues" that they keep around until they are implemented and use to discuss the details of the new feature. Seeing a big number next to the issues tab looks scary, even if most of those are non-issue tickets.

Discussions looked like a good solution for that, but the adoption seems slow...

mckn1ght|1 year ago

> Some first-class way to differentiate between backlog and todo

That sounds like projects and statuses/milestones. Then the issue list becomes the backlog.

madeofpalk|1 year ago

Our org/team was very heavy users of the never-broadly-released tasklists revamp from a while back, and I was a huge fan of them.

I really liked the organic approach to project management - soft-epics and soft-subtasks, without Github Issues just turning into Jira. It felt like really neat product design (even though it often did have a bunch of sync bugs them them trying to do too much in markdown)

So I was disapointed to see they weren't happy with that and rolled it into an explicit subtasks instead. I haven't used it seriously yet for a project yet though. We'll see how it goes.

6LLvveMx2koXfwn|1 year ago

Was expecting a link to an outage report . . . pleasantly surprised as I'm currently on-boarding my team to Jira and it's important that every innovation in this space is over-engineered :)

bob1029|1 year ago

This would cause more distraction than good on most teams I've been on. I have watched coworkers make it their entire career to play around with the GH project management & issue stuff. The more features, the more distracted these people become. I have even caught myself getting distracted from time-to-time.

If we can't effectively communicate work priorities between titles, comments & labels, maybe we need to go back to email for a while.

vaylian|1 year ago

sub-issues sound nice for grouping issues. But I think there could be an even better solution: Make it possible to declare issues to depend on other issues and milestones. That way you can filter issues out that can not be worked on because some more fundamental infrastructure has to be put in place first.

A PR can be linked to an issue. It should be possible to link issues to other issues and milestones.

smileybarry|1 year ago

> Make it possible to declare issues to depend on other issues and milestones.

But this is where the JIRA-fication happens, with the many issue link types coexisting alongside no one knowing which is the right one.

> It should be possible to link issues to other issues and milestones.

We already do this by mentioning the #, actually. Well, more to do with PRs mentioned by their backports, but the idea stands.

jackhalford|1 year ago

I know the ziglang project has been doing « sub issues » ad hoc by writing issue lists in a main meta issue. These enhancements will be welcome.

lars_francke|1 year ago

FYI: Contrary to Tasklists (which were in beta but will be phased out) this does not support adding Pull Requests as sub-"issues".

giancarlostoro|1 year ago

Azure DevOps feels like nobody's maintaining it. I wonder how long until they announce GitHub is going to be the end-goal for ADO.

jerrygoyal|1 year ago

Any progress on improving slow performance?

ko_pivot|1 year ago

Yeah that’s the key question. To actually be competitive with Linear, etc. we need client side rendering and local caching. A basic create-react-app + React Query stack feels much better than GitHub due to the constant SSR for all routing.

RicoElectrico|1 year ago

What about merging duplicates?

mdaniel|1 year ago

Out of curiosity, what would you expect any such UI to look like in that case? Merging the comments? Even right now one can comment "closing as it is a dupe of #666" and GH will cheerfully create bidirectional links, the link in the comment and the other issue will get a "mention" comment

cynicalpeace|1 year ago

These are some nice updates.

However, it made me think of how much time and money is spent just on organizing things, even when organizing something doesn’t make things go better.

In fact, the best teams I’ve worked on have a bias against organizing and a “just do it now” mentality. It depends on the specific case of course. But as a culture, software engineers have a bias towards organizing too much as opposed to not enough.

throwaway918299|1 year ago

This is why a board with sticky notes "TODO - In Progress - Done", is still the way to go for most projects. Easy to manage and you don't need to "groom the backlog" or any of that nonsense. If it's important, it goes on the board. When a bunch of things get done, the notes just go in the trash and you move on to the next thing. If there's too many notes, toss some in the trash and forget about it (if it ends up being important, it's really easy to just write a new note).

atomicnature|1 year ago

Amen to that. Over-organization is often a sign of high turnover in teams.

If you can retain engineers long-term, then the amount of repetitive paperwork/reports/status updates, etc reduce significantly.

You can have low frequency, low effort yet high bandwidth communications along with rapid execution.

vundercind|1 year ago

The amount of productivity lost to make it quicker for some PM to add a bar graph to a PowerPoint emailed to an exec, that the exec will look at for five seconds and move on if they even bother to open the email, is astounding.

agos|1 year ago

hoping to one day read "Evolving GitHub Projects". Issues are good, but it's really hard to work on them while projects are half baked

yu3zhou4|1 year ago

I wish I could turn off Issues without archiving a repo

vinnymac|1 year ago

Maybe I am misunderstanding you somehow, but you can turn off Issues without archiving a repository, I have several like that. If I attempt to navigate to `/issues`, it redirects me to `/pulls`. And the Issues tab is not visible whatsoever.

Have you tried `/settings` -> Features -> [ ] Issues ?

mahkoh|1 year ago

C-f thread

0/0

We shouldn't hope for the impossible.

medstrom|1 year ago

Aren't issues already threads?

poorman|1 year ago

> Earlier this year, we introduced the private beta of increased project item limits, expanding the capacity from 1,200 to 50,000 items in a project.

This reminds me why smaller companies can steal market share from larger companies. I can understand that at GitHub scale, it's probably difficult to support more that 1,200 items per project. The result? The entire ecosystem has these limits imposed on them. A smaller company could easily support 50,000 issues for a repository since they are hosting fewer repositories.

slightwinder|1 year ago

Those smaller companies are usually just burning money in an attempt to gain traction. Free services usually have all harsh limitations when the company has to earn their own food. The main reason for this is usually the abuse of those services, not so much that they can't afford it.

schmichael|1 year ago

You misunderstand: the keyword in that quote is “project.”

GitHub projects are boards, not repositories. I don’t know if there’s a limit on the number of issues repositories can have (nomad is over 5k).

I’m not actually sure how valuable a board with over 1k items on it is in practice.