Reputação

Fica a conhecer o sistema de reputação.


A reputação é o sistema que permite às pessoas adquirir «confiança» dentro do ecossistema do Exercism.

A reputação é uma medida daquilo que uma pessoa contribuiu para o Exercism, tanto através da contribuição para a plataforma (por exemplo, através da criação de software, exercícios e documentação) como da contribuição para a comunidade (por exemplo, mentoria).

A reputação não pode ser «gasta» nem «utilizada». No entanto, atingir determinados limiares de reputação dá acesso a novos privilégios e formas de contribuir. Simplificando, quanto mais reputação tem uma pessoa, mais sentimos que podemos confiar nela e, por isso, mais poder recebe. A reputação é também uma medida visível publicamente daquilo que deste ao Exercism.

Objetivo

O objetivo do sistema de reputação é:

  1. Maximizar as interações centradas no crescimento entre estudantes e mentores
  2. Maximizar a vontade de os mentores contribuírem

Como se adquire reputação

A reputação pode ser adquirida de várias formas:

Ação Reputação
Dar mentoria a uma solução com sucesso 5
Publicar uma solução 1-3
Escrever um exercício 20
Atualizar um exercício 10
Escrever um conceito 10
Atualizar um conceito 5
Criar um pull request 3-100
Rever um pull request 1-20
Fazer merge de um pull request 1-5

Mentoria a uma solução com sucesso

Por cada solução em que a mentoria foi concluída com sucesso (a discussão foi dada como terminada), são atribuídos 5 de reputação.

Publicar uma solução

Por cada solução publicada, a reputação é atribuída em função da dificuldade do exercício:

Etiqueta Reputação
easy 1
medium 2
hard 3

Escrever um exercício

Por cada exercício em que o utilizador consta como autor, são atribuídos 20 de reputação.

Atualizar um exercício

Por cada exercício em que o utilizador consta como contribuidor, são atribuídos 10 de reputação.

Escrever um conceito

Por cada conceito em que o utilizador consta como autor, são atribuídos 10 de reputação.

Atualizar um conceito

Por cada conceito em que o utilizador consta como contribuidor, são atribuídos 5 de reputação.

Criar um pull request

Por predefinição, são atribuídos 12 de reputação quando é feito o merge de um pull request que tenha sido aberto pelo utilizador.

Dependendo do conteúdo do pull request, um maintainer pode atribuir mais (ou menos) reputação acrescentando ao pull request uma das seguintes etiquetas:

Etiqueta Reputação Exemplos
x:rep/tiny 3
  • Corrigir um único erro tipográfico ou uma ligação
  • Remover uma linha em branco ou acrescentar uma mudança de linha
  • Alterar/acrescentar um único comentário de código
x:rep/small 5
  • Corrigir um único caso de teste, tarefa ou exemplo
  • Corrigir vários erros tipográficos ou ligações num único ficheiro
  • Clarificar conteúdo acrescentando algumas linhas a um ficheiro
x:rep/medium 12
  • Sincronizar um exercício com problem-specifications (incl. edições)
  • Acrescentar um ou mais casos de teste de raiz
  • Melhorar vários ficheiros de um exercício
  • Acrescentar notas de mentoria para um exercício de raiz
  • Corrigir um pequeno bug num test runner/analyzer/representer
  • Acrescentar comentários do analyzer para um único exercício
x:rep/large 30
  • Acrescentar um novo exercício de conceito ou de prática
  • Acrescentar nova documentação de conceitos
  • Reescrever substancialmente um conceito ou exercício existente
  • Acrescentar novos scripts de CI ou outra automatização
x:rep/massive 100
  • Criar um test runner, analyzer, representer ou gerador de raiz
  • Refatorações importantes dessas ferramentas
  • Criar documentação importante de raiz (por exemplo, guias de contribuição ou de testes)

Os exemplos acima podem servir de orientação aproximada sobre quando aplicar cada etiqueta, mas os maintainers são livres de usar o seu próprio critério.

  • O número estimado de tempo despendido deve ser interpretado como o tempo médio que um maintainer gastaria a fazer o PR.
  • Se for especificada mais de uma etiqueta, é a etiqueta com o valor de reputação mais alto que determina a reputação atribuída.
  • Se um pull request ainda estiver aberto, não é atribuída (ainda) qualquer reputação.
  • Se um pull request for fechado sem merge, não é atribuída qualquer reputação.

Por questões de compatibilidade retroativa, também suportamos a utilização das etiquetas x:size para determinar a reputação atribuída.

Rever um pull request

Por cada pull request com merge feito ou fechado que tenha sido revisto pelo utilizador, são atribuídos 5 de reputação.

  • Se um pull request ainda estiver aberto, não é atribuída (ainda) qualquer reputação.

  • A reputação por revisão só é atribuída uma vez por utilizador e por pull request.

  • O utilizador que abriu o pull request não recebe reputação por rever o seu próprio pull request.

  • A reputação atribuída pela revisão de um pull request muda se ao pull request for acrescentada uma das seguintes etiquetas:

    Etiqueta Reputação
    x:rep/tiny 1
    x:rep/small 2
    x:rep/medium 5
    x:rep/large 10
    x:rep/massive 20

    Não é possível usar «tamanhos» de reputação diferentes para o autor e o revisor de um pull request. Ambos se baseiam na mesma etiqueta x:rep.

    Se for especificada mais de uma etiqueta, é a etiqueta com o valor de reputação mais alto que determina a reputação atribuída.

    Por questões de compatibilidade retroativa, também suportamos a utilização das etiquetas x:size para determinar a reputação atribuída.

Fazer merge de um pull request

Por cada pull request a que o utilizador fez merge, é atribuído 1 de reputação.

  • Se um pull request ainda estiver aberto, não é atribuída (ainda) qualquer reputação.
  • Se um pull request for fechado sem merge, não é atribuída qualquer reputação.
  • O utilizador que abriu o pull request não recebe reputação por fazer merge do seu próprio pull request.
  • Se o pull request não tiver quaisquer revisões, são atribuídos 5 de reputação em vez disso.

Abrir uma issue

Tal como acontece com os pull requests, por predefinição não é atribuída qualquer reputação quando uma issue é aberta. Ao contrário dos pull requests, só se atribui reputação a issues grandes ou enormes.

Dependendo do conteúdo da issue, um maintainer pode optar por atribuir reputação acrescentando à issue uma das seguintes etiquetas:

Etiqueta Reputação Exemplos
x:rep/large 30
  • Exercício de conceito completamente desenvolvido
x:rep/massive 100
  • Conceber o currículo de um percurso

Os exemplos acima podem servir de orientação aproximada sobre quando aplicar cada etiqueta, mas os maintainers são livres de usar o seu próprio critério.

  • A reputação deve refletir o esforço que um maintainer gastaria a criar a issue.

  • Se for especificada mais de uma etiqueta, é a etiqueta com o valor de reputação mais alto que determina a reputação atribuída.