User Tools

Site Tools


gsoc:2024-gsoc-kworkflow

2024 GSoC - Kworkflow

Go back to the main GSoC Linux Foundation page

Repository: https://github.com/kworkflow/kworkflow

Documentation: https://kworkflow.org/

IRC: #kworkflow on irc.freenode.net

Code License: GPLv2

Mentors: David Tadokoro <davidbtadokoro at gmail dot com>

Brief about kworkflow

Kworkflow, or just kw, is a tool that intends to simplify the kernel workflow by automating tasks such as:

  1. Support working on DRM subsystem (we can expand to other subsystems). Etc;

By using kw we expect to speed up everyday tasks executed by kernel developers in their workflow, provide a unified development experience, and reduce the learning curve for newcomers. Finally, the project should be reasonably easy to contribute since it is written in Bash, has extensive test coverage, follows a code style rule, it is documented from the code level to the user level. Don't believe it? Check by yourself:

Pre-requisites (warm-up)

( ( This section is mandatory for everybody ) )

The below link is a set of activities that you have to complete before applying for this project.

https://github.com/kworkflow/kworkflow/discussions/476

Project Ideas

We are open to discussing the final project proposal and encourage you to think about varied ways kw can be improved. Nevertheless, here is a list of project ideas that represent points of interest for the kw project:

Implement a Documentation Generator from Source

  • Size: 1 contributor medium (175 hours), Level of difficulty: Intermediate
  • Desired knowledge: Bash, mechanisms like kernel-doc/javadoc
  • Description: Although inconsistent throughout the project, we have a pattern for writing function documentation. In this sense, adding a system to generate documentation using source code similar to the kernel-doc and javadoc mechanisms seems viable. We have wanted to implement this for a long time, roughly since this issue.

Deploy In-House Continuous Integration (CI) Pipeline

  • Size: 2 contributors full-size (350 hours), Level of difficulty: Hard
  • Desired knowledge: DevOps, CI
  • Description: Currently, kw uses GitHub actions for its CI pipeline. We plan to implement an in-house CI pipeline. For this task, there is much work to be done in terms of planning and deploying this infrastructure.

Expand and Refine ''kw patch-hub''

  • Size: 1-2 contributors full-size (350 hours), Level of difficulty: Hard
  • Desired knowledge: Bash, mail-based free-software projects
  • Description: The kw patch-hub is a significant point of interest in the project and is currently under heavy development. We now have a 'Minimum Viable Product' with performance issues, bugs, and a lack of core features. On this basis, there is much space for improvements and refinements.

Don't forget to interact to with the kw Community

Interacting with kw as a tool and as a free software project is critical to grasp which of the above projects best suits you or to bring other ideas to the table. This means it's nice to use kw to understand its purposes and functionalities while also reporting bugs and suggesting enhancements (take a look at kw reported issues). Don't be afraid to open pull requests addressing them! We really encourage you to do it!

Making your Project Proposal

The pre-requisites section is mandatory for everyone; for this reason, your final project proposal should have one section per assignment with two or three paragraphs that describe your experience with each task. Additionally, in your application, you must add print screens that follow the below instructions:

Contact David to get one specific ID

If you are really interested in this project, send a message to David and request one specific ID. You will need it for the next steps.

QEMU Setup

For demonstrating your QEMU setup, you will need need to take a print screen of your entire desktop with QEMU running and with the following comment in your TTY:

#kw 2024 GSoC <ID>

For your custom kernel installation

For showing 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 by 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:

  1. One or two paragraphs about you;
  2. A couple of sections that describe your interaction with kw;
  3. Highlight some of your contributions to kw;
  4. A project proposal to be executed in the GSoC timeline. Please, make sure that you add three main milestones (it should match with the GSoC evaluation date) and a work breakdown.

P.s.: Feel free to share your draft before submitting the final version.

gsoc/2024-gsoc-kworkflow.txt · Last modified: 2024/02/26 18:37 by davidbtadokoro