View on GitHub

Vorner's random stuff

Spring cleanup

You may have noticed this blog (is it still fashionable to call something a blog or am I 15 years out of phase?) was silent for a while. The reasons for that are multiple, I’m going to blame mostly two things. One, the Factorio game. It’s a great game, which is the actual problem ‒ it demands a lot of time. The latter is some kind of feeling of being tired. I suspect this is more about both my day job and being winter time (are there actually people who don’t need 14 hours of sleep a day during the winter?) than Rust itself, but I was still thinking about what the reasons are.

What I’ve noticed is, the whole ecosystem feels somewhat less vital and more tired than a year or two ago. It might be just my perspective. But it might also be something related to this idea that programmers come in two flavors ‒ Conquerors and Stewards. Unfortunately, I seem unable to find the original article now (if you know where it is, please let me know, I’ll link it here), but the gist was that Conquerors like to explore new things, move fast, break things and they tend to leave some unfinished mess behind when they move onto something new. Stewards like to nurture the code base. Both are valuable when applied to the right problem.

So if you’re a Conqueror, you’re likely to build a library, maybe give it reasonably good documentation, throw some examples in, keep it maintaining for a while. But once you release something like 0.3.14, you notice that it’s no longer as much fun because there’s nothing interesting happening and you move onto something little bit different.

If you are a Steward, you care about the day to day quality of life of the library. You make sure the CI is in great state. You take care that every new contributor feels welcome. You improve the documentation and fine-tune the API so it feels fully natural to use.

While I’m probably not a 100% Conqueror ‒ I don’t like leaving mess behind, I still prefer the exploratory phase. I think a lot of libraries that feel somewhat unfinished and abandoned over the ecosystem might be result of something like this, lots of people around the younger Rust are more of a Conqueror.

Enough of the chatter

This isn’t supposed to be only philosophical rambling. I’ve came to conclusion that it’s not healthy for me to pretend to myself that I’m maintaining some 20 crates while it’s not really true. I wanted to admit to myself which libraries I intend to keep even as a Steward (polishing, bringing them to 1.0, …), which I want to hand over to someone else and which ones are probably just dead already. I want to do some spring cleanup of „my“ libraries.

The reason I’m writing it publicly is twofold:

Libraries I want to keep and invest my time in them

I have limited amount of time and energy, but there are libraries I feel I have enough emotional bond to want to keep them myself. That doesn’t mean you can’t help me with them (I really like people taking interest, it’s one of the few rewards I get for doing the work). But I still want to consider them mine in the sense I want to be the one doing reviews, having opinions and being proud of them, as well as mine in the sense of being responsible for them being high-quality and working.

Things I’m not sure about

I probably won’t let these die, at least not for now. But if you want to take interest in them and take over, I’m fine with that. If there’s a bug, I’ll likely spend the time fixing it, and will do so reasonably fast.

The victims

These I plan to spend as little time on as necessary. Which probably means mostly doing reviews and releases if they come, but I don’t expect a lot of them would be coming. If you report a bug on them, be prepared to send the code of the fix too. I’m willing to invest all the needed effort for a transition, though.

If you want to help

As mentioned above, help is appreciated. If you feel you want to keep something of these alive or that you’d be a good steward for a library, let me know ‒ issue on github is fine, an email is fine too.

We would agree on the specifics on case by case basis. But my general view on this is that I first want to somehow trust the person (Sorry, that’s not personal, I do want to believe in good intention of people, but in the world where we have library takeovers and malicious code injected in them, there should be some kind of due diligence. I also want to know such person won’t disappear a month after handing the code over.). And you might want to try it out first too, to see if it’s your kind of thing. Therefore I imagine some kind of gradual shift ‒ first seeing and reviewing some improvements, then handing over rights to merge things, etc.

If you feel like you’d want to try, but you’re not sure if you’re up to it, then I’d say you should go ahead. It’s not like there would be people queueing over wanting to maintain something so you’re not taking someone else’s place and the library would likely die without you. And I’m not going away completely, so I can help out.

In general, as Rust matures, I think the community has higher need for Stewards (as opposed to the time when Rust was young). Do you feel like being one? I’m sure I’m not the only mostly-Conqueror who would like to hand the „boring“ details of running a proper civilization to someone more interested.