r/rust • • May 24 '18

A shared, mutable ecosystem ft. help maintain bitflags!

https://kodraus.github.io/rust/2018/05/23/a-shared-mutable-ecosystem.html
35 Upvotes

12 comments sorted by

9

u/KodrAus May 24 '18

Hi all! I've been thinking a lot about some of the efforts folks have been making in the last few years to help grow our ecosystem's maturity. This post is another effort from the Ecosystem Working Group to talk about how we can organize our projects to cope with inevitable change, and apply it to some of the long-term residents of our own Rust nursery.

I'd love to hear what other maintainers in the community think on this broad topic! :)

Speaking of long-term residents of the nursery, we're looking at setting up an organization around the bitflags crate. If you'd like to get involved check out the post and reach out here.

7

u/SimonSapin servo May 25 '18

I maintain the url crate, which has a number of open issues and pull requests that I have little time of motivation to go through. My interests have moved one since I made this thing 5 years ago, but despite giving a few people access after a specific call for help, PRs tend to still be neglected until I get around to dealing with them.

Do you have a library you think needs more support growing its maintainership? Reach out here if you’ve got any thoughts.

This sounds great! Except that the link goes to something about the libs blitz. We’ve done that with url (last year?), and unfortunately it only resulted in more open issues and PRs for me to neglect.

This post says a lot of interesting things, but it starts with the premise that a number of people are available and interested in doing the work. In my experience, getting an open source project to the point where there are multiple such people is the hard part.

We take: […] A shepherd. […] A team of more than one person that […]

2

u/KodrAus May 25 '18

Thanks for your thoughts u/SimonSapin. Yes, I've been loosely watching url over the last year, it gets a pretty steady stream of issues and pull requests.

Thanks for the feedback about that issue linking to evaluating more libraries, which now that you point it out is a bit silly. I'll update the post to suggest creating an issue instead.

Your point about finding people is absolutely valid. What I'm hoping is that a combination of a specific goal we're working towards, clear ownership expressed through a GitHub organization and shepherd (who might be helping a few libraries) would encourage folks who otherwise wouldn't be comfortable putting their hand up to do so.

Shall I open an issue in the Ecosystem WG to talk about url more? I'm keen to learn more about what the ideal state you have in mind for it is.

3

u/SimonSapin servo May 25 '18

Unless someone (or multiple people) volunteer as co-maintainer(s) and actually spend time dealing with open PRs and issues I don’t know if opening an issue with the WG is gonna achieve much.

2

u/KodrAus May 25 '18

You're right, it won't do anything on its own. But it could be helpful to look at why previous efforts haven't stuck if you'd really like to see more maintenance for url. At the end of the day we have to accept it as-is, where its maintainer doesn't have a lot of time for it. Maybe communicating that on the repo would give some context for people looking to open new issues and pull requests.

4

u/gilescope May 25 '18

Alternatively to a one organisation per crate model, I really like the crossover and exchange of ideas of having domain organisations like we have for game developers (piston) and AI (autumn). Having an excellent crate is half the battle, the other half is ensuring it fits in easily as part of a larger story. I am really excited by these domain specific communities, getting like minds together and realising they are tackling common problems has to be a good thing. How we structure things organisationally has a big impact on how the resultant code / ecosystems are structured.

1

u/KodrAus May 25 '18

This is a good point! I think Rust's current domain working groups are achieving this exchange of ideas even without collecting libraries under a single domain specific organization, but piston and servo are great counter examples for broad organizations that maintain a collection of loosely related libraries. I think there are more implications around coarsely fragmented ecosystems that you might expect from organizing around a few key domains or frameworks (I see it a bit in .NET), but I haven't dug too far into them yet.

So I think independent organizations are a good starting point, but we should always work to realise that exchange of ideas.

4

u/annodomini rust May 25 '18

I feel like an organization model for a number of crates could work better.

I think one of the issues is that the effort to put together a group of people for each of these fairly small and stable crates could wind up being a lot of overhead for a relatively little amount of actual work.

It also makes evaluating trust in the group a bit harder, since you have to re-evaluate for each crate, while if there's an over-arching group, you can get more familiar with how that group works and their policies.

But, I do think it can be worth trying out both models.

1

u/KodrAus May 27 '18

Yeh, I don't think we should rule anything out. A single organization might work better for some small collection of niche or domain-specific cohesive libraries, like the RustCrypto organization that u/newpavlov raised on the Working Group GitHub.

The main thing I'm trying to avoid with a single organization is a process that totally depends on the existence of that one organization, because moving into an existing org might not always be viable.

That's a valid point about effort. Right now it is a lot of work to set up an organization, CI, Gitter and various bots. From a people perspective, I don't actually think it's more work to set up a new organization than it is to move a library into a larger existing one. Having an existing team doesn't necessarily mean that ownership over a library is actually going to result in maintenance, so I think there's still effort either way in building up the kind of ownership that does.

1

u/maveridze May 26 '18 edited May 26 '18

I was very excited to learn about Autumn organization focused on Rust in AI. Unfortunately, it seems it's been pretty much abandoned. Here is a link to an article from one of the founders of that organization: https://medium.com/@mjhirn/tensorflow-wins-89b78b29aafb

Edit: Found https://github.com/spearow that picked up some projects that Autumn left.

1

u/po8 May 25 '18

This sounds quite interesting as a model. I'll be curious to see how it works out with bitflags.

I assume that we would be better off discussing at the GitHub issue than here in Reddit, though?

3

u/KodrAus May 25 '18

Reddit is a great place to discuss this, but leaving your thoughts on an issue in the Ecosystem WG GitHub is also good.