12 ポイント 投稿者 GN⁺ 2026-01-03 | 3件のコメント | WhatsAppで共有
  • Ghosttyリポジトリでは、ユーザーが直接Issueを作成できず、まずGitHubのDiscussionsで議論を開始する必要がある
  • プロジェクトでは、バグや機能要望の議論にIssueトラッカーを使用せず、すべての議論はDiscussionsで行われる
  • 議論が十分に具体化され、実行可能な項目として整理されると、管理者がそれをIssueに変換する
  • この方式は、メンテナーとコントリビューターが実際に作業可能なIssueを素早く見つけられるよう支援する仕組みである
  • 報告の大半が、ユーザー環境の問題や誤解、未実装機能の要望であるため、この手順はプロジェクトの品質管理において重要である

Issue作成制限ポリシー

  • Ghosttyリポジトリでは、ユーザーが直接Issueを作成できない
    • その代わり、まずGitHubのDiscussionsで問題や提案を共有する必要がある
    • 管理者が議論を確認し、明確に再現可能な問題だと判断した場合にIssueへ変換する
  • この方式は、Issueトラッカーに実際に作業可能な項目だけを含めた状態に保つための仕組みである
    • すべてのIssueがすでに具体化された状態にあるため、コントリビューターはすぐに作業を始められる

Issueトラッカー運用原則

  • Ghosttyは、Issueトラッカーを議論や機能要望のためには使用しない
    • 機能要望や一般的な質問はDiscussionsで扱う
    • Issueには、明確に定義されたバグや実行可能な作業項目だけを含める
  • このアプローチは、オープンソースプロジェクトの保守経験に基づいて形成された運用原則である
    • 過去の経験では、ユーザー報告の80〜90%は実際のバグではなく、誤解や環境の問題だった
    • 残りの大半は未実装機能の要望であり、追加の仕様策定が必要な場合が多かった

メンテナンス効率の向上

  • Discussionsの段階を経ることで、メンテナーは検証済みの問題だけをIssueとして管理できる
    • 不要な重複報告や誤ったバグレポートを減らせる
    • Issue一覧がすぐに着手可能な項目中心に整理される
  • ユーザーは、有効な問題を見つけても追加作業をする必要がない
    • 管理者が直接Issueへ変換して対応する

参考文書

  • 詳しい手順とコントリビューション指針はCONTRIBUTING.mdファイルで確認できる
  • 該当文書には、Discussionsへの参加方法とIssue変換の基準が明記されている

