clean-up firmware build variation
Closed this issue · 8 comments
去年10月の MakotoKurauchi/qmk_firmware#20 で、Helix のファームウェアのビルド時の指定オプションが、ビルド結果のバイナリファイル名に反映するようにしました。
半年近く運用してみての経験に基づいて、今後どうしたほうがより良いのか再検討を要すると思われます。
現状どうなっているか
以下のようになっています。
% make list-keyboards | tr ' ' '\n' | grep helix
helix
helix/pico
helix/pico/back
helix/pico/sc
helix/pico/sc/back
helix/pico/sc/under
helix/pico/under
helix/rev1
helix/rev2
helix/rev2/back
helix/rev2/back/oled
helix/rev2/oled
helix/rev2/oled/back
helix/rev2/oled/under
helix/rev2/sc
helix/rev2/sc/back
helix/rev2/sc/oled
helix/rev2/sc/oledback
helix/rev2/sc/oledunder
helix/rev2/sc/under
helix/rev2/under
helix/rev2/under/oled
上のリストをみやすく整理すると
Helix のオリジナルコード
Helix alpha
- helix/rev1
Helix Pico
- helix/pico
- helix/pico/back
- helix/pico/under
Helix
- helix (=helix/rev2)
- helix/rev2/back
- helix/rev2/back/oled
- helix/rev2/under
- helix/rev2/under/oled
- helix/rev2/oled
- helix/rev2/oled/back (これは back/oled と重複しているので削除可能)
- helix/rev2/oled/under (これは under/oled と重複しているので削除可能)
split_common のコードを使ったバリエーション
split_common では、現状のオリジナルコードの機能の一部が実現できていませんが、ゆくゆくは移行を迫られそうです。
Helix Pico on split_common
- helix/pico/sc
- helix/pico/sc/back
- helix/pico/sc/under
Helix on split_common
- helix/rev2/sc
- helix/rev2/sc/back
- helix/rev2/sc/under
- helix/rev2/sc/oled
- helix/rev2/sc/oledback
- helix/rev2/sc/oledunder
変更案その1
split_common を指定するバリエーションは実験的意味合いが強いですし、将来 split_common に完全移行したとしら、その時には指定することの意味を失うので今キーボードリストに現れる必要はないのかもしれません。
qmk configurator 上では、split_common 使用の指定はできなくして、コマンドラインからのビルドの場合のみ、以下のように指定できればいいのかもしれません。
$ make HELIX=sc helix:keymap_name
そうすると、リストに現れるバリエーションが一気に半減します。
変更案その2
split_common の指定を少しだけのこす案もありえます。
split_common を指定した時は全部入り(back, oled) と割り切ってしまい以下のようにします。
Helix alpha
- helix/rev1
Helix Pico
- helix/pico
- helix/pico/back
- helix/pico/under
Helix
- helix (=helix/rev2)
- helix/rev2/back
- helix/rev2/back/oled
- helix/rev2/under
- helix/rev2/under/oled
- helix/rev2/oled
split_common のコードを使ったバリエーション
- helix/pico/split_common (back 入り)
- helix/rev2/split_common. (back, oled 入り)
変更案その3
上の案にさらに、現在の Helix キットに必ず OLED が同梱されていることを考慮して、OLED なしのバリエーションを省くと
Helix alpha
- helix/rev1
Helix Pico
- helix/pico
- helix/pico/back
- helix/pico/under
Helix
- helix (=helix/rev2) (oled付き)
- helix/rev2/back (oled付き)
- helix/rev2/under (oled付き)
split_common のコードを使ったバリエーション
- helix/pico/split_common (back 入り)
- helix/rev2/split_common. (back, oled 入り)
ご提案ありがとうございます。
たしかに現在は qmk configurator に多数のビルドが出てしまい、どれを選べが良いか分かりにくくなっています。
また、現在のところ split_common を使う必要が無いので出てこない方が良さそうです。
私としては変更案その3に加え、split_commonが出てこない形が良いのではないかと思います。
ご要望の通り、split_common を現れない形で変更をやったのですが、作業中に一つ気がついたことがあります。
qmk_firmware では、プルリクがなされると、チェックの一環として全キーボードの default キーマップのビルドが行われます。
もし、Helix の split_common の実装を見えなくしてしまうとこのチェックが行われなくなります。
split_commonの実装が満足なものになった暁には、Helix も移行することになると思うのですが、そうなるまでの間に split_commonにHelixでコンパイルできない変更を入れて欲しくはないのでチェックを有効にする為、split_common をリストに現れるようにしておいたほうが良いと思います。
いかがでしょうか。
なるほど。
それではsplit_commonも入れましょう。