Skip to content
This repository has been archived by the owner on Jun 6, 2023. It is now read-only.

Releases: RobotsAndPencils/buford

nervous nightingale

11 Oct 23:23
Compare
Choose a tag to compare
  • Add apns-push-type header (Type) #96
  • Go modules

mulling mandrill

04 Feb 16:26
Compare
Choose a tag to compare
  • Support for grouping notifications with thread-id #95

leaping leopard

29 Jul 18:00
Compare
Choose a tag to compare

push

Ensure all responses are handled -- not just received.

When using a Queue to push notifications concurrently, previous versions had an internal WaitGroup that ensured all responses were sent (and therefore received) before closing channels and shutting down workers.

The problem was a program could terminate after the last response was sent but before it was finished being processed. To remedy this situation, you are now responsible for maintaining a WaitGroup in the calling code. The queue.Wait() method has been replaced with queue.Close() which should only be called after all responses are handled.

See the README for further details.

(thanks to @roma86 for reporting the issue, #74)

kind koala

15 Jul 15:55
Compare
Choose a tag to compare

push

  • revise handling of GOAWAY errors from Apple so that timeouts work again #73 (thanks to @leopay for reporting the issue)

jolly jellyfish

29 Jun 22:48
Compare
Choose a tag to compare

Improve handling of error responses from Apple.

push

Be sure to go get -u golang.org/x/net/http2 for these improvements.

impatient iguana

16 Jun 23:11
Compare
Choose a tag to compare

Adds new fields for use with the iOS 10 beta.

push

  • Add CollapseID header for Notification Management introduced in iOS 10 (#62). You can update a notification by using the same CollapseID as a previous notification. See the Introduction to Notifications session for more.
  • Check payload size before hitting Apple's APN server (#67). This saves on making a request, but reports the same error message.

payload

happy hamster

14 Jun 22:42
Compare
Choose a tag to compare

push

  • API: Close responses channel when done (#58)
  • Add Hosts for port 2197 (#53)

generous gopher

10 Jun 20:38
Compare
Choose a tag to compare

Concurrent notification sending and a few more API changes.

❯ ./concurrent -c cert.p12 -d {device-token} -n 1000

Time for 1000 notifications: 5.073446529s (5.073446ms ea.)

push

  • Send multiple notifications concurrently with Queue. See the README and example/concurrent/ (#54)
  • Export NewClient again, as it was in v0.4.x, modify the NewService API.
    • This is more flexible and easier to use from tests.
  • Removed the JSON marshalling version of Push and renamed PushBytes to Push.
    • Having queue.Push return errors both before/after queueing felt awkward.
    • Just use json.Marshal instead. This helps clarify that payloads can be serialized once and reused.

This release also contains updates to documentation and examples.

furious flamingo

09 Jun 15:29
Compare
Choose a tag to compare

push

  • Revert some changes made in v0.5.0. #50
    • Headers has a Topic field again, allowing it to be set on a per-notification basis.
    • Remove automatic topic extraction from NewService.

certificate

  • TopicFromCert function extracts Topic for use in Headers. #51

executive elephant

07 Jun 00:03
Compare
Choose a tag to compare

This release contains a significant number of API changes across the following packages.

push

  • NewService API replaces NewClient. #47
    • Topic has moved from Headers to Service and is extracted automatically by NewService (see #22)
  • revise error responses to include HTTP Status code and Reason from Apple #46
  • decode response JSON as a stream #43

certificate

  • Load/Decode now return a tls.Certificate instead of a x509.Certificate and PrivateKey. This matches the behaviour of tls.LoadX509KeyPair from the standard library, except operating on *.p12 files instead of *.pem. #47

pushpackage

  • Sign now accepts a tls.Certificate instead of a x509.Certificate and rsa.PrivateKey, though note that the key must still be an RSA key. #47