Go back to the main GSoC Linux Foundation page
Repository: https://github.com/kworkflow/kworkflow
Documentation: https://kworkflow.org/
Code License: GPLv2
Mentor: David Tadokoro <davidbtadokoro at gmail dot com>
Kworkflow
, or just kw
, is a system that includes many tools with the intent of simplifying Linux kernel workflows by automating tasks such as:
kw
aims to speed up everyday tasks executed by Linux kernel developers in their workflows and provide a unified development experience similar to what git
proposes in the context of version control. kw
also helps reduce the learning curve for newcomers to the kernel ecosystem. Finally, the project should be reasonably easy to contribute since it is (almost) completely written in Bash, has extensive test coverage, follows a code style rule, and is documented from the code level to the user level. Don't believe it? Check by yourself:
In GSoc 2025, we will focus on a sub-project of kw
that once was a feature like any other but now has its own codebase, is written in Rust, and does not have the exact same development model. The sub-project is called patch-hub
and aims to streamline the interaction of Linux kernel maintainers with patches sent through development mailing lists (if this seems alien to you, check this reference).
Even though we will focus on a different aspect of Linux kernel development this year, it is imperative for candidates to be familiar with the main workflows of the whole process.
The link below is a set of activities you must complete before applying for this project that will help you understand some fundamentals about kernel workflows. Only the Phase 1 is mandatory, although we encourage you to get to know kw
more deeply by going through the other phases.
First time in the Linux kernel development and kworkflow? Then, start your journey here :)
As mentioned before, in the GSoC 2025 edition, we intend to focus on a single project on the kw
sub-project patch-hub
. Linux kernel development is done via electronic mail and mailing lists, so instead of submitting pull requests on GitHub through the web, contributions, reviews, and the like are done by sending emails to other developers and mailing lists.
Software development based on email may seem a little confusing, especially if you have never heard of it, but the important point is that even though there are some arguments in favor of it, there are many inefficiencies and complexities that come with it.
patch-hub
, following the kw
spirit of simplifying workflows, aims to simplify the workflows of kernel developers when consuming from the development mailing lists. The tool is constructed as a Terminal UI (TUI), so it is a little less “roots” than a fully CLI system like the rest of kw
, but still no graphical interface
Below is a video of a simple demo of the tool. From listing the available development lists to consulting the flow of patchsets (a set of related patches, similar to a PR or an MR), their individual contents, and running actions on them, the tool aims to completely cover this part of kernel development.
Don't forget to check out the patch-hub GitHub repo.
As you can see in the demo video, patch-hub
isn't in its initial stages, but there is a lot of work to be done. Currently, the latest released version is v0.1.4, and we are close to v0.2.0, which will be its beta.
With that being said, between the beta and v1.0.0, there are many tasks to be made, which we can highlight:
git send-email
not teardown the UIThe idea is not to strictly get to v1.0.0 by the end of the program but to get as near as possible. At least, we need a solid and robust base that will streamline the rest of the work!
Interacting with kw
and patch-hub
as a system/tool and a free software project is critical to grasping the dynamics and technical challenges you will face in your GSoC. This means it's nice to use kw
and patch-hub
to understand its purposes and functionalities while also reporting bugs and suggesting enhancements (take a look at patch-hub
reported issues). Don't be afraid to open pull requests addressing them! We really encourage you to do it!
The Warm Up section is mandatory for everyone, so your final project proposal should have one section per assignment with two or three paragraphs describing your experience with each step of Phase 1. Additionally, in your application, you must add print screens that follow the below instructions:
If you are really interested in this project, email David and request one specific ID. You will need it for the next steps.
To demonstrate your QEMU setup, you will need to take a print screen of your entire desktop with QEMU running and with the following comment in your TTY:
#kw 2025 GSoC <ID>
To show that you were able to install a custom kernel in your VM system, add the following label in your kernel name suffix:
Kernel-<YOUR_NAME>-<YOUR_ID> (( Replace YOUR_NAME with your first name and YOUR_ID ))
Install it in your QEMU VM; in the TTY, run the following command:
uname -a
Take a print screen of the entire screen.
Finally, make sure that you have the following section in your application:
kw
/patch-hub
;kw
/patch-hub
;P.S.: Feel free to share your draft before submitting the final version.
As mentioned a couple of times, we are deadset on the patch-hub
v1.0.0 project, and given the small number of mentors, we, with a heavy heart, won't be accepting other lines of project even if it is in the context of kw
.
This doesn't mean we have an inflexible view of how the patch-hub
project will be. Much of GSoC involves heavy interaction of contributors and mentors to produce the best free software code possible!