Skip to content

Releases: jchambers/pushy

Pushy v0.15.4 - Add `attributes-type` and `start` fields for Live Activities payloads

17 Feb 18:08
Compare
Choose a tag to compare

This is a minor release that adds support for the attribute-type and start fields for Live Activities Payloads. For a complete list of changes, please see the v0.15.4 milestone or the commits between 0.15.3 and 0.15.4.

Pushy v0.15.3 - live activities and push-to-talk notifications

29 Dec 22:53
Compare
Choose a tag to compare

This is a minor release that:

  • Adds support for new Live Activity features (thank you, @louise-scully!)
    • Relaxes the bounds on relevance scores in push notification payloads (scores are no longer bounded between 0.0 and 1.0)
    • Adds support for the stale-date payload field
  • Allows callers to opt in to protocol negotiation when opening new connections (thank you, @MarcelHeckel!)
  • Adds support for the apns-unique-id response header available in the APNs development environment (thank you, @hectorespert!)
  • Improves performance and resolves a potential inconsistency when verifying authentication tokens in the mock server

For a complete list of changes, plese see the v0.15.3 milestone or the commits between 0.15.2 and 0.15.3.

Pushy v0.15.2 - live activities and push-to-talk notifications

01 Jan 17:02
Compare
Choose a tag to compare

This is a minor release that adds support for live activity notifications and push-to-talk notifications. It also updates a number of dependencies and clarifies documentation around serializing notification payloads to JSON.

For a complete list of changes, please see the v0.15.2 milestone.

Pushy v0.15.1 - `location` push type and revised token handling

26 Feb 16:12
Compare
Choose a tag to compare

This is a minor release that adds support for the location push type introduced in iOS 15 (thank you, @fairEnough83) and fixes an issue with token handling that could lead to notifications getting rejected with TooManyProviderTokenUpdates under certain circumstances. This release also updates Pushy's dependency on Netty to use the latest version (4.1.74).

Pushy v0.15.0 - New features and bug fixes

22 Aug 15:58
Compare
Choose a tag to compare

This is a major release that includes several new features and, importantly, a few breaking API changes. Please see the v0.15.0 milestone for a complete list of changes.

New features and bug fixes

  • Mock servers can once again bind to an OS-selected port and now return the bound port when the server starts up
  • Simplified authentication-related exceptions
  • Authentication tokens are now shared between connections to reduce the frequency of token changes
  • Fixed a bug where connections could stay open after receiving a GOAWAY frame from the APNs server
  • Fixed an issue where channels may not have been cleaned up as expected after an exception
  • Fixed various packaging issues
  • Enabled TLS hostname verification
  • HTTP status codes are now included in responses from the APNs server
  • Rejection reasons inresponses from the APNs server are now Optional instead of @Nullable
  • Literal and localized alert content may now co-exist in the same notification payload
  • Added support for new payload fields (relevance-score and interruption-level) introduced in iOS 15
  • Added JPMS automatic module names to all project artifacts
  • Updated to Netty 4.1.67/netty-tcnative 2.0.41

Breaking changes

Some new features, fixes, and general maintenance have led to breaking API changes that Pushy users may need to address in their own code. In particular:

  • Starting a mock server now returns a CompletableFuture<Integer> instead of CompletableFuture<Void>
  • Creating a new AuthenticationToken from a signing key no longer throws checked exceptions
  • The PushNotificationResponse interface now includes a getStatusCode method
  • Rejection reasons inresponses from the APNs server are now Optional instead of @Nullable
  • Behavior of setters for alert content in payload builders has changed; literal and localized content may now co-exist in the same payload

Pushy v0.14.2 - bug fixes and more logging

21 Oct 16:54
Compare
Choose a tag to compare

This is a maintenance release that fixes a few small issues and adds some new logging to help us debug two outstanding issues (#811 and #816). Changes in this release include:

  • Fix a JSON parsing bug that would only affect folks who were trying to use the JSON parser for something other than parsing responses from the APNs server
  • Update to Netty 4.1.53/netty-tcnative 2.0.34
  • Add more logging when creating/closing connections
  • Fix a bug that could cause us to keep sending pings after a channel should have closed
  • Add SNI support
  • Identify which channels are affected by token changes in log messages

For a complete list of changes, please see the v0.14.2 milestone.

Pushy v0.14.1 - bug fixes and cleanup

04 Jun 13:47
Compare
Choose a tag to compare

This release is a grab-bag of fixes, cleanup, and improvements. The highlights:

  • Fixed a potential bug where we'd continue to try to recover from an expired authentication token even if the server considered the connection permanently invalid
  • Significantly improved the performance of our JSON parser
  • Use Optional to convey that timestamps in push notification responses won't always be present

For a complete list of changes, please see the v0.14.1 milestone.

v0.14.0 - Java 8 and configurable payload builders

09 May 20:11
Compare
Choose a tag to compare

This is a big release with lots of breaking API changes. Please be prepared for non-trivial migration work before upgrading from v0.13 to v0.14. That said, Pushy v0.14.0 introduces lots of exciting changes and improvements! Here are some highlights:

  • Pushy now requires Java 8 or newer
  • Pushy now returns CompletableFutures instead of Netty Futures in its public API
  • We now use java.time types where appropriate
  • We now use lambdas internally and in some examples for increased readability
  • Pushy now uses JUnit 5 for tests
  • We no longer depend on GSON (or any other external JSON library)
  • Pushy now offers Gson- and Jackson-based payload builders as separate modules

We also fixed a handful of bugs related to error handling, including a NullPointerException that could happen if we failed to open an HTTP/2 stream.

For a complete list of changes, please see the v0.14.0 milestone.

v0.13.12 - Bug fixes

09 May 21:06
Compare
Choose a tag to compare

This is a very small maintenance release that back-ports a NullPointerException fix from v0.14.0 so folks can get the fix without going through a major migration effort.

v0.13.11 - Bug fixes and new project ownership

29 Feb 03:15
Compare
Choose a tag to compare

This release fixes a number of issues and adds a handful of new features and performance enhancements. Lots of people contributed to this release; thank you!

Please note that Pushy is now an independent project and is no longer sponsored by Turo. The project is still maintained by @jchambers, but package names and Maven coordinates have changed. Please see the mailing list for additional context and discussion.

With all that said, the most notable changes in this release are:

  • Pushy is now an independent project and has new package names and Maven coordinates
  • Fixed an issue where pending channels might not be closed cleanly when a channel pool was shutting down (thanks, @ylgrgyq!)
  • Added OSGi metadata and changed package type from jar to bundle (thanks, @arunan-interlink!)
  • Dropped support for OIO transport
  • Fixed an issue where, due to an upstream behavior change, clients using token-based authentication would see a radical drop in throughput after tokens were rotated (thanks, @extraSix, @janzar, and @Helle!)
  • Fixed some broken links to external API docs from the Pushy API documentation
  • Removed some duplicative logging statements
  • Fixed a memory leak when using lots of clients with a single event loop group (thanks, @eugeneseppel!)
  • Added factory methods to construct HTTP proxies based on global JVM settings (thanks, @arunan-interlink!)
  • Updated to the latest version of Netty to resolve some (non-applicable!) security warnings
  • Various minor performance enhancements

For a complete list of changes, please see the v0.13.11 milestone.