Hello!
This post has (in part) come to be due to a general feeling of the issue tracker for julia being a little hard to work with as a non-core developer or absolute beginner, wishing to contribute. The goal of this post is to
- Identify problems users have with the way the current issue tracker functions
- Figure out how we can improve the experience for contributors
- Fix more issues that people are running hitting, that may languish for a while
At the moment, opening an issue presents us with the following view:
This is, in my opinion, quite bad. It’s a wall of text that few people seem to read (judging by the number of new issues created that don’t have a versioninfo()
attached) and those who do can only get the bare minimum out of it. Since there’s no distinct format for new issues, it’s also hard for newcomers that maybe want to help out to figure out what the problem (if any) even is. Further, new issues by default are not labelled at all, leading to loads and loads of issues that are just never assigned any label at all (at the moment, 1056 open issues exist that have no label at all, 146 of which were opened since the release of 1.7.2).
What’s worse though is that of those issues that do have a label, most seem to just… sit there. Some get someone who reproduces the issue or get some acknowledgement, some are fixed with PRs - but over all the majority of new issues that are not trivially closeable (mostly due to belonging on discourse in the first place - another point towards the “wall of text” being a bad first hit) just seem to languish. I don’t have numbers for this, but looking through the monthly repo insights and looking at the issues that are closed vs. those that are opened, as well as the PRs that get merged, certainly paints a picture of only the most critical things being fixed.
One way this could be improved in part would be to make use of issue templates:
(I hope that link works.)
As an additional anecdote, my personal experience has been a mixed bag of diving into library functions, trying to fix an issue I encountered, only to discover that I have no clue what the code is doing and no comments and noone there to help out with what it’s supposed to do. I haven’t counted, but the number of times I got some variation of “I don’t remember” that could have been solved by some internal comment/documentation is… too high.
Another problem that I’ve personally encountered multiple times is that PRs that are not related to critical, release blocking bugs or new features just… sit there, for weeks, sometimes months at a time, even if they’re QOL related, have green CI (which is surprisingly rare, spurious failures seem to be the norm), have NEWS.md and are really ready to be merged. This is very discouraging and takes the wind out of wanting to contribute, to say the least.
I think this could be improved by actually continuing to focus on user reported bugs, issues and QOL improvements. Feature-wise, julia is really great, but QOL-wise not so much… Mind you, I’m talking about Base exclusively here (though I’m certain parts of this would also apply to larger parts of the ecosystem… perhaps this can serve as a “food for thought” post to organize the workflows of packages a bit as well?)
I have no clear solution for PRs sitting around, other than “Please merge them?” and I’m not sure how to make it easier for newcomers to create their first PR and/or get guided into making better PRs, other than trying to get core devs to also try to improve their PR/code game by proactively writing more internal documentation. I know that it’s boring, but I feel like it’s gotten more and more necessary with the size the julia project has reached now.
–
What are your thoughts about this matter? Do you think there even is a problem? What do you feel about contributing more? What could be done better from core devs right now? What would make your life easier when navigating the issue tracker & contributing?
Anyway - I hope this can stir some discussion about how we can improve the state of things. Please keep it civil in here! I really don’t want this to devolve into a flame fest.