[Proposal] Reduce the workload of stdlib's maintainers with stdlib-extensions
#3233
Replies: 6 comments 17 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.
-
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