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

Deprecating functions and params in the MOBILE_API #37

Closed
justinjdickow opened this issue Feb 20, 2015 · 2 comments
Closed

Deprecating functions and params in the MOBILE_API #37

justinjdickow opened this issue Feb 20, 2015 · 2 comments
Labels
proposal Accepted SDL Evolution Proposal

Comments

@justinjdickow
Copy link
Contributor

We should consider defining a way of deprecating the functions and parameters in MOBILE_API such that answers to questions like Mike's regarding the use of different parameter keys for OnSystemRequest are obvious. (If the V1 url and timeout parameter keys are still valid in the current version, they would be shown as deprecated, otherwise they would be removed)

@justinjdickow
Copy link
Contributor Author

After some internal discussion today

  • This issue should be moved to a new repository specifically for versioning the RPC specification
  • In order to properly maintain the RPC specification we should introduce three new fields.
    1. A Deprecation field to parameters and functions in the xml which denotes the version of the specification that the function or parameter was deprecated
    2. An Introduced which denotes the version of the specification that the function or parameter was introduced
    3. A Replaces field for if the new function or parameter replaces an existing one in new versions.

The following are two examples which enable better versioning using the above proposal.

Example 1

In previous versions of the MOBILE_API.xml specification the OnSystemRequest notification had a parameter called "URL", which at some point was changed to "url". Now, the mobile proxies have to support both fields, and make an assumption (because it is not officially documented) about the versions in which the parameter key was "URL". According to the above proposal the following would be valid and identify when the parameter was replaced, what it was replaced by, and what versions are supported.

<param name="URL" type="String" maxlength="1000" minsize="1" maxsize"100" array="true" mandatory="false" deprecated="2.0"></param>
<param name="url" type="String" maxlength="1000" minsize="1" maxsize="100" array="true" mandatory="false" replaces="URL" introduced="2.0"></param>

Example 2

If the key is not changed, but a field such as maxlength is changed, the parameter is deprecated, a new parameter is introduced with the same name, and the assumption is that it replaces the deprecated parameter. In this case, the replaces field is redundant and can be excluded.

<param name="url" type="String" maxlength="1000" minsize="1" maxsize"100" array="true" mandatory="false" deprecated="2.0"></param>
<param name="url" type="String" maxlength="256" minsize="1" maxsize="100" array="true" mandatory="false" introduced="2.0"></param>

dev-gh pushed a commit to dev-gh/sdl_core that referenced this issue Jun 7, 2016
…utils-tests

Fix utils issues found by unit tests
Related-issues: APPLINK-22713, APPLINK-22716
LuxoftAKutsan pushed a commit that referenced this issue Feb 23, 2017
@jacobkeeler jacobkeeler added the proposal Accepted SDL Evolution Proposal label Apr 18, 2017
@Jack-Byrne
Copy link
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal Accepted SDL Evolution Proposal
Projects
None yet
Development

No branches or pull requests

3 participants