Adoção de Boas Práticas e Integração Contínua em Repositórios GitHub com Linguagens Funcionais
Resumo
Linguagens de programação funcionais, como Haskell, Elixir e F#, têm ganhado destaque por promoverem código mais conciso e paralelizável. Embora seu uso tenha crescido em projetos de código aberto, pouco se sabe sobre a adoção de boas práticas de manutenção em repositórios com estas linguagens. Este estudo investiga se projetos com linguagens funcionais adotam (i) diretrizes de manutenção recomendadas pela comunidade open source e (ii) práticas de integração contínua. A partir da análise de 496 repositórios no GitHub, observou-se alta presença de documentação introdutória (91,9%) e licença (89,7%), mas baixa adoção de guias de contribuição (34,1%) e códigos de conduta (17,7%). Já a integração contínua aparece em 85,1% dos projetos.
Referências
Castagna, G., Duboc, G., and Valim, J. (2023). The design principles of the elixir type system. arXiv preprint arXiv:2306.06391.
Elazhary, O., Storey, M.-A., Ernst, N., and Zaidman, A. (2019). Do as i do, not as i say: Do contribution guidelines match the github contribution process? In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 286–290. IEEE.
GitHub (2020–2025c). Open source guides. [link]. Acessado em 17 de junho de 2025.
GitHub (2025a). GitHub Actions: Automate your workflow. [link]. Acessado em: 2025-06-10.
GitHub (2025b). Github community guidelines. [link]. Acessado em 17 de junho de 2025.
Hudak, P. (1989). Conception, evolution, and application of functional programming languages. ACM Computing Surveys (CSUR), 21(3):359–411.
Prana, G. A. A., Treude, C., Thung, F., Atapattu, T., and Lo, D. (2019). Categorizing the content of github readme files. Empirical Software Engineering, 24:1296–1327.
Rausch, T., Hummer, W., Leitner, P., and Schulte, S. (2017). An empirical analysis of build failures in the continuous integration workflows of java-based open-source software. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR), pages 345–355. IEEE.
Ray, B., Posnett, D., Filkov, V., and Devanbu, P. (2014). A large scale study of programming languages and code quality in github. In Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, pages 155–165.
Steinmacher, I., Silva, M. A. G., Gerosa, M. A., and Redmiles, D. F. (2015). A systematic literature review on the barriers faced by newcomers to open source software projects. Information and Software Technology, 59:67–85.
Tourani, P., Adams, B., and Serebrenik, A. (2017). Code of conduct in open source projects. In 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER), pages 24–33. IEEE.
Valim, J. (2023). Elixir programming language. [link]. Accessed: 2025-06-15.
Vasilescu, B., Yu, Y., Wang, H., Devanbu, P., and Filkov, V. (2015). Quality and productivity outcomes relating to continuous integration in github. In Proceedings of the 2015 10th joint meeting on foundations of software engineering, pages 805–816.
Wang, T., Wang, S., and Chen, T.-H. P. (2023). Study the correlation between the readme file of github projects and their popularity. Journal of Systems and Software, 205:111806.
Elazhary, O., Storey, M.-A., Ernst, N., and Zaidman, A. (2019). Do as i do, not as i say: Do contribution guidelines match the github contribution process? In 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), pages 286–290. IEEE.
GitHub (2020–2025c). Open source guides. [link]. Acessado em 17 de junho de 2025.
GitHub (2025a). GitHub Actions: Automate your workflow. [link]. Acessado em: 2025-06-10.
GitHub (2025b). Github community guidelines. [link]. Acessado em 17 de junho de 2025.
Hudak, P. (1989). Conception, evolution, and application of functional programming languages. ACM Computing Surveys (CSUR), 21(3):359–411.
Prana, G. A. A., Treude, C., Thung, F., Atapattu, T., and Lo, D. (2019). Categorizing the content of github readme files. Empirical Software Engineering, 24:1296–1327.
Rausch, T., Hummer, W., Leitner, P., and Schulte, S. (2017). An empirical analysis of build failures in the continuous integration workflows of java-based open-source software. In 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR), pages 345–355. IEEE.
Ray, B., Posnett, D., Filkov, V., and Devanbu, P. (2014). A large scale study of programming languages and code quality in github. In Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, pages 155–165.
Steinmacher, I., Silva, M. A. G., Gerosa, M. A., and Redmiles, D. F. (2015). A systematic literature review on the barriers faced by newcomers to open source software projects. Information and Software Technology, 59:67–85.
Tourani, P., Adams, B., and Serebrenik, A. (2017). Code of conduct in open source projects. In 2017 IEEE 24th international conference on software analysis, evolution and reengineering (SANER), pages 24–33. IEEE.
Valim, J. (2023). Elixir programming language. [link]. Accessed: 2025-06-15.
Vasilescu, B., Yu, Y., Wang, H., Devanbu, P., and Filkov, V. (2015). Quality and productivity outcomes relating to continuous integration in github. In Proceedings of the 2015 10th joint meeting on foundations of software engineering, pages 805–816.
Wang, T., Wang, S., and Chen, T.-H. P. (2023). Study the correlation between the readme file of github projects and their popularity. Journal of Systems and Software, 205:111806.
Publicado
23/09/2025
Como Citar
PIANCA, Rullian Andriel; COELHO, Jailton.
Adoção de Boas Práticas e Integração Contínua em Repositórios GitHub com Linguagens Funcionais. In: WORKSHOP EM ENGENHARIA DE SOFTWARE PARA PROGRAMAÇÃO FUNCIONAL (SE4FP), 1. , 2025, Recife/PE.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2025
.
p. 15-20.
DOI: https://doi.org/10.5753/se4fp.2025.13581.