Is it more important to learn things or to have progress? And especially, is it more important to have progress in an open source project or is it more important that people learn new things?
I got a pull request for my open source project imag which wasn’t well-formatted. As we are all nice people in the rust community (not only because, but also because we have this code of conduct which basically says you should be nice to all people) I asked the contributor to clean up the history by rewriting it.
Basically, I had two issues with the PR:
- The blank lines at the end of the files were removed. Some editors do this by default, but I don’t like it as it makes diffs which add content at the end of a file rather complex (visually). If you have the blank at the end of the file, the diff is just one block which adds content, normally.
- I asked to rewrite the commit messages but after this was done, only one big commit was left. This is not preferred style in my project, I’d like to have more small commits than big monolithic ones.
So I asked kindly whether the contributor cared to fix up the issues. He did! Awesome! But he also told me that he was new to git and didn’t knew how to do it. So I told him the steps which needed to be done, of course. He got stuck at some point (yes, git can be challanging, I know that) and asked for more help while apologizing for the slow progress.
And that made me start thinking about whether it is more important to have progress or that people learn new things. The issue which was adressed by the pull request described above is a rather simple one. It is literally a no-brainer. For me. But maybe not for others. Maybe also for others, but the review process isn’t and the “Please rewrite the history like this” request was the challange. Either way, there was a point where the contributor had to learn something new which caused the pull request to slow down.
Is it worth it?
I honestly think yes. Learning new things is way more important than getting progress in this kind of project. I myself had to learn a whole bunch of things before this project was on the way it is right now. I had to learn that in Rust, you have to add more types to cover complexity and the more types you have, the better is your setup and the more extensible it gets. Of course this is not always the case, but I would say mostely.
I had to learn a lot of things. I had to learn to fail and to retry, which are two really important things. I failed so hard, I had to restart my whole project (which had no contributors by then, so no problem).
At the time of writing, the pull request is open for 8 days. It touches about 100 lines of code by adding missing calls. It could be done by myself within 3 minutes. But in my opinion, it is way more important that we all learn something and have fun. I offered to do it myself to the contributor, but clearly stated that if he wants to learn new things, he is free of taking his time and trying out how to fix the pull request. I really hope he learns something and starts contributing more often because of this.