Aluno: Rubens Gomes Neto
Orientador: Paulo Meirelles
Coorientador: Rodrigo Siqueira
O kernel Linux é o maior projeto de desenvolvimento colaborativo de software do mundo, mantendo seu ritmo de desenvolvimento devido ao seu modelo de contribuição único. Esse modelo apresenta algumas particularidades que não são comuns em outros projetos, como o envio das contribuições em formato de patches por e-mails de texto. O projeto KernelWorkflow (kw) tem a missão de melhorar a experiência de desenvolvimento e contribuição para o kernel Linux. Para isso, ele oferece uma série de funcionalidades para automatizar e simplificar muitos dos processos envolvidos. Assim, o objetivo deste trabalho foi contribuir para a evolução do kw, melhorando e expandindo suas funcionalidades. Nesse sentido, foram apresentadas e discutidas as três contribuições de maior importância e impacto. A primeira foi a refatoração e padronização do sistema de documentação do projeto, melhorando o entendimento e a acessibilidade de suas funções. A segunda contribuição consiste na criação de um banco de dados para substituir o sistema de pastas e arquivos utilizados para armazenar os dados coletados sobre o uso do kw. A migração para um banco de dados permitirá a expansão dos dados coletados, abrindo portas para análises estatísticas sobre o processo de desenvolvimento para o kernel Linux. A terceira contribuição foi a implementação de uma nova funcionalidade para o kw (comando kw mail). Essa funcionalidade atua na etapa de envio das contribuições por e-mail para os mantenedores e listas de e-mail do kernel Linux. Para isso, a ferramenta oferece opções que auxiliam na configuração do sistema de e-mail do usuário para que possa enviar o patch corretamente. Além disso, a ferramenta permite a automatização do preenchimento dos destinatários corretos baseado nos mantenedores dos arquivos sendo alterados. Todas as contribuições feitas ao kw durante este trabalho ajudaram na evolução do kw, melhorando sua acessibilidade e ampliando suas funcionalidades.
The Linux kernel is the largest collaborative software development project in the world. It has managed to keep up with its pace of development thanks to its unique contribution model. This model presents some peculiarities not commonly present in other projects, such as submitting patches via plain text email. The KernelWorkflow (kw) mission is to improve the development experience of contributing to the Linux kernel. For that, kw offers a series of features that automate and simplify many of the involved processes. With this in mind, the objective of this capstone project was to contribute to enhancing kw by improving and expanding its functionalities. In light of this, we present and discuss three significant contributions from our collaboration during the development of this work. The first one is the complete refactor and standardization of kw's documentation, making it easier to understand and use all of its functions. The second contribution pertains to creating a database model to replace the files and folders system currently in use to store kw's usage data. The database system will expand the collected data, which makes it possible to generate statistical analysis on the Linux kernel development process. The third contribution was the implementation of a new feature of kw, the kw mail command. This new functionality sends contributions by email to the maintainers and mailing lists of the Linux kernel. For that, the tool offers options that help in the configuration of the user's email system, allowing the patch to be sent correctly. In addition, the tool automates the completion of the correct email recipients based on the maintainers of the files being changed. During this work, our contributions helped evolve kw, improving its accessibility and expanding its features.