ibm-bluemix-mobile-services / bluemix-simple-http-client-swift

SimpleHttpClient
Apache License 2.0
8 stars 14 forks source link

This project depends on KituraNet #26

Open ianpartridge opened 6 years ago

ianpartridge commented 6 years ago

Currently, this project depends on the KituraNet API for outbound HTTP requests. As far as I can tell, this is for historical reasons: the KituraNet API runs on libcurl and worked reliably on Linux back when URLSession on Linux didn't.

We intend to deprecate and remove the KituraNet API as there is no reason why it should provide an API for outbound HTTP requests now that URLSession on Linux is functional.

This issue is to discuss how to achieve that. Here are a few options:

  1. Change this repo so it uses RestKit instead
  2. Change this repo so it uses SwiftyRequest instead
  3. Change all the users of this repo so they use RestKit instead, and deprecate this repo
  4. Change all the users of this repo so they use SwiftyRequest instead, and deprecate this repo

My preference is for options 3 or 4, as I don't see why the users of this repo can't be updated to use one of the alternatives directly.

ianpartridge commented 6 years ago

@christiancompton @AnthonyOliveri @mamabusi @djones6

ianpartridge commented 6 years ago

If anyone knows which repos depend on this one, please comment. I am only aware of https://github.com/ibm-bluemix-mobile-services/bms-pushnotifications-serversdk-swift

AnthonyOliveri commented 6 years ago

I asked Anton about this repo awhile ago. He said it's up to you guys (Swift team) to decide if you want to keep it. I'm pretty sure that this can be deprecated, so option 3 or 4 is probably best.

@aal80 Do you know of any other projects that would be affected by this?

aal80 commented 6 years ago

These are all the references to this library on github.com, there might be others on GHE. https://github.com/search?q=bluemix-simple-http-client-swift&type=Code

ianpartridge commented 6 years ago

I thought of an option 5.

  1. Change this repo so it uses URLSession directly.

I kind of like that, what do you think @AnthonyOliveri @aal80 ?

AnthonyOliveri commented 6 years ago

That might be an easier solution, since there would be no need to coordinate updating the dependencies of several projects that depend on this. This is a fairly simple framework, and there is already some commented-out URLSession code that can be used as a starting point.

Once that's done, it's probably worthwhile to put a bold notice on the README that this repo is no longer being maintained, and URLSession should be used instead.

christiancompton commented 6 years ago

One of the biggest dependencies we own is the old Object Storage SDK:

https://github.com/ibm-bluemix-mobile-services/bluemix-objectstorage-serversdk-swift/blob/master/Package.swift

This is for a deprecated service - the new limited COS SDK should be released soon.

ianpartridge commented 6 years ago

Option 6.

  1. Change all the users of this repo (bms-pushnotifications-serversdk-swift and bluemix-objectstorage-serversdk-swift) to use URLSession directly, and deprecate this repo.

Thoughts?

AnthonyOliveri commented 6 years ago

@ianpartridge When you said that "we intend to deprecate and remove the KituraNet API", do you mean you will be deleting the repo too? If the repo is going to stay up, then I think the most practical solution would be to simply put a deprecation notice to the README in this SDK, and leave everything else alone. As long as KituraNet repo exists, then there should be no issue.