Working with KW
I started using KWorkflow pretty late into my kernel dev adventure, so I didn’t really use most advanced features. It was however very useful as a tool to speed up the development process as instead of using complex commands I could just kw build
and go do something else (and kw mail
was also a great tool). I had some urgent projects that I had to work on while this one was going on, so I couldn’t give it all the attention I wanted to, but I do think I made an extremely useful contibution to the project, even if it wasn’t related to code.
A personal issue
When I was setting up kworkflow, I had a few issues, but one was far and ahead the most confusing: I wanted to setup my enviroment to be arm64 and also setup my remote and so on, and when I looked through the man pages and documentation website for kw everything was telling me to add these configurations to a kworkflow.config file that… didn’t do anything. I attempted to use the kw config
command and it told me that that file was part of a deprecated system for configuration management that they’d phased out already, so I went looking through the documentation and found that a few pages did have some references to the new config system, which used separate files for each command in a .kw
folder, for example .kw/build.config
for the configurations related to kw build
. After messing around with that a bit, I managed to get my setup working. It annoyed me, though, that the documentation was contradicting itself to the point of actively getting in the way of setting up the program.
Documentation work
Because of the difficulties I faced when setting up, I decided to contribute to the project by rewriting most mentions of config files in KW’s man pages so that a new user wouldn’t face any inconsistencies. It involved mostly a bunch of “Find mentions of…” kworkflow.config in a text editor and replacing with the correct file and command for that situation. I also rewrote some of the examples and a few general guidelines that were present in multiple files to update them to the new recommended config management system. All in all, it was pretty direct manual work (although I did have to go mucking through some old commits to find what files should be used for what configurations and some things aren’t too clear even now). My pull request was accepted with a few suggestions that I quickly changed and merged into the project.