October 17, 2023
Contributing to Taskwarrior
I felt like I reached a point in the process of coding my text-based game that I could be developing bad coding habits without knowing it. I also wasn't developing the collaboration skills common to programmers who work in organizations. I felt like I needed to find a coach, and a project I could contribute to that brings value to other people.
But who would possibly take someone who may not even have an intern's level of coding experience, give them a programming task, coach them, and let them actually do something useful?
Well, fortunately, the open source ecosystem is ever in need of developers willing to spend time fixing bugs, updating documentation, implementing features, refactoring code, etc. Jellyfin, a home media server, is one example of an open source project who recently put out a call for contributors. More so than money, these projects need contributors with all sorts of skills at many different levels. For me, it was just a matter of finding and choosing the project that had the right intersection of interests, governance, domain knowledge, and needs (both the project's and mine).
That is why I was excited to see that Taskwarrior has a branch called Taskchampion that is written in Rust. According to its website: "Taskwarrior is Free and Open Source Software that manages your TODO list from the command line. It is flexible, fast, and unobtrusive. It does its job then gets out of your way."
Initially I had hoped to contribute directly to Taskchampion, but it appears that it is being folded in to the Taskwarrior trunk. Still, I take this as a sign that there will be more Rust development happening on the Taskwarrior core. This plays nicely with my interests in:
- moving more of my day to day work out of the browser and into text-based command-line-interfaces ("CLI"s) and textual-user-intefaces ("TUI"s). More on this another time.
- reducing my dependence on the excellent, but aging, gqueues.com as my go-to task management tool.
- programming in Rust
- collaborating with people smarter than me, who are professionally employed in organizations I might want to do business with some day.
My first task? Basically an automated find-and-replace for the source code files that updates comments with the minimum version of Rust developers should be using when developing.
I don't know if my pull request will get merged, or if I'll get punted off the project, or if I'll ever help get Taskwarrior to a point where it becomes my main task management application, but I'll learn a lot in the process no matter what. And that is what this whole project is about.