3件のコメント

 
GN⁺ 2026-01-03
Hacker Newsの意見
  • 100%同意。他人のプロジェクトであれば、Issueとして扱うかどうかの判断権限は全面的にその人にある
    大きなプロジェクトほど、メッセージを読まない人、妙な要求をする人、さらにはAIでCVEを水増しするケースまで出てくる

    • エラーメッセージを読まない人たちは本当に理解できない
      ユーザーがエラーの意味を知らなくても、最低限どんなエラーが出たかは伝えるべきだ
      以前テスト時に「broken pipe error」と明記したのに、エンジニアが「再現不可」として閉じ、その同じエラーを理由に再現できないと言っていたのを覚えている
    • Github Issuesにはバグトラッカーとして限界がある
      ほとんどのトラッカーは「unconfirmed」のような状態で分類できるが、Githubは単純な議論システムなので管理が難しい
    • ChatGPT公開直後にCVEレポートを受け取ったことがある
      4時間かけてコードと根拠を示して反論したのに、返ってきた答えは「shrugs AI」だった
    • 多くのユーザーはツールの正確な使い方を身につける時間もなく結果だけを求める
      「Facebookization」によって数回クリックすれば全部済むという認識が生まれ、今は「LLMization」によってそれがさらにひどくなりそうだ
      専門的なソフトウェアにはこうしたアプローチは適していないが、期待値はすでにそのように形成されている
    • 良いIssueトラッカーなら、こうしたノイズをふるい落とす機能があるべきだ
      Ghosttyが議論を通じてリクエストを分類するのはユニークだが有効なアプローチだ
  • メモリリーク調査が複数のプラットフォームに散らばっている
    Xリンク1, Xリンク2, 議論1, 議論2
    まだ正式なIssueには昇格していない

    • メモリリークのせいでGhosttyの使用をやめた
      8GBのシステムでもターミナルを数回起動しただけでメモリ不足になった
      Footは機能は少ないが、はるかに安定していた
    • 最初のリンクによれば、投稿者はこの問題が2回しか報告されていないと言っている
      2つ目のリンクは単なる論争の試みに見える
    • 私もこの問題を議論に報告したが反応はなかった
      Claude Codeとログを分析して暫定的に修正したところ、今では10回に1回しか再現しない
      誰かが追加調査するときの助けになればと思う
    • GPU互換性も厄介だ
      統合GPUでも問題が起きるのに、いつもGTKかNvidiaのせいにされる
    • コントリビューターたちはまだ明確な再現条件が足りないと判断して、Issueに上げていないようだ
  • 「Issues」と「Discussions」の区別は非効率的だと思う
    重複検索が必要だし、チケットの移動もできない
    メールでフォローアップすると通知が途切れてしまう
    だから自分のプロジェクトではDiscussionsを無効にしている

    • Discussionsは単純な質問やインストール問題を投稿できる場として有用だ
      本物のバグならその時点でIssueに変換すればいい
    • こうしたプロセスはラベルシステムでも実現できる
      管理者が「bug」ラベルを付ければ十分だ
    • 重複チェックは不要だ
      議論が整理された段階でIssueを作成すればいいのだから
    • 実際、Issueと議論は相互変換できる
      通知も維持される
    • Ghosttyの構造のように、Discussionsは誰でも開けて、Issuesは管理者が管理する方式は合理的な分離だと思う
  • Pythonコミュニティの一部の大規模プロジェクトもこうした方式を使っている
    ただ、パワーユーザーの立場からするとバグ報告の過程が煩雑
    「うちのプロジェクトは完璧だ」と言わんばかりの態度が傲慢に感じられる

    • こうした不満は理解しにくい
      たいていの通りすがりのバグ報告は役に立たず、むしろノイズだ
      本当に貢献したいなら、すでに定義されたバグを修正する方がよい
    • 傲慢だって? むしろ彼らは無償で時間と労力を投じている人たちだ
      報告方法に制限を設けるのは当然だ
    • そんなに頻繁にバグを見つけるなら、プロジェクトに直接参加してみるのもよさそうだ
    • 逆に、自分が「これは明白なバグだ」と確信すること自体が一種の傲慢かもしれない
    • 議論を開く方がIssueを開くより面倒なのか? よく分からない
  • 「すべてのIssueは作業準備完了の状態であるべきだ」という主張に対して、
    「それなら『ready-to-be-worked-on』タグを付ければいいのでは?」という質問が出た

    • しかしGithubはデフォルトビューを「triage」に設定できず、大規模プロジェクトではIssue管理が非効率的
      このシステムの方がはるかに成功していた
    • タグ方式では何度もフィードバックラウンドが必要になり、詳細情報がコメントに散らばる
    • 誰でもコメントできるようにすると不要な雑音が生まれる
      だから開発者専用の空間とユーザー空間を分けたのだ
    • 誤ったIssueは閉じても再オープンされるので、結局Issue一覧が手に負えなくなる
    • 他人のワークフローに「なぜ自分のやり方の方が良いのか」と押し付ける必要はない
  • Issuesは規模が大きくなると管理不能になる
    Discussionsをフィルターとして使うのが効率的だ

    • ただ結局、メンテナーはすべての投稿を読んで分類しなければならないので、作業量は似たようなもの
      Githubの2つの機能はUIがほぼ同じだ
      ただしDiscussionsにはアップボート機能がある
    • 「すべてのIssueを2週間後に自動で閉じればもっと効率的では?」という皮肉な反応もあった
    • Curlのような大規模プロジェクトでもオープンIssueは5件しかない
      curl/curl/issues
  • この方式をデフォルト設定にすべきだという意見もある
    コミュニティが議論を、コントリビューターがIssueを担当する構造が理想的だ

    • しかしこれは単なるプロセスの再配置にすぎず、本質は同じだ
      GitHubのラベルシステムでも十分に処理できる
      GitHubラベル管理ドキュメント
    • 「デフォルト」を決めるより、各プロジェクトが自然な実験のように試行しながら合う方式を見つける方がよい
      Natural experimentのようなものだ
  • ユーザー投稿ポリシーには同意する
    閉じられた議論を見ると閉じられたIssueと似ているが、少なくともIssueタブのノイズは減る
    Ghosttyの閉じられた議論一覧

    • すべてのユーザー報告は議論から始まり、実際のバグと確認されればIssueに移される
      多くの議論はその段階まで進まないが、ユーザーの問題は解決される
      この分離構造はかなり賢い設計だと思う
  • 実際には「Issueを開けない」というのはGitHubの機能ではなく、
    「新しいIssueを開かずDiscussionsを使ってほしい」というテンプレートの案内文にすぎない

  • 他のプロジェクトでもこうした方式を見たことがあるが、
    議論を出発点にする構造はかなり合理的に見える
    ただし多くのプロジェクトはまだGitHub Discussionsを有効化していない

 
iolothebard 2026-01-03

そのディスカッションは、Issueと何が違うのでしょうか? Issueは「バグ」だけではありません。バグでも、機能提案でも、PRでも……議論する価値のある話題ならIssueです。
議論する価値がないなら、閉じればいいのです。

 
nemorize 2026-01-09

ディスカッションとIssueに違いがあるからではなく、単に別々のタブに分かれているほうが好みに合っていたのでしょう。

Issueタブに一種のToDoリストとディスカッションの両方を投稿し、それをタグで管理するのか、
vs
IssueタブはToDoリスト専用、ディスカッションはディスカッション専用として使うのか