reown-com / a2

An Asynchronous Apple Push Notification (apns2) Client for Rust
MIT License
151 stars 53 forks source link

Release a2 to the crates.io #17

Closed pimeys closed 6 years ago

pimeys commented 6 years ago

Opening an issue for this. We're pending on Hyper's version 0.12, that should contain the h2 support. @seanmonstar was talking about a release on next week, so this is sooner I expected already.

We need some changes in this crate before it compiles against hyper 0.12, but nothing too serious now when hyper will still be in futures 0.1.

I would start versioning here from 0.2, because 0.1 was basically the now completely rewritten solicit-based apns2.

pimeys commented 6 years ago

https://github.com/hyperium/hyper/issues/1171#issuecomment-302173458

pimeys commented 6 years ago

Our chat with @seanmonstar last evening:

18:46:43 <~seanmonstar> oh_lawd: ive been rebase the http2 branch onto master (0.12)
18:47:11 <~seanmonstar> if i changed the branch, would that blow up your stuff?
18:58:52 <oh_lawd> no I'll fix my stuff immediately
19:00:18 <~seanmonstar> the one tricky part is the pool. the design in the original branch was total crap, and even now, a proper fix requires rethinking it
19:00:47 <~seanmonstar> (i'd fire the guy who wrote the original if i could find him :thinking:)
19:04:25 <oh_lawd> hehe, I know what you mean it being a bit crappy
19:04:32 <oh_lawd> I've read the code
19:04:41 <oh_lawd> fire the guy.. 
19:04:44 <~seanmonstar> its just hacks on hacks
19:05:29 <~seanmonstar> i'd like to design a proper generic Pool over `T: NewService`... we could use one in conduit also...
19:06:27 <oh_lawd> so deploying the 0.12 to production requires some testing I guess:)
19:07:09 <~seanmonstar> true, and its not ready yet, but its getting close!

What this means is hyper's h2 branch will be merged to master soon, and the upcoming 0.12 API has changed so we must do some changes here too. Also the pool will work differently, which might introduce some new bugs so testing is mandatory. I'll start upgrading a2 as soon as hyper is merged, so anybody using this crate will get compiler errors when upgrading the crates. Soon we'll be stable 0.2 and in crates.io!

Hox @dbrgn

pimeys commented 6 years ago

First breaking change is going to be merged to master. The connection handling in Hyper has changed dramatically and now we don't need to pass Handle everywhere in a2. It's also recommended to start using tokio instead of deprecated tokio_core, examples are updated in the pull request:

https://github.com/pimeys/a2/pull/22

pimeys commented 6 years ago

https://crates.io/crates/a2