nikkie-ftnextの日記

イベントレポートや読書メモを発信

メンテナ記:なにもしていないのにSpeechRecognitionの .github/ISSUE_TEMPLATE.md が適用されなくなりました

はじめに

壊れてしまった特別な真理子 nikkieです。

イシューテンプレートを設定したリポジトリで、「New issue」にテンプレートが適用されなくなっていました1
直した方法を記します。

目次

.github/ISSUE_TEMPLATE.md は古いやり方だったらしい

.github/ISSUE_TEMPLATE.mdを置けるようになったのはどうやら2016年。

  • ISSUE_TEMPLATEというファイルが(.githubディレクトリ下に限らず、リポジトリの中に)置いてあればよい
  • 拡張子.mdもなくてよい(=オプショナル)

現行のドキュメントにて、これはレガシーワークフローと呼ばれます

2018年にはISSUE_TEMPLATEディレクトをサポート。
複数のテンプレートを置けるようになりました。

このたび直面した事象は、ISSUE_TEMPLATE.md(ファイル)で置いた単一テンプレートが適用されなくなるもののようです(直したので記憶頼みの記述)

修正方法

  1. .github/ISSUE_TEMPLATE.md.github/ISSUE_TEMPLATE/issue_template.mdのように配置変更
    • 複数のテンプレートを置けるようにして、単一テンプレートを置いています
    • YAML front matterを記載(後述)
  2. .github/ISSUE_TEMPLATE/config.ymlも配置

SpeechRecognitionの例

.github/ISSUE_TEMPLATE/issue_template.mdに配置替え

Issue テンプレートを追加する」の前後を参照

例にあった.github/ISSUE_TEMPLATE/issue_template.mdという命名を採用しました。

これはMarkdownファイルなので、YAML front matterとして必須な以下2つを記載

YAML frontmatter で有効な name: と about: キー (.md ファイルで定義されている issue テンプレートの場合) (引用ママ)

これでテンプレートを選べるようになるので、適用されない状態は解消します。

.github/ISSUE_TEMPLATE/config.ymlを追加

ISSUE_TEMPLATEディレクトリ導入後は、テンプレートを適用したissueかblank issueかの選択ができてしまいます。
blank issueを作れないように設定します

テンプレート選択画面を設定する」参照

false に blank_issues_enabled を設定して、コントリビューターに Issue テンプレートの使用を促すことができます。(引用ママ)

blank_issues_enabled: false

これにより「New issue」から、単一のテンプレートを適用した状態になりました。
復活です🎉

この設定値は2019年に導入されたようでした。

もしかすると、.github/ISSUE_TEMPLATE.mdのままでも直せるかも

記事にしていて気づきました。
テンプレート選択画面を設定する(リポジトリ用に Issue テンプレートを設定する)」より

従来のワークフローを使って .github フォルダーに issue_template.md ファイルを手動で作成し、config.yml ファイルで空の issue を有効にした場合は、空の issue を開くことを選択すると issue_template.md のテンプレートが使用されます。

(手元で確認できていませんが、).github/config.ymlを以下の内容で置くだけでも適用されるようになるのかもしれません
(ただしconfig.ymlの配置場所はあまり自信なし。試行錯誤必要そう)

blank_issues_enabled: true

続きを読むと

空白の Issue を無効にすると、テンプレートは使用されません。

今回の事象は.github/config.ymlを置いていないために、blank_issues_enabled: falseと扱われて、.github/ISSUE_TEMPLATE.mdが適用されなくなったということなのかも

終わりに

私は何もしていないですが、GitHubがissueテンプレートの扱いを変えたようで、.github/ISSUE_TEMPLATE.mdが適用されなくなっていました。
対応としては、複数のissueテンプレートが置けるように.github/ISSUE_TEMPLATEディレクトリを導入し、以下の2つのファイルを置いています

  • .github/ISSUE_TEMPLATE/issue_template.md(元のISSUE_TEMPLATE.mdを移動し、YAML front matterを追加)
  • .github/ISSUE_TEMPLATE/config.yml(内容はblank_issues_enabled: falseのみ)

複数のissueテンプレートはかなり前からサポートされていただけに、今回の事象が乗り換える機会として働いたのは結果オーライかもしれません。

同様の問題が発生していた、Python公式ドキュメント日本語翻訳リポジトリにプルリクエストを送っています。


  1. 私はissueのプレビュー機能を有効にしているのですが、これが関係するのかは切り分けられていません