Obs.: essa lista pode estar desatualizada conforme o lançamento de novas releases. A versão atualizada sempre estará no último lançamento feito, o qual se encontra na branch master.
Link para o PDF com as análises e métricas.
As métricas - e as análises sobre elas - foram baseadas conforme os dados diponíveis em python.csv e java.csv presentes neste repositório, obtidos em 07/10/2020 às 23h30 através do código descrito a seguir.
Foi desenvolvido um script em Node.js que, a partir de um token da API do GitHub, realiza uma busca paginada da query GraphQL a seguir - alternando somente o atributo language entre "Python" e "Java", conforme desejado - e calcula o LOC, SLOC e CLOC de cada repositório enquanto, paralelamente, os resultados são salvos em seus respectivos arquivos CSV.
{
search(type: REPOSITORY, query: "stars:>100 language:python", first: 100) {
repositoryCount
pageInfo {
endCursor
}
nodes {
... on Repository {
nameWithOwner
stargazerCount
createdAt
forkCount
watchers {
totalCount
}
releases {
totalCount
}
}
}
}
} Enquanto as métricas relacionadas ao repositório são obtidas através da query acima, os valores de LOC, SLOC e CLOC são obtidos através da ferramenta de análise estática de código sloc, pelo comando sloc <diretório> --keys total,source,comment. Desta forma, a cada resultado da busca paginada, é clonado automaticamente um repositório, calculado com a ferramenta, armazenado os valores no respectivo CSV, deletado do disco de armazenamento e feito o mesmo processo para o repositório seguinte.
- Instale as dependências:
npm install - (Recomendado) Crie a váriável de ambiente
TOKENa partir de um arquivo.env, na raiz do projeto, com o seguinte conteúdo:ℹ️ Não se preocupe, caso não queira realizar o item acima, poderá informar seu token diretamente na linha de comando.TOKEN=seu_token_do_GitHub_API - Execute:
npm start - Pronto, agora é só esperar e os resultados estarão no diretório
/data(a partir da raiz do projeto) com o nomepython.csvejava.csv✔️