-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move check coding rule setting file to C2A user top #97
Conversation
user/settings/ or user/script/ などではなくトップがいい理由ってなんでしたっけ? |
トップディレクトリがごちゃごちゃになるのは僕もそんなに好きではないですが,今よりははるかにマシ,という気持ちです |
であれば,
で比較かなと思いますが,その中でトップディレクトリ選んだのはなぜです?(個人的には 2. でよくない?とおもったり) |
|
7df0715
to
68f1dbb
Compare
68f1dbb
to
24301d4
Compare
普通のフォーマッタに期待したい挙動としては
だと思うので(この想定が標準的ではない,もしくは現状の運用と著しく異なりナンセンス,などのツッコミはあると思います),そこと衝突しそうなところについて質問します.
|
ファイル探索範囲のルートディレクトリと「標準化」については関連はするものの別種の要求となります. 前者については,これはそもそも repository root のような定まったディレクトリではなく,strict にはあくまで(文字通り)指定された設定ファイルのある場所以下になります.つまり, この時,実行時の CWD に関する要求は特にしていません.これにより,例えば今までできなかった cd <c2a-user>
cd src/src_user
# なんらかの作業
python ../src_core/script/ci/check_coding_rule.py ../../check_coding_rule.json のような動作が可能になります.まあこれは少し面倒なのであんまりやらない操作だとは思いますが,このように実行したとしても非自明な結果(なにもチェックできていなかった,など)にならない,ということをこの変更では重視しています. また, 固定的なディレクトリを対象にしなかったのは,少なくとも直近ではおそらくそれがワークしない(し,するように運用を変えるとしてもそれは v4.0.0 の後に実施すべきだと考えている)からです. 後者の「標準化」についてですが,これは「設定ファイルのあるディレクトリ以下でチェックする」という挙動の変更に合わせて,追加の要求(というか recommendation)として「設定ファイルを C2A user のトップディレクトリに置いてほしい」というお願いをしたい,というものです.このお願いの手段が release note や much more breaking にしてもいいのでは,については,ナシではないけれどそこまでメリットが無いかな,という認識です.例えばファイルを入力に取るようにする,などは clang-format のように動いてほしい,ということだと思うのですが,その場合は(まさに clang-format のように)1ファイルを対象にフォーマットを実施するコマンドと,そのコマンドをプロジェクトに対して走らせるスクリプト(find してループする,みたいなやつ)に実装を分割すべきだと思います.コマンドの入力の型が変わってしまうことになるので.そして,そのような改修を行う場合には,この変更の後に無痛で改修を実施できると思います(仮にやるとしても別 PR だし,ここでの方針を変えるようなものではない).というようなことは思うものの,1ファイルに対してこのチェックを走らせたいことがそこまであるかというとかなり疑問です.実際 clang-format の挙動は不便に感じたことの方が明らかに多いです. あと,CWD 以下を探索範囲にしてもよいのでは,というのも気持ちは分かるんですが,それをやるには無視したいファイルやディレクトリがありがちだし, |
まあ,走らせるのが面倒,に関しては npm script 経由にして |
あ,あと一番大きいのは |
諸々,了解です.
これは,src_user と src_core が別であること考えたらそうですね...(つい忘れがちになる) |
reviewdog のテストしとくか |
@@ -9,6 +9,7 @@ | |||
#ifdef DEFINE_MAIN_ON_SILS | |||
int main(void); | |||
#endif | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚫 [check_coding_rule] reported by reviewdog 🐶
ANY SPACE AT EOL NEEDS TO BE REMOVED
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK
This reverts commit 9422dba.
よさそう. |
workflows-c2a 側の対応をマージ・リリースしたので切り替えます |
@meltingrabbit 切り替えました.ちゃんと走ってるので approve 欲しいです |
概要
コーディングルールのスクリプトによるチェックを設定ファイル(
check_coding_rule.json
)があるディレクトリの配下に対して実施するように変更し,C2A user ではcheck_coding_rule.json
をトップディレクトリに置くように標準化します.これにより,
check_coding_rule.py
の挙動が CWD によって変化するという非常に confusing な事態の根本的な解決をします.Issue / PR
詳細
check_coding_rule.json
のc2a_root_dir
を廃止した.理由は以下のようにあまりにも confusing なためsrc/
のこと(であることを概ね期待している)src/src_user/script/ci/
からsrc/
への相対パスであるかのように予想されるがそんなことは一切なく,概ねsrc/src_core/script/ci
にcd
して実行されることを期待した上でその実行パスからの相対パスになっているcheck_coding_rule.py
を実行するようになったことでようやく発覚・顕在化したsrc/src_user
)と同じ場所であるscript/ci/
配下にcheck_coding_rule.json
が置かれていたが,ここではなぜかc2a_root_dir
の意味が変わっていた(おそらく example user のsrc
から実行することを期待している?)<c2a-core>/script/ci/check_coding_rule.json
を削除check_coding_rule.py
のファイル探索範囲をcheck_coding_rule.json
のあるディレクトリ以下に変更したcheck_coding_rule.json
を (c2a-core example user 含め)C2A user のトップディレクトリに置くように標準化するsrc/src_user/***
になるはず検証結果
workflows-c2a でのサポートは別途行うため,手元で
python script/ci/check_coding_rule.py examples/mobc/check_coding_rule.json
のように実行する影響範囲
補足