Skip to content
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

#203 SDL-0234 Proxy Library RPC Generation #202

Merged
merged 26 commits into from Feb 5, 2020
Merged

#203 SDL-0234 Proxy Library RPC Generation #202

merged 26 commits into from Feb 5, 2020

Conversation

vladmu
Copy link
Contributor

@vladmu vladmu commented Oct 29, 2019

Fixes #203

This PR is [ready] for review.

Risk

This PR makes [no] API changes.

Testing Plan

Covered within existing unit tests.

Summary

  • Added reverse-engineered MOBILE_API.xsd
  • Moved XML Parser named InterfaceParserfrom InterfaceGenerator of smartdevicelink/sdl_core
  • Refactored InterfaceParser to be more readable by splitting classes into separate files
  • Refactored InterfaceParser to be compatible with Python 3.5
  • Added README.md with the base XML structure description into InterfaceParser
  • Refactored Markdown Generator to use InterfaceParser and be compatible with Python 3.5

CLA

  * Added reverse-engineered [MOBILE_API.xsd](MOBILE_API.xsd)
  * Moved XML Parser named [InterfaceParser](InterfaceParser) from [InterfaceGenerator of smartdevicelink/sdl_core](smartdevicelink/sdl_core/tools/InterfaceGenerator)
  * Refactored [InterfaceParser](InterfaceParser) to be more readable by splitting classes into separate files
  * Refactored [InterfaceParser](InterfaceParser) to be compatible with Python 3.5
  * Added README.md with the base XML structure description into [InterfaceParser](InterfaceParser)
  * Refactored Markdown Generator to use [InterfaceParser](InterfaceParser) and be compatible with Python 3.5
@vladmu vladmu changed the title Reverse engineer XSD from MOBILE_API.xml #203 SDL-0234 Proxy Library RPC Generation Jan 13, 2020
@vladmu
Copy link
Contributor Author

vladmu commented Jan 13, 2020

@joeljfischer @joeygrover @theresalech this PR is ready for review. Please take your attention that this PR blocks creating other PRs for RPC Generators because they require submodule linked to this Parser code before creation. So we hope for a quick review and feedback from you.
CC: @TinaKleczka @kshala-ford @a-prykho @o-mishch

@Jack-Byrne
Copy link
Collaborator

Jack-Byrne commented Jan 14, 2020

@vladmu Why is the review of this PR blocking the other project RPC Generators? Is it not possible to specify a branch for the submodule? Or could you target your fork for the submodules? I would like to see the generator code work with at least one of the platforms before approving this pr.

@vladmu
Copy link
Contributor Author

vladmu commented Jan 14, 2020

@vladmu Why is the review of this PR blocking the other project RPC Generators? Is it not possible to specify a branch for the submodule? Or could you target your fork for the submodules? I would like to see the generator code work with at least one of the platforms before approving this pr.

@JackLivio

I'm not sure it is a good idea to point the submodule to another personal fork, e.g., to point my fork of sdl_javascript_suite to this PR's fork. In the end, JS should point to the production branch, and the wrong pointer could be accidentally merged after the review is approved. Due to this reason, you could see here, I've pointed sdl_javascript_suite submodule to current master branch of this repository instead of my personal fork.

I suppose at the current stage for testing purposes, It is simplest just to clone this code manually on a testing machine into the corresponding folder of the required platform, e.g., lib/rpc_spec folder of sdl_javascript_suite, and check the correct work of the generator. Additionally, you could check the markdown generator to be sure the XML parsed correctly. And finally, you could check the old InterfaceGenerator in the sdl_core, the PR will be provided shortly.

But if you are rather willing me to point the submodule into the personal fork, I can do that, but we need to keep in mind to change the pointer after the review approval before merging.

Please write the best way for you. Thank you.

@Jack-Byrne
Copy link
Collaborator

But if you are rather willing me to point the submodule into the personal fork, I can do that, but we need to keep in mind to change the pointer after the review approval before merging.

I am sorry but this is the option I prefer. I can leave a code/review comment on the javascript suite generator pr that the submodule must be changed to this repository before merging.

After my code review of this pr and after I can confirm this feature works with 1 of the platforms (javascript), I will merge this pr and change the submodule in the javascript pr. Once the submodule is changed, I will mark my comment as resolved.

@vladmu
Copy link
Contributor Author

vladmu commented Jan 15, 2020

point the submodule into the personal fork

@JackLivio done in this commit

@Jack-Byrne
Copy link
Collaborator

@o-mishch We would appreciate if developers did not force push to a PR that is in review. Force pushing makes it difficult to review a PR because we cannot tell what was changed since the last commit. In general, please do not rebase and do not force push against the SDL repositories.

@Jack-Byrne
Copy link
Collaborator

Very good! Thank you @vladmu and @o-mishch very much for working with me on this PR!

@Jack-Byrne
Copy link
Collaborator

Conducting final testing for one of the other generator platforms before merging.

@vladmu
Copy link
Contributor Author

vladmu commented Jan 22, 2020

@JackLivio we appreciate your assistance here and would recommend to select the Javascript platform generator for the review and testing. We will be glad to concentrate our efforts for the finalizing both PRs.

@vladmu
Copy link
Contributor Author

vladmu commented Feb 3, 2020

@JackLivio the Proxy library RPC generator of JS suite is merged by @crokita. The JS suite lib/rpc_spec submodule is pointing to the master branch of this repository, which does not contain yet the code of new XML parser. It seems we reach the conducting final testing for one of the other generator platforms before merging. Is this PR ready to merge now?

@Jack-Byrne Jack-Byrne changed the base branch from master to develop February 5, 2020 20:07
@Jack-Byrne Jack-Byrne merged commit bf14662 into smartdevicelink:develop Feb 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[SDL 0234] Proxy Library RPC Generation
5 participants