-
Notifications
You must be signed in to change notification settings - Fork 121
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
[Accepted with Revisions] Revise SDL-0305 Homogenize TextFieldName #1113
Comments
I'm not sure if this statement is correct neither is the original proposal correct in the statement regarding turnText. The text field There are only two options to proceed with this proposal: Option 1: Remove/not add Option 2: Remove Option 1 is the preferred solution because the latter causes an unnecessary deprecation issue to apps and the app, library and Core must deal with backwards compatibility. |
Hello @kshala-ford, thank you for your comment. The code you linked from SDL Core is the root of my misunderstanding and why this revision was created. It is not obvious, but the UpdateTurnList parameter MOBILE_API.xml
HMI_API.xml
Understanding these structures makes it easier to see what Core is actually doing in the code you linked: It is converting navigationText as a string parameter to a TextFieldStruct with TextFieldName This proposal with this revision would be very similar to your option 2: just add Please let me know if you have any questions. |
@iCollin thank you for your comment! I didn't look into the parameter type. I still believe the option 1 is the better way to go because of the naming in the APIs.
In the HMI_API a |
@kshala-ford I think there is still some misunderstanding with current state of SDL Core. Thank you for your comment. Currently when Core sends a turn list to the HMI it will be using the
I disagree, for the following reasons:
This isn't the case. Currently in the Mobile API
Currently Core is sending Does this help explain why I am proposing something more close to your Option 2? Please let me know if you have any more questions. |
I think that the best arguments for adding
I do think that the description should be something like: |
To maybe clear some confusion about usage in core, here is the snippet of |
I agree that by naming convention If you believe the new name is worth the effort and pain of deprecation then please make this clear in the proposal. Right now it's not clear in this point and I want to avoid the situation where the SDLC is called again for an emergency poll during development asking if a major version bump is accepted. Both, Mobile and HMI API do not include Adding @iCollin @joeljfischer are not considering the impact to the APIs when changing the name. You need to see both APIs and the Core implementation separately. Core's implementation sending I would appreciate if the author and the PM describes the required proposal revisions for the following items:
|
The Steering Committee voted to keep these proposed revisions in review on 2021-01-19 to allow for conversation to continue on the open items. |
@kshala-ford First, please note that altering HMI_API, even in a breaking manner, does not change the versioning of Core. This has already been decided and agreed upon by the steering committee in previous releases. Second, because this
This is untrue. Search |
@joeljfischer I know the existance of <struct name="Turn">
<param name="navigationText" type="Common.TextFieldStruct" mandatory="false">
<description>Uses navigationText from TextFieldStruct.</description>
</param>
<param name="turnIcon" type="Common.Image" mandatory="false">
</param>
</struct> Also I never said it changes the versioning of Core. I never mentioned to bump up the Core version. However the HMI API change to rename navigationText to turnText is a breaking change for us when upgrading Core to a version that implements this proposal. |
|
Can you elaborate which HMI you mean? Adding
How do you know that? Why should the developer do that? Common practice for developers is to fill out the desired parameters in RPCs and send them. The managers in the libraries started the consideration of the capabilities. The developer were never required to listen to the capabilities to know which text fields are supported. This is a thing added far later by the PM. I don't disagree with the additional capability checks. I want to say that apps exist setting navigationText according to the description in the mobile API <param name="navigationText" type="String" maxlength="500" mandatory="false">
<description>Individual turn text. Must provide at least text or icon for a given turn.</description>
</param>
I already described this in my comments twice. To be clear, this renaming is undocumented and should not have happened.
Whatever the field is called within the TextFieldStruct, it must be listed in TextFieldName. Core sets it to "turnText" but according to the APIs it should be "navigationText". See HMI API: <param name="navigationText" type="Common.TextFieldStruct" mandatory="false">
<description>Uses navigationText from TextFieldStruct.</description>
</param> If your plan is to keep the Struct parameter to be
I think you have to blame beyond that date because this commit isn't changing the logic of the lines in question. Honestly, I am not looking to blame who wrote this code. I wouldn't make assumptions on how a CR was implemented. Note the XML comment
So the alternative is to add |
Yes, that is the idea, we don't intend to change any names. Good point that the behavior should be made clear in the HMI integration guidelines.
Core is following the spec and setting the parameter name to
|
That's absolutely correct. The specific text field capabilities can be missing but permission to the RPC is known. Also API descriptions say that at least one field must be used. Your statement is no evidence that the field is not used by any application. Check out the mobile API parameter description.
Again, I totally get that. But according to the API it shouldn't be the case. Check out the description. <param name="navigationText" type="Common.TextFieldStruct" mandatory="false">
<description>Uses navigationText from TextFieldStruct.</description>
</param> The original intention of the proposal is to make sure the APIs match how they should be matching. Now we know the current implementation is different and we must workaround the fact with tricks to overcome versioning and compatibility problems. I don't think the proposal or the revision is transparent enough to understand the real impact to existing code. All your workarounds would work but I don't believe this is a clean and solid work API if we hide turnText in navigationText and bend practice of field naming for any need. It's one thing to use |
Good point, the Which part of this proposal are you seeing as a workaround?
The current behavior is not ideal, but that behavior is not part of this proposal and has existed in SDL Core for years. This proposal is just to add missing text field names to the Mobile API and then to align the two enums. Is the concern that people have modified SDL Core to use |
Since some time has passed and no response has been given on the last comment, the Project Maintainer requests the Steering Committee moves to vote on this proposal as the changes impact the April 14, 2021 releases. It is requested that the proposed revisions to SDL 0305 are accepted with the below revisions: 1. Keep the 2. Update the HMI API description for |
The Steering Committee voted on 2021-01-26 to accept this revised proposal with the revisions summarized in this comment. |
@iCollin please advise when a new PR has been entered to update the proposal to reflect the agreed-upon revisions. I'll then merge the PR so the proposal is up to date, and comment on the already created issues for the impacted repositories. Thanks! |
The proposal has been updated based on the Steering Committee's agreed-upon revisions. Comments have been left on implementation issues to reference revisions: |
Hello SDL community,
The review of "Revise SDL-0305 Homogenize TextFieldName" began on January 12, 2021, and continues through January 26, 2021.
This will be a review of proposed revisions to a previously accepted but not yet implemented proposal, SDL 0305.
The pull request outlining the revisions under review is available here:
#1109
Reviews are an important part of the SDL evolution process. All reviews should be sent to the associated Github issue at:
#1113
What goes into a review?
The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of SDL. When writing your review, here are some questions you might want to answer in your review:
Please state explicitly whether you believe that the proposal should be accepted into SDL.
More information about the SDL evolution process is available at
https://github.com/smartdevicelink/sdl_evolution/blob/master/process.md
Thank you,
Jordyn Mackool
Program Manager - Livio
jordyn@livio.io
The text was updated successfully, but these errors were encountered: