[Proposal] Reduce the workload of stdlib's maintainers with stdlib-extensions
#3233
Replies: 7 comments 19 replies
-
Doesn't this require trait extentions? In Mojo:
The main pain points I see are:
I don't see how your proposal resolves these pain points. My proposal would be introducing trait extentions and
|
Beta Was this translation helpful? Give feedback.
-
I am open to trying new workflows and seeing what works best. If i'm understanding correctly, this would be like having a community library, where we can move faster and try things out collectively without putting stress on modular or breaking things that rely on the std library. If that's the case, maybe we could do it externally on our own terms? I'm also a little concerned that adding the extra layer could slow things down or cause unnecessary fragmentation or confusion, but i'm not sure. |
Beta Was this translation helpful? Give feedback.
-
I like the idea. I think an incubator might be a better name as extension might spark confusions with the technical capability of type extension. If I understand Gabriels proposal correctly, he wants to have a place where people can contribute features maybe try out different concepts which at some point can find their way into standard library, without putting an unnecessary strain on the Modulars team. There is a technical question of how one would be able to iterate on top of a type already present in the standard library. My guess is we either introduce wrapper classes or replicate the types in the incubator. Either way it will help with a pace of innovation and hopefully reduce the load on the Modular team (even if it is just by rejecting a PR and asking the contributor to do it in the incubator repo). That said, we need to be aware of the fact that in some cases the development in the incubator might be contrary, redundant or misalign with the work done by Modular, so it will be common that we would need to refactor and delete some "experiment" in the incubator on each public release. This will make it hard for the third party developer to depend on the types defined in the incubator, hence an incubator based package could be a very fragile thing. We also need to consider the amount of work, which will be introduced on every Mojo stable release. That all said, I still think that it should be a viable strategy for rapid innovation on Mojo standard library, be it about new features, performance optimisations, or experiments. |
Beta Was this translation helpful? Give feedback.
-
Hi, I totally support this idea. I have a repo where I've been developing some things because of reasons y'all have pointed out.
I think that would be very detrimental to the unity of the ecosystem, we need Modular's blessing and support. The main README should redirect developers, and many other aspects that could otherwise fragment the community.
or we just name it the same since aliasing works pretty well and we'd use The only thing I'm a bit wary is of focusing on stable release and calling it If we truly want to call it extensions/incubator, we need to decide if we want to take typing_extensions approach and offer backwards compatibility (latest x versions keep things in the same path, can be used with diff. main versions, etc.), or if we just treat it as only supporting (and being bound to) latest stable release, what kind of safety standards and EoL. schedule do we keep (patching old version's security vulnerabilities, mem. leaks), etc. Having said that, I think Another reason why I think this will be great for Mojo's long term health is that building stuff gives better insight into other use cases than only what Modular needs, and we could take some of the burden of keeping the community healthy and engaged off of their shoulders as well. And Mojo is still in it's infancy, have a look at Python's issues and PRs ... no startup company can pay enough developers to mantain that. |
Beta Was this translation helpful? Give feedback.
-
I think this could definitely be a good way to improve the velocity. My one concern is the goal of having this be more of a contributor run effort is we lack the insight on internal discourse and decision making, so the maintainers may still get frequently pinged for questions like "is this change something that would ever get accepted into the stdlib anyways?", which would kind of defeat the point. I'm just not sure we have enough visibility into the decision making process internally to reliably make decisions that are in line with the short term goals of the language as defined by Modular itself at the time. Which could end up in a significant amount of frustration and wasted effort from contributors. |
Beta Was this translation helpful? Give feedback.
-
Hello @gabrieldemarmiesse , sorry for delay. When mojo was newer a while ago, community did a repo for that. As your proposal explains well, The idea would require them to use time, I think it just would be better to continue working on nightly, It does not mean that the proposal is bad. Just that there are plenty of things to do in nightly. We contributors also need to focus time on building nightly. Once there are more contributors on nightly, than we can start creating extension-tasks ?
Your idea would jive well in the package-manager proposal.
That way, people can work on libs with confidence that it can be backported/integrated into nightly if needed. It would also make possible to have a list of such repos for real-time considerations. That way people can work on new packages and employees can discover and merge stuff on the fly. |
Beta Was this translation helpful? Give feedback.
-
Hi Gabriel, thank you for taking the time to write up this proposal. The issues you highlight are real points of friction, and we really appreciate you taking the time to articulate what I think many folks, both internally and externally, have been feeling. I also want to shout-out the community for the robust conversation on this Discussion thread. TL;DR: We think we should hold-off, for the time being, on implementing the new repository suggested in this proposal, but we are open to re-evaluating this down the line. As regular contributors are aware, the standard library team has less capacity to review PRs than the community has to make contributions. To be clear, this is a good problem to have 🙂, and we're incredibly grateful to the community for the enthusiastic, high-quality, and friendly atmosphere present in the Mojo community. But as the proposal outlines, this mismatch in bandwidth can lead to delays in PR review and in answering community questions. As an aside, we're actively working now to grow the team, which should help increase our bandwidth for community work and PR reviews; nothing to report on that as of yet, but stay tuned🙂. (If you're interested in applying to join Modular and help us out, you can find open roles on our careers page 🙂 ) In my view, the problems we're dealing with at the moment are a natural and expected (but uncomfortable) part of the process of scaling a community around an open source project—particularly an open source project that is a sensitive component of the larger MAX product Modular is building. However, despite the risks involved, we on the stdlib team, and Modular as a whole, are committed to releasing and open sourcing what we can, and continuing and building on that. To give some context, I think it's worth taking a step back and seeing where we're at in time with regards to Mojo: There are a few things I want to highlight:
We on the standard library team sometimes have a hard time believing its only been a few months since the standard library was open-sourced—the pace has been exhilarating🔥🙂 It was a large, company-wide effort to release the Mojo standard library as open source. But now, as folks are probably also aware, Modular as a whole is working hard on our upcoming release of GPU support in the MAX platform. We still have big plans for the future of open-source at Modular and for Mojo specifically, but we're hoping to keep things stable with the stdlib process for a short period while we're focused on MAX and our 🔥 GPU launch later this year. Some thoughts on the proposalWith that general policy in mind, I do want to respond specifically to some of the points in Gabriel's proposal and some of the surrounding discussion. None of these are reasons to never implement this proposal, but they are reasons we feel being conservative about making additions to the Mojo contribution story is the right choice in the current stage of Mojo's development.
There very well may be ways to mitigate some of what I've mentioned here, and we're excited to see the discussion about what we should do when the time comes. But, as mentioned, our current policy feeling on this proposal is "yes, but not quite yet". |
Beta Was this translation helpful? Give feedback.
-
This discussion is here to have a place to talk about the folloowing proposal:
We are especially interested in the opinion of frequent contributors, as well as the standard library team, who are the most impacted with this change @JoeLoser @laszlokindrat @ConnorGray .
Beta Was this translation helpful? Give feedback.
All reactions