-
Notifications
You must be signed in to change notification settings - Fork 18
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
Make C2A command sender optional #619
Conversation
コマンドセンダーは既にさまざまな設定でdisableできると思います。
その二つがあれば、S2Eの他のコンポーネントと同様に「そのコンポを動かすかはユーザー側で決めることができる」という状態を保てるので、本改修は必要ないように思います。 もしくは、全てのコンポーネントについて「CMakeでON/OFFするようにする」というような方針にしたいということなのかもしれませんが、それは議論が必要になるかなと思います。 |
いえ,この改修は C2A とのインターフェースを明示的に定義するために必要なものです. また,この機能は実装時にも experimental な機能であるという扱いをする,ということで合意しているはずで,それを明示したいという意図もあります. |
「この機能をリンクしたくない」というのはcommand_senderが使われていなくても、クラスや関数として存在しているのが困るということでしょうか?それは「別途実装している機能」となにかしらの名前が被っていてリンクエラーなどがでたりするので、困るということなのでしょうか?具体的な状況を教えてもらえると嬉しいです。 experimentalな機能であるという合意は、「使いたくないユーザーはs2e-userでこのコンポを搭載コンポとして定義しなくて良い」という部分で担保されていると思っています。(実験的なので、全ユーザーが使う必要はない) |
(別途実装していて云々,はやや別の話なので,少なくとも初めに挙げる例としては悪かったです.すみません.) experimental な機能である,というのは,S2E user にとって,というだけでなく,C2A にとって,という部分も含んでいます.少なくとも c2a-core メンテナとしてのお願いとしてはこちらの方がメインでした.これは,この機能・実装をサポートし続けるために C2A が特別の対応をする必要は無いものとしたい,という意図になります. そのため,SILS-S2E のビルドが(この機能のためだけに)通らなくなるがために C2A(概ね c2a-core)の構造を変えられない,ということは(少なくともまだ)許容できません.なのでこの機能・実装が使えなくなるような変更が(一時的にでも)発生する可能性は非常に多くあります. 例えば,なんらかの機能的な変更でなくとも, |
また,c2a-core 側でもこの機能をビルド対象から外したいです.この機能をわざわざ動かなくしたいという意図があるわけではないので,当然できるだけこの機能が新しいバージョンの C2A でも動き続けられるように,S2E へのサポートはしていくつもり(ex: #610 )ですが,これはあくまで S2E に対する(人間的な)サポートであって,C2A(c2a-core)からのサポート(絶対に維持しなければならない技術的要件)ではないです. |
最も分かりやすいところでいうと,今まさに c2a-core の更新で困っています.この機能が明示的に OFF にできれば,
というようなフローを踏めるようになります. |
C2A側でS2EのC2A関連コードとの互換が保てない修正が入った時に、C2A側のCIが回らなくなるのが困るということだと理解しました。
というような感じだったと思います。
|
追加で質問ですがこれはC2A側としては修正を急いでいて、修正したらv7.3.0などをリリースしてC2A側でもCIでそれを使いたいかんじでしょうか? |
CI に限らずですが,そうです > C2A側でS2EのC2A関連コードとの互換が保てない修正が入った時に、C2A側のCIが回らなくなるのが困る はい. |
C2A 側としては,arkedge/c2a-core#310 の変更を次のバージョンで入れたいが,この変更のために(一時的に)SILS-S2E ができないリリースを行うことを許容するべきなのか?という判断を迫られている,というのが現状です.なので,このパッチがマージできると SILS-S2E が可能なまま(一時的に,特定のバージョン以前の S2E と特定のバージョン以降の C2A でのみ C2A command sender feature だけが動かなくなるタイミングが発生するものの)リリースが行えるようになります. |
#610 に関しては,上記の互換性・リリースに関する問題が不透明であるのと,C2A 側の変更もまだ確定しているわけではないので止めている,という状態です |
マージ、およびminor updateでリリースして良いとは思っていますので、レビューを進めたいと思います。 |
あ、すみません。すでにdevにMajor update要素が入っているので、リリースはできませんね。 |
これはこのパッチを今マージしても,(このパッチ自体は minor update だが)それが使えるようになるのは直近の major update 後になる,という意味ですか?であれば OK です > リリースはできません これはどういうことでしょう?GNSS 関連のものをこの機能を使ってテストしている C2A user などがあるとこのパッチのマージ後に困ることがある,ということですか? > C2A側で使っているuser部がGNSSとかを使っているなら、このPRマージ後のdevを使おうとするとエラーなど出る可能性 |
そうなります。
パッチがmainではなく、developに当てられているので、GNSSの修正が含まれます。 |
これは,今 develop branch にマージされている(GNSS 関連の?)S2E 側ないしその新しい S2E 側のコードの挙動に依存した C2A user(存在不明)で,この PR をマージすることによって困ることがある,というように読み取れうるので,そんなことがあるのか?という質問だったのですが,そんなことがあるわけではなく,あくまで今 develop branch で major update を行っているので,今の develop branch のコードを使っている user があったら何も保証しようがないよね,というようなことですか?もしそのような意図であれば,それはそう以外のことはないです. > このパッチのマージ後に困ることがある これは,この PR の base branch を main branch に差し替えて patch update とするのもよいのではないか,という提案ですか?もしそうであれば,それは非常にありがたいので,そのようにさせてもらえると助かります. > パッチが main に当てられるなら |
そうです。 |
main をbase branch にして v7 に対するパッチアップデートにする,ということであれば可能である,ということだと読み取ったので,パッチをそのように修正しようと思います.それでよろしいですか? |
6d3d6d5
to
cc892a4
Compare
cc892a4
to
44c9351
Compare
修正前がmainから分岐しているならそれで問題ないと思います。今はdevから分岐してこの修正を行なっていると思うので、それでは想定と違うかなと思います。 |
PR の base branch を |
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.
ありがとうございます。この修正で問題ないと思います。
Related Issue / PR
Description
C2A command sender feature was implemented by #485.
However, this feature is still experimental & optional.
To make this explicit, this patch split C2A command sender feature with CMake option and turned off by default.
Impact
USE_C2A_COMMAND_SENDER
USE_C2A_COMMAND_SENDER
default off