MakotoKurauchi/helix

clean-up firmware build variation

Closed this issue · 8 comments

mtei commented

去年10月の MakotoKurauchi/qmk_firmware#20 で、Helix のファームウェアのビルド時の指定オプションが、ビルド結果のバイナリファイル名に反映するようにしました。
半年近く運用してみての経験に基づいて、今後どうしたほうがより良いのか再検討を要すると思われます。

mtei commented

現状どうなっているか

以下のようになっています。

% 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
mtei commented

上のリストをみやすく整理すると

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
mtei commented

変更案その1

split_common を指定するバリエーションは実験的意味合いが強いですし、将来 split_common に完全移行したとしら、その時には指定することの意味を失うので今キーボードリストに現れる必要はないのかもしれません。

qmk configurator 上では、split_common 使用の指定はできなくして、コマンドラインからのビルドの場合のみ、以下のように指定できればいいのかもしれません。

$ make HELIX=sc helix:keymap_name

そうすると、リストに現れるバリエーションが一気に半減します。

mtei commented

変更案その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 入り)
mtei commented

変更案その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が出てこない形が良いのではないかと思います。

mtei commented

ご要望の通り、split_common を現れない形で変更をやったのですが、作業中に一つ気がついたことがあります。

qmk_firmware では、プルリクがなされると、チェックの一環として全キーボードの default キーマップのビルドが行われます。
もし、Helix の split_common の実装を見えなくしてしまうとこのチェックが行われなくなります。

split_commonの実装が満足なものになった暁には、Helix も移行することになると思うのですが、そうなるまでの間に split_commonにHelixでコンパイルできない変更を入れて欲しくはないのでチェックを有効にする為、split_common をリストに現れるようにしておいたほうが良いと思います。

いかがでしょうか。

なるほど。
それではsplit_commonも入れましょう。