Repositório Pontuação de Atividade
Title
Repositório Pontuação de Atividade
Patlet
Potenciais contribuidores desejam encontrar projetos InnerSource ativos que precisem de sua ajuda. Ao calcular uma pontuação de atividade do repositório para cada projeto, uma lista classificada de projetos pode ser criada (por exemplo, no Portal InnerSource), para que os potenciais contribuidores possam determinar mais facilmente em qual projeto desejam contribuir.
Problema
Em que ordem os projetos InnerSource devem ser apresentados? Indicadores de classificação típicos, como GitHub Stars, Número de Forks, Número de Commits, Linhas de Código, Última Atualização, não são suficientes para indicar de forma concisa a atividade de um projeto.
Projetos ativos com muita tração, mas também projetos relativamente novos e entusiasmados que precisam de novos contribuidores, devem ser classificados acima de projetos maduros com pouca atividade ou em modo de manutenção.
Uma nova métrica derivada de vários indicadores de desempenho é necessária para definir uma pontuação confiável e versátil para o nível de atividade de um projeto. Ela pode ser usada para ordenar projetos de acordo com o nível de atividade deles.
História
Quando o InnerSource é praticado por um longo período de tempo ou se expande além de um certo número de projetos (digamos 50 para ter um limite significativo), torna-se difícil encontrar os projetos InnerSource mais populares e ativos no momento. Projetos que existem por muito tempo são conhecidos, mas podem não estar tão ativos. Projetos relativamente novos, por outro lado, não têm reputação ou uma comunidade ativa ainda.
Uma lista de projetos InnerSource não deve ser considerada um recurso estático, mas sim um local emocionante para descobrir e explorar projetos novos e ativos, assim como uma página de notícias que lista os tópicos mais interessantes do dia primeiro. Portanto, é benéfico quando a ordem dos projetos é atualizada regularmente e muda de acordo com a popularidade e atividade do projeto.
Essas considerações levaram a um primeiro protótipo para calcular uma pontuação de atividade do repositório, que funcionou surpreendentemente bem e determina uma ordem sempre em mudança de projetos de acordo com a sua atividade.
Contexto
A descoberta de projetos InnerSource pode ser facilitada com o Portal InnerSource e o padrão Gig Marketplace, ou promovendo projetos em outros canais de comunicação e plataformas. A pontuação de atividade define uma ordem padrão na qual os projetos são apresentados à comunidade.
Forças
Indicadores-chave de desempenho automatizados que podem ser obtidos consultando a API do GitHub são apenas parte da verdade. E quanto à qualidade do código, a disponibilidade de boa documentação ou uma comunidade ativa e prestativa que torna o projeto um local divertido para contribuir?
Esses KPIs "soft" teriam que ser adicionados manualmente ou de forma semi-automática ao cálculo e à pontuação resultante. Se existirem ferramentas que forneçam mais contexto para o repositório, como relatórios de cobertura de código, eles podem ser facilmente incorporados.
Esboço
Abordagem centralizada para calcular e aplicar a pontuação de atividade do repositório. Para mais detalhes, veja Contexto Resultante.
Solução
A pontuação de atividade do repositório é um valor numérico que representa a atividade (no GitHub) de um projeto InnerSource. Ela é derivada automaticamente de estatísticas do repositório, como estrelas (GitHub stars), observadores (watches) e forks, e pode ser enriquecida com KPIs de outras ferramentas ou avaliações manuais.
Além disso, considera parâmetros de atividade como a data da última atualização e a data de criação do repositório para impulsionar projetos jovens com muita tração. Projetos com diretrizes de contribuição, estatísticas de participação ativa e problemas (backlog público) recebem uma classificação mais alta também.
Tudo isso pode ser obtido e calculado automaticamente usando o conjunto de resultados da API de pesquisa do GitHub e API de estatísticas do GitHub. Outros sistemas de controle de versão de código, como BitBucket, GitLab e Gerrit, podem ser integrados também, se uma API similar estiver disponível.
O código abaixo pressupõe que a variável repo
contenha uma entidade obtida a partir da API de pesquisa do GitHub (search
) e que o objeto participation
contenha uma entidade da API do GitHub (stats/participation
).
Ajustes manuais de acordo com os KPIs "soft" (consulte Forças) podem ser feitos conforme necessário.
Contexto Resultante
Os contribuidores têm a liberdade de dedicar parte do seu tempo a projetos InnerSource. Eles podem optar por contribuir para um projeto do qual dependem para o trabalho em sua equipe regular. No entanto, também podem escolher contribuir para algo completamente diferente, com base em seus interesses e objetivos de desenvolvimento pessoal.
Os projetos podem ser ordenados e apresentados de acordo com a pontuação de atividade do repositório, proporcionando uma ordem significativa em um portal que apresenta projetos a potenciais novos contribuidores. A pontuação pode ser calculada instantaneamente ou em um trabalho de fundo que avalia todos os projetos regularmente e armazena uma lista de resultados.
Um rastreador que pesquisa regularmente todos os repositórios InnerSource (por exemplo, marcados com um tópico específico no GitHub) também pode ser uma adição útil. Ele fornece uma lista classificada de projetos que podem ser usados como entrada para ferramentas como o InnerSource Portal, um mecanismo de busca ou um bot de chat interativo.
Justificativa
A pontuação de atividade do repositório é um cálculo simples baseado na API do GitHub. Pode ser totalmente automatizada e facilmente adaptada a novos requisitos.
Instâncias Conhecidas
Usado no portal de projetos InnerSource da SAP para definir a ordem padrão dos projetos InnerSource. Foi criado pela primeira vez em julho de 2020 e vem sendo ajustado e atualizado com frequência desde então. Quando proposto para o InnerSourceCommons em julho de 2020, este padrão emergiu. Veja também Michael Graf & Harish B (SAP) em ISC.S11 - O Caminho Inesperado da Aplicação de Padrões InnerSource.
Estado
Structured
Autores
Reconhecimento
Um agradecimento à comunidade InnerSource Commons por fornecer conselhos extremamente rápidos e muitas contribuições úteis para enriquecer este padrão! Em especial:
Johannes Tigges
Sebastian Spier
Maximilian Capraro
Tim Yao
Histórico de Tradução
2023-08-20 - Tradução Eneri Junior
2023-08-20 - Tradução Humberto Zilio
Last updated