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

SDK - support of API versions #2

Closed
nirfeldman opened this issue Jan 14, 2016 · 5 comments
Closed

SDK - support of API versions #2

nirfeldman opened this issue Jan 14, 2016 · 5 comments

Comments

@nirfeldman
Copy link

Although it seems like it is designed for supporting multiple versions of the API I see few issues:

  1. Technical - the current APIContext Constructor that accepts a version is protected and only the default which is defined in the config is available (it's 2.5 for now).
  2. Conceptual - Versions has breaking changes. We have been writing internally an "SDK" (a bit less generic and holds only the API calls we are using) for a long time. The best way to do it is by providing a package name with the version main.java.....sdk.2-5. Once you have a new version you start with copying it and adding a new package ... skd-2.6 and then you update according to the breaking changes.
    This way a client of the library is really able to choose which versions to use, you can maintain one master branch supporting few versions in parallel and once a version is deprecated, you delete the package.

Hope this makes sense
@christinelu FYI

@nirfeldman
Copy link
Author

@christinelu , @JiamingFB - you might see this as an enhancement - I see this as a blocker.
Since working side by side with a toggle is our way of working and developing / upgrading without this support we will not adopt this library.

@nirfeldman
Copy link
Author

Hi
Do you plan to do anything regarding this?

@JiamingFB
Copy link
Contributor

Hi Nirfeldman,

In the version just released, you can specify API version when calling constructor of APIContext.

The limitation is that the SDK code reflects only the fields/params/enums in current version. If you want to set a param/field which only exists in older version, you can refer to the README.md “Customisation and debugging” section for missing params/fields.

@nirfeldman
Copy link
Author

Got you:
I suggest you take it to the next level and move to a version management (using maven central repository or another repository).
This way you can manage the versions (as there are 3 versions live most of the time) - you will need to support defects / issues with all live version and this is the way to do it.

@codytwinton
Copy link

It seems like this issue has been open for more than a few months now. We have made many changes in the SDK since then, including releasing a new version. If you can repro your specific issue with the latest version of the SDK, please create a new issue or comment here with further details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants
@nirfeldman @codytwinton @JiamingFB and others