🤔
task で悩ましいところ
tl;dr
- task を書いていて悩ましいところをメモがてら(スクラップで書けよ)
- task のあれこれを書こうと思ってたんだけど間に合わなかったので先にこっち
悩ましい(?)ところ
呼び方
- コマンド名は
task
なわけだけど、brew では Taskwarrior とバッティングしてる -
task
,taskfile
,taskfile.dev
,go-task
のうちどれで呼ぶか - zenn の topics にどれをつけるかとも同義
サポートファイル名は読み込み優先度順に読み込まれて見つかったらそれを使う
- Usage | Task
- サポートファイル名として読み込み順序があるだけで、最初に見つけたやつが使われる
- マージしてくれると楽かなって思ってるんだけど、今は自分で全部 include することで機能別にファイルを分割していて問題ないので多分今後も変わらない
- 別途記事にしようと思ってるけど使い分けにコツがある
TASK
変数は実行中のタスク名が入るので、自分の名前しか持っていない
- Variable for parent task names · Issue #1227 · go-task/task
- 関連する課題に
deps
は実行タスクの前に実行されるのでTASK
変数には値が入らない、がある - タスクの先頭で現在のステータスをスタックするとかしたらいいのかも
- タスクの親子関係やチェインを表現できないのがいまいち(変数に自分でスタックする以外にない)
スタイルガイドに沿ったリンターが必要
- feat: add linting and/or formatting check adherence to style guide conventions · Issue #265 · go-task/task
- まだ当分先になりそう
- Taskfile.yml のスタイルガイドに沿ったテンプレート
- YAML としてのリンティングはできても、taskfile としてはできないので、目視チェックしかないの、よくミスる
- VS Code では YAML ファイルと認識させておいて、先頭に schema を置けばある程度は処理できる
# yaml-language-server: $schema=https://taskfile.dev/schema.json
- スキーマはリンターじゃねぇよ
変数名の大文字はバッティングする
- スタイルガイドでは変数名は大文字を使用することになっている
- システムの変数は
SCREAMING_SNAKE_CASE
が使われているので、合わせるのがいいと思っているんだけど、ついバッティングさせてしまう - 前述のとおりリンティングされないので、なんかおかしいと思ったら命名がかぶっているっていうね。もうね。
- 自前の変数はアンダーバー始まり(よくあるプライベート変数の命名規則)や
MY_
等のプレフィックスをつけることで対応している
まとめ
- 個人でいじってると個人の能力の範疇を超えられない
- 使い方が偏るので課題も偏っちゃう
- 公式以外で相談するところないのつらい
Discussion