Trabalho de Formatura Supervisionado (MAC0499)

Automatização do fluxo de submissões de patches para o kernel Linux através do kworkflow

Aluno: João Guilherme Barbosa de Souza

Orientador: David Tadokoro

Coorientador: Paulo Meirelles

Resumo

O desenvolvimento do kernel Linux ocorre em um ambiente de grande escala e alta complexidade, baseado em um modelo de perpetual development que envolve ciclos contínuos de integração, estabilização e manutenção de versões. Nesse contexto, o processo de submissão e revisão de patches é realizado majoritariamente por meio de listas de e-mail, o que impõe desafios significativos relacionados à organização das contribuições, à rastreabilidade das revisões, à sobrecarga dos mantenedores e ao alto custo de entrada para novos desenvolvedores, além de fragmentar o fluxo de trabalho ao exigir o uso de múltiplas ferramentas externas. Com o objetivo de mitigar essas limitações, este trabalho propõe a ampliação do Kernel Workflow (KW), uma ferramenta de software livre voltada à automação do fluxo de contribuição ao kernel Linux, por meio da introdução de mecanismos para a gestão e o acompanhamento de patches durante a fase de revisão, concretizados nos módulos kw manage contact, responsável pela organização e disponibilização de informações sobre mantenedores e revisores, e kw patch-track, voltado ao monitoramento do estado e da evolução dos patches submetidos às listas de e-mail. As soluções apresentadas integram-se às funcionalidades existentes do KW, permitindo centralizar informações provenientes das listas de e-mail, automatizar etapas recorrentes do processo de revisão e oferecer uma visão mais integrada do ciclo de contribuição, contribuindo para a redução da sobrecarga cognitiva dos desenvolvedores e para a melhoria da eficiência e da transparência do processo de desenvolvimento do kernel Linux.

Objetivos

Esse projeto tem por objetivo realizar automatizações em torno do fluxo de submissões de patches para o Kernel Linux, adicionando novas ferramentas para incrementar essa etapa e permitir que os desenvolvedores contribuindo para o Kernel Linux tenham um ambiente integrado e isolado, acessivel através do terminal, por linha de comando, no qual podem visualizar a submissão dos seus patches, controlar seus estados, checar reviews entre outras funcionalidades. De maneira adicional, o trabalho também busca investigar formas de automatizar o fluxo de consultas e revisões dos patches submetidos.