- No repositório do Ghostty, os usuários não podem criar Issues diretamente e devem primeiro iniciar a discussão no GitHub Discussions
- O projeto não usa o rastreador de Issues para discutir bugs ou pedidos de funcionalidade, e todas as discussões acontecem no Discussions
- Quando a discussão fica suficientemente específica e organizada como um item acionável, um mantenedor a converte em Issue
- Esse modelo ajuda mantenedores e contribuidores a encontrar rapidamente issues em que realmente é possível trabalhar
- Como a maioria dos relatos é, na prática, problema de ambiente do usuário, mal-entendido ou pedido de recurso ainda não implementado, esse procedimento é importante para o controle de qualidade do projeto
Política de restrição na criação de Issues
- No repositório do Ghostty, os usuários não podem criar Issues diretamente
- Em vez disso, devem primeiro compartilhar o problema ou a sugestão no GitHub Discussions
- Depois que um mantenedor analisa a discussão e confirma que se trata de um problema claramente reproduzível, ele a converte em Issue
- Esse modelo existe para manter o rastreador de Issues contendo apenas itens realmente acionáveis
- Como todas as Issues já chegam com escopo bem definido, os contribuidores podem começar a trabalhar imediatamente
Princípios de operação do rastreador de Issues
- O Ghostty não usa o rastreador de Issues para discussões nem para pedidos de funcionalidade
- Pedidos de funcionalidade e perguntas gerais são tratados no Discussions
- As Issues contêm apenas bugs claramente definidos ou itens de trabalho acionáveis
- Essa abordagem é um princípio operacional formado com base na experiência de manutenção de projetos open source
- Pela experiência anterior, 80% a 90% dos relatos de usuários não eram bugs reais, mas mal-entendidos ou problemas de ambiente
- A maior parte do restante era de pedidos de funcionalidade ainda não implementados, que muitas vezes exigiam especificações adicionais
Melhoria da eficiência de manutenção
- Ao passar pela etapa de Discussions, os mantenedores conseguem gerenciar como Issues apenas problemas já validados
- Isso reduz relatos duplicados desnecessários ou bug reports incorretos
- A lista de Issues fica organizada em torno de itens em que já é possível trabalhar imediatamente
- O usuário não precisa fazer trabalho extra mesmo quando encontra um problema válido
- O mantenedor faz a conversão direta para Issue e segue com o tratamento
Documentação de referência
- O procedimento detalhado e as diretrizes de contribuição podem ser consultados no arquivo CONTRIBUTING.md
- O documento especifica como participar do Discussions e quais são os critérios para conversão em Issue
3 comentários
Opiniões no Hacker News
Concordo 100%. Se for o projeto de outra pessoa, a autoridade para decidir o que é issue pertence inteiramente a ela
Quanto maior o projeto, mais aparecem pessoas que não leem as mensagens, fazem pedidos estranhos e até casos de inflar CVEs com IA
Mesmo que o usuário não saiba o significado do erro, pelo menos precisa dizer qual erro apareceu
Lembro de um caso em que, durante um teste, eu informei explicitamente “broken pipe error”, mas o engenheiro fechou como “não reproduzível” e depois disse que não conseguia reproduzir justamente por causa do mesmo erro
A maioria dos trackers permite classificar com estados como “unconfirmed”, mas o Github é um sistema de discussão simples, então fica difícil de gerenciar
Passei 4 horas refutando com código e evidências, e a resposta que voltou foi “shrugs AI”
A “Facebookization” criou a percepção de que tudo se resolve com alguns cliques, e agora a “LLMization” parece que vai piorar isso ainda mais
Esse tipo de abordagem não combina com software profissional, mas a expectativa já foi moldada assim
O fato de o Ghostty classificar pedidos por meio de discussões é uma abordagem diferente, mas válida
A investigação do vazamento de memória está espalhada por várias plataformas
Link X 1, Link X 2, Discussão 1, Discussão 2
Ainda não foi promovida a issue oficial
Mesmo em um sistema com 8 GB, bastava abrir o terminal algumas vezes para faltar memória
O Foot tem menos recursos, mas era muito mais estável
O segundo link parece apenas uma tentativa de provocar discussão
Analisei os logs com Claude Code e corrigi provisoriamente; agora só consigo reproduzir em 1 de cada 10 vezes
Espero que isso ajude quando alguém investigar mais a fundo
Há problemas até com GPU integrada, mas sempre colocam a culpa no GTK ou na Nvidia
Acho ineficiente a separação entre “Issues” e “Discussions”
É preciso fazer buscas duplicadas, e não dá para mover tickets
Se fizer follow-up por e-mail, as notificações se perdem
Por isso desativei Discussions no meu projeto
Se for um bug de verdade, aí pode virar issue
Basta o administrador aplicar a label “bug”
Quando a discussão estiver organizada, aí se cria a issue
As notificações também são mantidas
Alguns grandes projetos da comunidade Python também usam esse método
Mas, do ponto de vista de usuários avançados, o processo de reportar bugs é incômodo
A postura de “nosso projeto é perfeito” soa arrogante
A maioria dos drive-by bug reports não serve para nada e só gera ruído
Se a intenção é realmente contribuir, é melhor corrigir bugs já definidos
É natural impor limites sobre como os relatórios devem ser feitos
Sobre a afirmação de que toda issue deve estar pronta para ser trabalhada,
surgiu a pergunta: “então por que não colocar uma tag ‘ready-to-be-worked-on’?”
Esse sistema foi muito mais bem-sucedido
Por isso separaram o espaço dos desenvolvedores e o espaço dos usuários
Issues ficam impossíveis de gerenciar quando a escala cresce
Usar Discussions como filtro é eficiente
As duas funções do Github têm praticamente a mesma interface
Só que Discussions tem recurso de upvote
curl/curl/issues
Há também quem diga que esse modelo deveria ser o padrão
O ideal seria uma estrutura em que a comunidade cuida das discussões e os contribuidores cuidam das issues
O sistema de labels do GitHub já dá conta disso
Documentação de gerenciamento de labels do GitHub
Como em um Natural experiment
Concordo com a política de submissões de usuários
Quando se olha as discussões fechadas, parece parecido com issues fechadas, mas pelo menos o ruído na aba de issues diminui
Lista de discussões fechadas do Ghostty
Muitas discussões não chegam a esse estágio, mas os problemas dos usuários são resolvidos
Acho essa estrutura de separação um design bem inteligente
Na verdade, “não poder abrir issue” não é um recurso do GitHub,
mas apenas uma mensagem de template dizendo “não abra uma nova issue; use Discussions”
Já vi esse método em outros projetos,
e essa estrutura que usa discussões como ponto de partida parece bastante razoável
Só que muitos projetos ainda não ativaram o GitHub Discussions
Qual é a diferença entre essa discussão e uma issue? Issue não é sinônimo de “bug”. Seja bug, sugestão de funcionalidade ou PR... se há algo a ser discutido, então é uma issue.
Se não vale a pena discutir, basta fechar.
Não é porque discussions e issues sejam diferentes, mas provavelmente porque separar em abas diferentes era simplesmente mais do gosto deles.
Postar na aba de issues tanto uma espécie de lista de tarefas quanto discussions, e gerenciar isso com tags
vs
usar a aba de issues apenas como lista de tarefas, e discussions apenas como discussions