Skip to content

Commit 14c0e09

Browse files
committed
chore: update CHANGELOG
Also: added :invalid_push_type to APNS guide.
1 parent 9a248b3 commit 14c0e09

File tree

3 files changed

+289
-241
lines changed

3 files changed

+289
-241
lines changed

CHANGELOG.md

Lines changed: 140 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,111 @@
11
# Changelog
22

33
# v1.5.1
4-
* Fixed various typespecs.
4+
5+
- Added APNS InvalidPushType error ([#172](https://github.com/codedge-llc/pigeon/pull/172)).
6+
- Fixed various typespecs ([#170](https://github.com/codedge-llc/pigeon/pull/170)).
57

68
## v1.5.0
7-
* Bumped minimum Elixir version to 1.6
8-
* Raise `Pigeon.ConfigError` when booting invalid config structs.
9+
10+
- Bumped minimum Elixir version to 1.6
11+
- Raise `Pigeon.ConfigError` when booting invalid config structs.
912
See below for validated keys and error types.
10-
* `APNS.JWTConfig` now validates key p8 content before connecting.
11-
* Relaxed `gen_stage` dependency to allow `~> 1.0`
13+
- `APNS.JWTConfig` now validates key p8 content before connecting.
14+
- Relaxed `gen_stage` dependency to allow `~> 1.0`
1215

1316
Validated config keys:
17+
1418
- `ADM.Config` - `:client_id`, `:client_secret`
1519
- `APNS.Config` - `:cert`, `:key`
1620
- `APNS.JWTConfig` - `:team_id`, `:key`, `:key_identifier`
1721
- `FCM.Config` - `:key`
1822

1923
Possible error values:
20-
- `{:error, {:invalid, value}}`
21-
- `{:error, {:nofile, value}}`
24+
25+
- `{:error, {:invalid, value}}`
26+
- `{:error, {:nofile, value}}`
2227

2328
## v1.4.0
24-
* `apns-push-type` header support for iOS 13. An additional `:push_type` key has been
29+
30+
- `apns-push-type` header support for iOS 13. An additional `:push_type` key has been
2531
added to the `APNS.Notification` struct.
2632

2733
## v1.3.2
28-
* Document workers configuration for run-time configuration of push workers.
29-
* Modify run-time configuration of push workers so that multiple (or no)
34+
35+
- Document workers configuration for run-time configuration of push workers.
36+
- Modify run-time configuration of push workers so that multiple (or no)
3037
workers may be returned by the startup configuration.
3138

3239
## v1.3.1
33-
* Joken dependency bumped to 2.1
40+
41+
- Joken dependency bumped to 2.1
3442

3543
## v1.3.0
36-
* Support for FCM `content_available`, `mutable_content`, and `condition` keys
37-
* Set `priority` of APNS notifications
38-
* Joken dependency bumped to 2.0.1
44+
45+
- Support for FCM `content_available`, `mutable_content`, and `condition` keys
46+
- Set `priority` of APNS notifications
47+
- Joken dependency bumped to 2.0.1
3948

4049
## v1.2.4
41-
* Fixed ADM handling of connection timeouts
50+
51+
- Fixed ADM handling of connection timeouts
4252

4353
## v1.2.3
44-
* Fixed APNS, FCM and ADM error response parse crashes. Error responses not
54+
55+
- Fixed APNS, FCM and ADM error response parse crashes. Error responses not
4556
listed in the documentation are returned as `:unknown_error`
4657

4758
## v1.2.2
48-
* Fixed APNS handling of notification `expiration`
49-
* Added APNS support for `collapse_id`
59+
60+
- Fixed APNS handling of notification `expiration`
61+
- Added APNS support for `collapse_id`
5062

5163
## v1.2.1
52-
* FCM notifications can now handle `time_to_live`, `collapse_key`, `restricted_package_name`
64+
65+
- FCM notifications can now handle `time_to_live`, `collapse_key`, `restricted_package_name`
5366
and `dry_run` keys
5467

5568
## v1.2.0
56-
* Support for APNS JWT configuration
57-
* Bump `kadabra` dependency to `v0.4.2`
69+
70+
- Support for APNS JWT configuration
71+
- Bump `kadabra` dependency to `v0.4.2`
5872

5973
## v1.1.6
60-
* Relax `gen_stage` dependency to `~> 0.12`
61-
* Bump `kadabra` dependency to `v0.3.7`
74+
75+
- Relax `gen_stage` dependency to `~> 0.12`
76+
- Bump `kadabra` dependency to `v0.3.7`
6277

6378
## v1.1.5
64-
* Fix: relax `httpoison` dependency to allow `0.x` or `1.0`
79+
80+
- Fix: relax `httpoison` dependency to allow `0.x` or `1.0`
6581

6682
## v1.1.4
67-
* Fix: `:on_response` callbacks spawned as supervised task instead of running
83+
84+
- Fix: `:on_response` callbacks spawned as supervised task instead of running
6885
in the `Worker` process
69-
* Fix: ADM token refresh failure returns updated notification instead of
86+
- Fix: ADM token refresh failure returns updated notification instead of
7087
error tuple
7188

7289
## v1.1.3
73-
* More robust FCM/APNS backpressure
74-
* Bumped minimum Kadabra version to `v0.3.6`
90+
91+
- More robust FCM/APNS backpressure
92+
- Bumped minimum Kadabra version to `v0.3.6`
7593

7694
## v1.1.2
77-
* Auto-restart connections if max stream ID is reached
78-
* FCM/APNS Workers now use GenStage to queue pending pushes
79-
* Bumped minimum Kadabra version to `v0.3.5`
95+
96+
- Auto-restart connections if max stream ID is reached
97+
- FCM/APNS Workers now use GenStage to queue pending pushes
98+
- Bumped minimum Kadabra version to `v0.3.5`
8099

81100
## v1.1.1
82-
* Bumped minimum Kadabra version to `v0.3.4`
101+
102+
- Bumped minimum Kadabra version to `v0.3.4`
83103

84104
## v1.1.0
85-
* Minimum requirements now Elixir v1.4 and OTP 19.2 (Kadabra bumped
105+
106+
- Minimum requirements now Elixir v1.4 and OTP 19.2 (Kadabra bumped
86107
to `v0.3.0`)
87-
* Startup worker configs. Create a functions that return config
108+
- Startup worker configs. Create a functions that return config
88109
structs and specify them your `config.exs` with
89110

90111
```elixir
@@ -97,125 +118,150 @@ config :pigeon, workers: [
97118
```
98119

99120
**APNS**
100-
* `APNS.Config.config/1` renamed to `APNS.Config.new/1`
101-
* `APNS.push/2` tagged tuples done away with in favor of a `:response` key on
121+
122+
- `APNS.Config.config/1` renamed to `APNS.Config.new/1`
123+
- `APNS.push/2` tagged tuples done away with in favor of a `:response` key on
102124
the notification.
103-
* Override push server endpoint with `:uri` option in `APNS.Config.new/1`
104-
* `:use_2197` renamed to `:port`
105-
* `:uri` config option for overriding push server endpoint
106-
* `:reconnect` now false by default
125+
- Override push server endpoint with `:uri` option in `APNS.Config.new/1`
126+
- `:use_2197` renamed to `:port`
127+
- `:uri` config option for overriding push server endpoint
128+
- `:reconnect` now false by default
107129

108130
**FCM**
109-
* `NotificationResponse` done away with in favor of a `:response` key
131+
132+
- `NotificationResponse` done away with in favor of a `:response` key
110133
on `Notification`
111-
* Override push server endpoint with `:uri` and `:port` options
134+
- Override push server endpoint with `:uri` and `:port` options
112135
in `FCM.Config.new/1`
113-
* `:uri` and `:port` config options for overriding push server endpoint
136+
- `:uri` and `:port` config options for overriding push server endpoint
114137

115138
**ADM**
116-
* `ADM.Config.config/1` renamed to `ADM.Config.new/1`
117-
* `ADM.push/2` tagged tuples done away with in favor of a `:response` key on
139+
140+
- `ADM.Config.config/1` renamed to `ADM.Config.new/1`
141+
- `ADM.push/2` tagged tuples done away with in favor of a `:response` key on
118142
the notification.
119-
* `ADM.start_connection/1` and `ADM.stop_connection/1` added
143+
- `ADM.start_connection/1` and `ADM.stop_connection/1` added
120144

121145
## v1.0.4
122-
* Fix: removed connection pinging from FCM.Worker (`:ping_period` option
146+
147+
- Fix: removed connection pinging from FCM.Worker (`:ping_period` option
123148
left in FCM config to not break API)
124149

125150
## v1.0.3
126-
* Fixed proper handling of large FCM push batches
151+
152+
- Fixed proper handling of large FCM push batches
127153

128154
## v1.0.2
129-
* Fixed FCM infinite `GOAWAY session_timed_out` loop
155+
156+
- Fixed FCM infinite `GOAWAY session_timed_out` loop
130157

131158
## v1.0.1
132-
* Configurable `:ping_period` for FCM connections
159+
160+
- Configurable `:ping_period` for FCM connections
133161

134162
## v1.0.0
135-
* GCM migrated to FCM API (http2)
136-
* `GCM` modules renamed to `FCM`
137-
* Set priority of FCM notifications
138-
* `APNSWorker` and `ADMWorker` renamed to `APNS.Worker` and `ADM.Worker`
139-
* Disable auto-reconnect for APNS workers with `reconnect: false`
140-
* Removed Chatterbox http2 client adapter
163+
164+
- GCM migrated to FCM API (http2)
165+
- `GCM` modules renamed to `FCM`
166+
- Set priority of FCM notifications
167+
- `APNSWorker` and `ADMWorker` renamed to `APNS.Worker` and `ADM.Worker`
168+
- Disable auto-reconnect for APNS workers with `reconnect: false`
169+
- Removed Chatterbox http2 client adapter
141170

142171
## v0.13.0
143-
* Configurable `:ping_period` for APNS connections
172+
173+
- Configurable `:ping_period` for APNS connections
144174

145175
## v0.12.1
146-
* Various `chatterbox` client adapter fixes
176+
177+
- Various `chatterbox` client adapter fixes
147178

148179
## V0.12.0
149-
* Configurable `Pigeon.Http2.Client`. Currently supports `kadabra`
180+
181+
- Configurable `Pigeon.Http2.Client`. Currently supports `kadabra`
150182
and `chatterbox`
151-
* `kadabra` bumped to `v0.2.0`
183+
- `kadabra` bumped to `v0.2.0`
152184

153185
## v0.11.0
154-
* APNS workers can be started and referenced with pids and/or atom names
155-
* Fix: Push `:name` option renamed to `:to`
156-
* Fix: GCM/ADM async pushes now use `spawn/1` instead of `Task.async/1`
186+
187+
- APNS workers can be started and referenced with pids and/or atom names
188+
- Fix: Push `:name` option renamed to `:to`
189+
- Fix: GCM/ADM async pushes now use `spawn/1` instead of `Task.async/1`
157190

158191
## v0.10.3
159-
* Fix: cleaned up Elixir v1.4 warnings
192+
193+
- Fix: cleaned up Elixir v1.4 warnings
160194

161195
## v0.10.2
162-
* Fix: poison dependency version made optionally `~> 2.0 or ~> 3.0`
196+
197+
- Fix: poison dependency version made optionally `~> 2.0 or ~> 3.0`
163198

164199
## v0.10.1
165-
* Fix: kadabra not started
200+
201+
- Fix: kadabra not started
166202

167203
## v0.10.0
168-
* Migrated HTTP/2 client from `chatterbox` to `kadabra`
169-
* Support for ADM (Amazon Android) push
170-
* APNS pushes are now synchronous by default. For async pushes use the
204+
205+
- Migrated HTTP/2 client from `chatterbox` to `kadabra`
206+
- Support for ADM (Amazon Android) push
207+
- APNS pushes are now synchronous by default. For async pushes use the
171208
new `on_response` option. GCM and ADM will have it in the next major release.
172-
* Bulk APNS pushing
173-
* Handling of multiple APNS worker connections with different configs
174-
* Re-implemented APNS socket pings to keep connections open
175-
* `:invalid_jSON` corrected to `:invalid_json`
209+
- Bulk APNS pushing
210+
- Handling of multiple APNS worker connections with different configs
211+
- Re-implemented APNS socket pings to keep connections open
212+
- `:invalid_jSON` corrected to `:invalid_json`
176213

177214
## v0.9.2
178-
* Fixed GCM error response atom conversion
215+
216+
- Fixed GCM error response atom conversion
179217

180218
## v0.9.1
181-
* Fixed :eaddrinuse error when restarting Pigeon too quickly with
219+
220+
- Fixed :eaddrinuse error when restarting Pigeon too quickly with
182221
:apns_2197 enabled
183222

184223
## v0.9.0
185-
* APNS topic made optional
186-
* APNS `put_mutable_content` helper function added
187-
* GCM can be configured on a per-push basis
188-
* Updated to use Macro.underscore
224+
225+
- APNS topic made optional
226+
- APNS `put_mutable_content` helper function added
227+
- GCM can be configured on a per-push basis
228+
- Updated to use Macro.underscore
189229

190230
## v0.8.0
191-
* Implemented Chatterbox as APNS HTTP2 client
192-
* APNS server responses now caught asynchronously
193-
* GCM support for `notification` and `data` payload keys
231+
232+
- Implemented Chatterbox as APNS HTTP2 client
233+
- APNS server responses now caught asynchronously
234+
- GCM support for `notification` and `data` payload keys
194235
(`Pigeon.GCM.Notification.new` API changes)
195236

196237
## v0.7.0
197-
* APNS cert/key configs can now either be a file path, full-text string,
238+
239+
- APNS cert/key configs can now either be a file path, full-text string,
198240
or `{:your_app, "path/to/file.pem"}` (which looks in the `/priv` directory
199241
of your app)
200-
* Fixed APNSWorker crash on `:ssl.send/2` timeout
201-
* Better error-handling for invalid APNS configs
242+
- Fixed APNSWorker crash on `:ssl.send/2` timeout
243+
- Better error-handling for invalid APNS configs
202244

203245
## v0.6.0
204-
* `Pigeon.APNS.Notification.new/3` returns `%Pigeon.APNS.Notification{}` struct
205-
* Configure APNS to use SSL port 2197 with `apns_2197: true` in
246+
247+
- `Pigeon.APNS.Notification.new/3` returns `%Pigeon.APNS.Notification{}` struct
248+
- Configure APNS to use SSL port 2197 with `apns_2197: true` in
206249
your `config.exs`
207-
* Error feedback symbols converted from `CamelCase` to `snake_case`
208-
* APNS expiration values supported with `expiration` key in
250+
- Error feedback symbols converted from `CamelCase` to `snake_case`
251+
- APNS expiration values supported with `expiration` key in
209252
`%Pigeon.APNS.Notification{}`
210253

211254
## v0.5.2
212-
* Fixed bug where APNSWorker would hang up if SSL connection failed. Now
255+
256+
- Fixed bug where APNSWorker would hang up if SSL connection failed. Now
213257
retries the connection twice more before gracefully shutting down.
214258

215259
## v0.5.1
216-
* GCM error responses return proper chunk of regstration IDs
260+
261+
- GCM error responses return proper chunk of regstration IDs
217262

218263
## v0.5.0
219-
* `Pigeon.GCM.Notification.new/2` returns `%Pigeon.GCM.Notification{}` struct
220-
* Multiple registration IDs allowed in `Pigeon.GCM.push/2`
221-
* Remove `:gcm_worker`
264+
265+
- `Pigeon.GCM.Notification.new/2` returns `%Pigeon.GCM.Notification{}` struct
266+
- Multiple registration IDs allowed in `Pigeon.GCM.push/2`
267+
- Remove `:gcm_worker`

0 commit comments

Comments
 (0)