I think it’s pretty understood that Base reviews are pretty slow in comparison to other areas of the ecosystem. There are trade-offs to this, so it’s not necessarily bad per se, but it is one of the reasons why a lot of development prefers to take place in packages. Even core developers will create things in packages before opening a PR to add it to Base in a lot of cases, so it’s a pretty widely acknowledged phenomena.
But it’s not necessarily bad. It used to be quicker too, but Julia is fairly well-established now so any changes need a lot more scrutiny to not be breaking. And there’s a whole process to ensure that the changes in Base don’t break packages, with the whole PackageEval system. That stability of the language is one of the key things that makes its modern development work so well, and I think it’s something to simultaneously appreciate.
I think one thing that leads to this feeling though is that @Ronis_BR has had good instances with SciML, where in SciML you can pretty much expect your PR to get reviewed in a day or two and likely merged. But that’s because SciML has a fairly active BDFL (me) interfacing with the “outside” community on a very regular basis. I can tell you from this that it takes a ton of time and it won’t scale to the size of the Julia language, which is why in a lot of SciML I am training officers to really take ownership of specific areas, like ODEs and parameter estimation, so that it’s possible to keep up with the influx of PRs (which during the summer is hitting about ~20 reviews a days due to the GSoCs!).
I think from my experience in the package world, that’s what really matters: ownership. And you see it in this discussion as well: people need to feel like they have ownership in order to merge. Giving more people that feeling makes things move faster, but if ownership is too relaxed then you might have people merging who might not know all of the consequences of the code.
I think that one way to do this right is to have more officers and designations of ownership in certain areas. If you look around enough you can figure out who “owns”/maintains LinearAlgebra, but it’s not very accessible. It would be nice to have a file that gives a little bit more structure to this. That way newcomers could more easily figure out who to ping and get help getting things merged. Of course that can be abused, but something like, “hey it’s been 2 weeks, @kslimes master of tests, can you help me get this unit test merged?”. I think it would 2 things:
- help people who are core maintainers triage what PRs to look at
- figure out where we are lacking maintainers
Who’s the person to ping if it’s just a documentation change? I wouldn’t actually know right now. If there is no one, then maybe this could be something that a big of NumFOCUS funds could help out on? (Especially since docs are probably more accessible than other areas. This wouldn’t necessarily be possible in all aspects of the project)
So there’s a reason for this, but it can probably also improve.