-
Notifications
You must be signed in to change notification settings - Fork 12
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
[SDL 0234] Proxy Library RPC Generation #2
Comments
Greetings library maintainers, We've started work on SDL-0234. To prepare the technical specification, here are some questions for you:
|
@vladmu Regarding questions 1 and 5, these will have to be included in the Evolution Proposal and voted upon by the Steering Committee. We would suggest leaving these comments on the revisions proposal currently under review: smartdevicelink/sdl_evolution#853. We will respond to questions 2, 3, and 4 soon. |
@theresalech Any ETA responses to questions 2,3, and 4? Thank you |
2. If you look at the response that was created in the project and compare it to the RPC spec you can clearly see it has no additional params beyond that of every response. Therefore, there is nothing but the constructor. If a response has additional params outside the ones contained for every response obviously they need to have getters and setters just like they do in the request and notification classes. |
2 . Thank you for the clarification, we already caught this logic before your answer, but till we read the source code of the RPCResponse class, it was not clear that "success", "resultCode" and "info" properties always present in all responses. That's why the next question (point 3) was asked about the source and the specification of core classes. 3 . The question is not in the generation or required changes of core classes but the correct extending them by generated classes (e.g., a case from point 2). Thus the specification or understanding which classes from what library are references for the current realization of the core classes could immensely help us in the creation of a generator. We understand that the work with those core classes is still in progress, so the question is still open, and if you could point us at least to references of the base classes, it would be useful, meantime the specification is better of course. If the core classes are fully done, just confirm that, and we will base our work on their source code without additional questions. 4 . From your answer, we understand that the test coverage of the classes, produced by the generator, is the one point of DoD, and without that coverage by unit tests, the RPC generator task could not be accepted as done? Please confirm that. It sounds like we won't test functionality starts from preparing and sending RPC requests and receiving RPC responses. Do we correctly understand that if we could make sure by unit tests the produced RPC class prepares the correct internal JSON structure by getters and setters, it would be enough? And the follow-up question regarding the test framework we should use for that test coverage. Seems it would be correct if the whole library follows the one tool, but currently we don't see any existing coverage or tools selected for unit tests in the repository. Do you have a selected test framework or we could propose? What is the correct way to put the test framework into the library, I mean the workflow? Should it be a separate |
@theresalech Please review above comments and provide any additional information. Thanks. |
Please try to understand we are answering these questions as soon as we can. If Ford has any insight to help with their contribution that would be great as well! 2. 👍 |
@joeygrover thank you for answers, only point 4 is not fully clear, did you mean the scope of the generator proposal or library itself? Should or should not unit tests of the generated code be included as "Definition of Done" for the RPC generator script work. This is important because the volume of work is different depends on the answer. And we want to be sure the maintainer's expectation is fully covered before provide you the PR with the generator code. As I said we didn't find any testing tools or coverage in the |
The proposal itself does not contain any language about creating unit tests or a testing platform. It should be a question added to the currently in review revisions. The SDLC should decide if they think the output should also include the unit test. |
I think that unit tests are necessary for ensuring the code quality of the scripts. These unit tests could test the scripts output to ensure the code produced is as expected. I don't think that unit test code should be produced with the actual RPC classes unless we extend the RPC classes but as suggested we can talk in the next SDLC meeting. |
@joeygrover we have found the usage of the new method
CC: @kshala-ford @TinaKleczka @joeljfischer @nickschwab |
|
@joeygrover thank you for the quick reply, the summarizing based on this: 1,2,3 - We will continue to follow the existing code in the |
Proposal markdown file has been updated per the revisions included in accepted Evolution Proposal SDL 0234 Revisions - Proxy Library RPC Generation. Please reference issue and proposal markdown file for more details. |
…-RPC-Generation #2 [SDL-0234] Proxy Library RPC Generation
…sdlmanager * commit 'd89dcd4f82820b4444397f921214fed3c4752342': Add generated files and update the library and example apps updating .eslintrc applying changes requested in review handle exeption in xsd resolving issue with GenericResponseResponce Trailing spaces not allowed in RpcCreator updating auto-tests adding RpcCreator.js: year in Copyright adding RpcCreator processing Minor fix of customization spec Added `Custom mapping` section into README.md improve manual mapping Fixed typo 'decription'->'description' minor chnages after code review align with rpc_spec align changes from parser rpc_spec refactoring according to comments in pull/202 Pointed `lib/rpc_spec` submodule to the personal fork for testing purposes #2 [SDL-0234] Proxy Library RPC Generation # Conflicts: # lib/js/dist/SDL.js # lib/node/dist/index.js # rollup.config.js
@crokita @nickschwab based on this comment the branch of |
@crokita @nickschwab @vladmu I would recommend two PRs. The first PR should point to the develop branch of the RPC spec so that we can continue development accurately. The second PR should point to the master branch and before we release this library we should merge that after we merge the RPC spec develop branch into master. |
@joeygrover Are there required additional issues to be created here before creating PRs? Could I do it by myself? |
@vladmu for this specific item I don't think we have to create issues. Once the PRs are created I can add them to the 1.0 project on GitHub. |
@vladmu
There are additional requirements specific to the JS suite library, noted below:
|
Proposal markdown file has been updated per the revisions included in accepted Evolution Proposal SDL 0234 Revisions - Proxy Library RPC Generation. The revisions include adding a rule that takes into account a set of keywords that currently exist in any of the three client side libraries (iOS, Java Suite, and JavaScript suite), and avoiding creating method signatures that collide. Please reference the issue and proposal markdown file for more details. |
Proposal: SDL 0234 - Proxy Library RPC Generation
smartdevicelink/sdl_evolution#741
Steering Committee Decision:
Revisions were made on 2019-06-10
The text was updated successfully, but these errors were encountered: