Executando verificação de segurança...
15

Procuro Opiniões: Como fazer "core committers" do TabNews ganharem TabCoins?

Isto é uma pergunta que já me fiz várias vezes e não consigo chegar numa conclusão de como fazer isso da melhor forma, então gostaria de convidar todo mundo para tentarmos chegar numa proposta, pois acredito ser algo muito importante que é: pessoas que estão contribuindo no repositório do TabNews também ganharem TabCoins.

Então seguindo o princípio da publicação TabCoins retroativamente preenchidas e com um bônus de 10 TabCoins, como podemos retroativamente avaliar o histórico de contribuições no repositório e transferir TabCoins para as pessoas que contribuíram? As pessoas que estão nos bastidores (que na sua maioria não criam publicações aqui) também precisam ter um peso considerável no Revenue Share (caso essa pessoa também passe pelo fluxo completo de contribuição, como todo mundo, coletando o TabCash).

Alguém tem alguma idéia ou sugestão de como fazer isso? Sigo com várias dúvidas:

  1. Como correlacionar o usuário do GitHub com o usuário do TabNews?
  2. Como fazer tudo isso automaticamente tanto de forma retroativa quanto recorrente?
  3. Qual valor de TabCoins a ser transferido?
  4. O valor de TabCoins irá variar conforme a contribuição? Se sim, o que considerar?
  5. Se o valor de TabCoins não variar, isso pode incentivar ruído e desincentivar contribuições longas e complexas?

Seja como for, na próxima Milestone quando implementarmos o Revenue Share, é mais do que justo estas pessoas terem relevância nesta participação 🤝

Qualquer sugestão sobre os pontos levantados acima (ou outros pontos), não hesite em responder essa publicação. Qualquer idéia será bem vinda 👍

Carregando publicação patrocinada...
9
  1. Como correlacionar o usuário do GitHub com o usuário do TabNews?

OAuth do GitHub.

  1. Qual valor de TabCoins a ser transferido?
  2. O valor de TabCoins irá variar conforme a contribuição? Se sim, o que considerar?
  3. Se o valor de TabCoins não variar, isso pode incentivar ruído e desincentivar contribuições longas e complexas?

Criar uma publicação no TabNews para cada merge. Incluir na publicação os dados do PR (ou dados resumidos).

Deixar os usuários do TabNews votarem na contribuição da mesma forma que votam nos demais conteúdos. Então esses TabCoins vão para o autor do PR. Assim são os usuários que vão definir o valor de cada contribuição e isso não irá depender de quantidade de commits, linhas de código etc.

  1. Como fazer tudo isso automaticamente tanto de forma retroativa quanto recorrente?

Preciso pensar mais sobre os retroativos.

Para os futuros, baseado na sugestão do KaioPiola, criar um Actions, acionado para cada merge, que cria a publicação no TabNews. Ainda preciso pensar melhor os prós e contras da publicação ser criada em nome do autor do PR ou por um usuário padrão do TabNews.

3

Uma sugestão talvez seja unificar semanalmente todas melhorias em um único post como é feito manualmente hoje pelo @filipedeschamps de forma automatizada, cada contribuição seria um comentário já vinculado ao usuário, assim as pessoas poderiam "votar" direto em cada contribuição.

2

O OAuth foi muito bem votado e é uma solução muito massa de fato!

Sobre criar uma publicação automática em nome da pessoa, meu medo é que seja uma publicação fria e muito técnica. Por outro lado, se deixar na mão da pessoa criar a publicação, é mais trabalho extra para ela. De qualquer forma, deixar as pessoas adicionarem mais TabCoins foi sensacional!!! Hoje só eu estou ganhando os TabCoins pelas publicações de Novas Melhorias, é um trabalho do cão formatar tudo aquilo e tem seu valor, mas me deixa muito desconfortável o autor da alteração não ganhar TabCoins.

Em paralelo, eu ainda continuaria a considerar o sistema também dar TabCoins para não contar apenas com a movimentação delas através das qualificações. Deveria ter uma baseline.

Viajando aqui na ideia: considerar que em todo merge de PR é feito uma publicação que possui automaticamente 10 TabCoins e cabe a comunidade achar que isso já está justo ou adicionar e debitar TabCoins conforme a percepção de valor. Porque com isso o autor inicialmente ganha TabCoins sem precisar ter tirado de ninguém, pois é um valor concreto que veio por mexer no core do projeto.

2

meu medo é que seja uma publicação fria e muito técnica.

Isso é um dos prós da publicação ficar em nome do usuário autor do PR ao invés de um usuário padrão do TabNews. Pois, estando em nome dele, o usuário poderá editar a publicação se achar necessário dar algum contexto melhor dentro do TabNews.

Deveria ter uma baseline.

Sim, concordo totalmente! Acho que pode valer a mesma regra dos conteúdos. Hoje está um valor fixo, mas devemos migrar o valor inicial para algo dinâmico, baseado nas qualificações anteriores do mesmo autor.

Porque com isso o autor inicialmente ganha TabCoins sem precisar ter tirado de ninguém, pois é um valor concreto que veio por mexer no core do projeto.

É isso aí!

6

O GitHub possui uma solução de automação chamada GitHub actions, onde você define um gatilho (por exemplo, rodar após uma Pull Request), e uma ação (Por exemplo abrir uma URL específica do site para adição de Tabcoins eu acho).
Eu não sei se é possível pegar o nome do usuaŕio nessas ações, tão pouco como relacionar eles aqui no site, talvez colocar um tipo de vinculação de conta com a conta do Github nas opções.

Outra solução seria talvez listar um raw de todos os commits feitos no projeto, pegando o nome do usuário e o ID do commit pra salvar em banco e não repetir, e distribuir X Tabcoins por cada commit aceito no projeto final pro usuaŕio.

Anexo de Links de referência:

Actions - Run on Pull Request

GitHub Workflow Syntax for Github Actions - GitHub Docs

2
3

Exato!!!

Pela manhã inclusive encontrei um item no marketplace do GitHub para enviar requisições HTTP como ação do Actions após identificar um gatilho, segue link:

https://github.com/marketplace/actions/web-request-action

Edit: Vi agora que dá até para usar variáveis de ambiente para performar uma identificação usando o formato Basic Auth e validar que é o próprio GitHub ou administrador com os acessos que está disparando aquela requisição, e não algum curioso com um POSTMAN buscando TabCoins fáceis!

5
  1. Como correlacionar o usuário do GitHub com o usuário do TabNews?

O GitHub tem OAuth, então acho que essa seria a forma mais facil de fazer e também a mais segura.

  1. Qual valor de TabCoins a ser transferido?

É uma boa pergunta, algo legal algo como 2 tabcoins a cada 1 commit.

  1. O valor de TabCoins irá variar conforme a contribuição? Se sim, o que considerar?

Uma coisa interessante é que contribuições mais "grandes" normalmente tem mais commits, então talvez não precissase variar.

E se fosse variar, eu não sei como seria medido o quão importante foi a contribuição de forma automatizada, provavelmente teria que fazer isso de forma manual

Se o valor de TabCoins não variar, isso pode incentivar ruído e desincentivar contribuições longas e complexas?

Talvez, como eu disse ali encima as 'contribuições longas e complexas' geralmente tem mais commits, então talvez isso não afetaria.

O unico problema com isso é se começarem a fazer varios commits apenas pra ganhar tabcoins, não sei como resolveria isso

1

3 pessoas sugeriram OAuth, o que de fato é uma excelente ideia! O PabloJuan255 deu a sugestão de sincronizar a conta aqui por dentro do TabNews mesmo para fazer esse vínculo, então cada user teria também uma nova propriedade apontando qual é o seu usueario no GitHub, muito massa!

Eu imagino que dar o incentivo de commits irá fazer de fato as pessoas criarem mais commits que antes não precisariam. Por outro lado, talvez isso possa ajudar em alguns casos em que tudo poderia ficar embolado.

Talvez a moderação possa acontecer lá no GitHub mesmo, olhando apenas para o PR da pessoa e avaliando se os commits que ela fez faz sentido ou está "inchado" artificialmente fazendo perder o sentido mesmo que não tenha o benefício das TabCoins.

2

3 pessoas sugeriram OAuth, o que de fato é uma excelente ideia! O PabloJuan255 deu a sugestão de sincronizar a conta aqui por dentro do TabNews mesmo para fazer esse vínculo, então cada user teria também uma nova propriedade apontando qual é o seu usuario no GitHub, muito massa!

Maravilha!
Também seria legal poder criar uma conta pelo OAuth e fazer login por ele.

Eu imagino que dar o incentivo de commits irá fazer de fato as pessoas criarem mais commits que antes não precisariam. Por outro lado, talvez isso possa ajudar em alguns casos em que tudo poderia ficar embolado.

Acho que um jeito de diminuir isso, seria contar as linhas de codigo ao invés da quantidade de commits.
De qualquer jeito, acho que não tem como fugir de uma moderação manual nesse caso.

4

Uma ideia para a primeira dúvida:

Na página de perfil, a gente coloca uma opção de "sincronizar" o usuário com um perfil do Github, o usuário fornece um username, e a gente confirma que ele é ele com o OAuth.

Agora, sobre o resto...

O melhor seria alguma moderação, talvez iria quebrar o conceito de ser um lugar simples na internet, mas automatizar seria muito vulnerável pois sem uma interpretação textual, só daria para considerar o tamanho.

A gente faz umas regras, como o que considerar, o impacto, se é eficaz e pronto.
Acho que dá para fazer algo tipo o reddit.

2

Muito interessante essa idéia de sincronizar o perfil através de OAuth, muito obrigado por registrar aqui 🤝

E concordo que automatizar seja vulnerável, a não ser que a gente escolha correr o risco de alguém abusar, mas daí ser pego numa moderação manual. Então podemos adotar a postura que confiamos na pessoa, até que ela prove o contrário.