Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: refactor CHANGELOG #285

Merged
merged 4 commits into from
Dec 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: CI

on:
push:
branches: ["master"]
branches: ["main"]
pull_request:
branches: ["master"]
branches: ["main"]

jobs:
prettier:
Expand Down
286 changes: 7 additions & 279 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

**Changed**

- Moved older CHANGELOG release notes to their appropriate major version release branches. ([#283](https://github.com/codedge-llc/pigeon/pull/283),
[#284](https://github.com/codedge-llc/pigeon/pull/284), [#285](https://github.com/codedge-llc/pigeon/pull/285))

**Fixed**

- Elixir 1.18 compilation warnings. ([#281](https://github.com/codedge-llc/pigeon/pull/281))
Expand Down Expand Up @@ -80,283 +85,6 @@ No additional changes since v2.0.0-rc.3. Stable release.
([#183](https://github.com/codedge-llc/pigeon/pull/183))
- `:debug_log` removed.

## v1.6.0 - 2021-01-09

**Added**

- JSON library made configurable. For backwards compatibility, Poison is still a required dependency.
Override in your `config.exs`.

```
config :pigeon, json_library: Jason
```

**Fixed**

- Handle FCM single message_id's on topic pushes.

## v1.5.1 - 2020-05-25

- Added APNS InvalidPushType error ([#172](https://github.com/codedge-llc/pigeon/pull/172)).
- Fixed various typespecs ([#170](https://github.com/codedge-llc/pigeon/pull/170)).

## v1.5.0 - 2020-02-17

- Bumped minimum Elixir version to 1.6
- Raise `Pigeon.ConfigError` when booting invalid config structs.
See below for validated keys and error types.
- `APNS.JWTConfig` now validates key p8 content before connecting.
- Relaxed `gen_stage` dependency to allow `~> 1.0`

Validated config keys:

- `ADM.Config` - `:client_id`, `:client_secret`
- `APNS.Config` - `:cert`, `:key`
- `APNS.JWTConfig` - `:team_id`, `:key`, `:key_identifier`
- `FCM.Config` - `:key`

Possible error values:

- `{:error, {:invalid, value}}`
- `{:error, {:nofile, value}}`

## v1.4.0 - 2019-10-13

- `apns-push-type` header support for iOS 13. An additional `:push_type` key has been
added to the `APNS.Notification` struct.

## v1.3.2 - 2019-08-17

- Document workers configuration for run-time configuration of push workers.
- Modify run-time configuration of push workers so that multiple (or no)
workers may be returned by the startup configuration.

## v1.3.1 - 2019-06-06

- Joken dependency bumped to 2.1

## v1.3.0 - 2019-03-14

- Support for FCM `content_available`, `mutable_content`, and `condition` keys
- Set `priority` of APNS notifications
- Joken dependency bumped to 2.0.1

## v1.2.4 - 2018-10-15

- Fixed ADM handling of connection timeouts

## v1.2.3 - 2018-09-17

- Fixed APNS, FCM and ADM error response parse crashes. Error responses not
listed in the documentation are returned as `:unknown_error`

## v1.2.2 - 2018-07-08

- Fixed APNS handling of notification `expiration`
- Added APNS support for `collapse_id`

## v1.2.1 - 2018-07-06

- FCM notifications can now handle `time_to_live`, `collapse_key`, `restricted_package_name`
and `dry_run` keys

## v1.2.0 - 2018-05-25

- Support for APNS JWT configuration
- Bump `kadabra` dependency to `v0.4.2`

## v1.1.6 - 2018-02-12

- Relax `gen_stage` dependency to `~> 0.12`
- Bump `kadabra` dependency to `v0.3.7`

## v1.1.5 - 2018-01-31

- Fix: relax `httpoison` dependency to allow `0.x` or `1.0`

## v1.1.4 - 2018-01-03

- Fix: `:on_response` callbacks spawned as supervised task instead of running
in the `Worker` process
- Fix: ADM token refresh failure returns updated notification instead of
error tuple

## v1.1.3 - 2017-12-23

- More robust FCM/APNS backpressure
- Bumped minimum Kadabra version to `v0.3.6`

## v1.1.2 - 2017-12-04

- Auto-restart connections if max stream ID is reached
- FCM/APNS Workers now use GenStage to queue pending pushes
- Bumped minimum Kadabra version to `v0.3.5`

## v1.1.1 - 2017-10-31

- Bumped minimum Kadabra version to `v0.3.4`

## v1.1.0 - 2017-10-01

- Minimum requirements now Elixir v1.4 and OTP 19.2 (Kadabra bumped
to `v0.3.0`)
- Startup worker configs. Create a functions that return config
structs and specify them your `config.exs` with

```elixir
config :pigeon, workers: [
{YourApp.Pigeon, :apns_config},
{YourApp.Pigeon, :fcm_config},
{YourApp.Pigeon, :adm_config},
...
]
```

**APNS**

- `APNS.Config.config/1` renamed to `APNS.Config.new/1`
- `APNS.push/2` tagged tuples done away with in favor of a `:response` key on
the notification.
- Override push server endpoint with `:uri` option in `APNS.Config.new/1`
- `:use_2197` renamed to `:port`
- `:uri` config option for overriding push server endpoint
- `:reconnect` now false by default

**FCM**

- `NotificationResponse` done away with in favor of a `:response` key
on `Notification`
- Override push server endpoint with `:uri` and `:port` options
in `FCM.Config.new/1`
- `:uri` and `:port` config options for overriding push server endpoint

**ADM**

- `ADM.Config.config/1` renamed to `ADM.Config.new/1`
- `ADM.push/2` tagged tuples done away with in favor of a `:response` key on
the notification.
- `ADM.start_connection/1` and `ADM.stop_connection/1` added

## v1.0.4 - 2017-09-06

- Fix: removed connection pinging from FCM.Worker (`:ping_period` option
left in FCM config to not break API)

## v1.0.3 - 2017-08-03

- Fixed proper handling of large FCM push batches

## v1.0.2 - 2017-08-01

- Fixed FCM infinite `GOAWAY session_timed_out` loop

## v1.0.1 - 2017-08-01

- Configurable `:ping_period` for FCM connections

## v1.0.0 - 2017-07-30

- GCM migrated to FCM API (http2)
- `GCM` modules renamed to `FCM`
- Set priority of FCM notifications
- `APNSWorker` and `ADMWorker` renamed to `APNS.Worker` and `ADM.Worker`
- Disable auto-reconnect for APNS workers with `reconnect: false`
- Removed Chatterbox http2 client adapter

## v0.13.0 - 2017-05-17

- Configurable `:ping_period` for APNS connections

## v0.12.1 - 2017-04-02

- Various `chatterbox` client adapter fixes

## V0.12.0 - 2017-04-01

- Configurable `Pigeon.Http2.Client`. Currently supports `kadabra`
and `chatterbox`
- `kadabra` bumped to `v0.2.0`

## v0.11.0 - 2017-03-07

- APNS workers can be started and referenced with pids and/or atom names
- Fix: Push `:name` option renamed to `:to`
- Fix: GCM/ADM async pushes now use `spawn/1` instead of `Task.async/1`

## v0.10.3 - 2017-01-06

- Fix: cleaned up Elixir v1.4 warnings

## v0.10.2 - 2016-11-27

- Fix: poison dependency version made optionally `~> 2.0 or ~> 3.0`

## v0.10.1 - 2016-11-21

- Fix: kadabra not started

## v0.10.0 - 2017-11-13

- Migrated HTTP/2 client from `chatterbox` to `kadabra`
- Support for ADM (Amazon Android) push
- APNS pushes are now synchronous by default. For async pushes use the
new `on_response` option. GCM and ADM will have it in the next major release.
- Bulk APNS pushing
- Handling of multiple APNS worker connections with different configs
- Re-implemented APNS socket pings to keep connections open
- `:invalid_jSON` corrected to `:invalid_json`

## v0.9.2

- Fixed GCM error response atom conversion

## v0.9.1 - 2016-09-01

- Fixed :eaddrinuse error when restarting Pigeon too quickly with
:apns_2197 enabled

## v0.9.0 - 2016-07-20

- APNS topic made optional
- APNS `put_mutable_content` helper function added
- GCM can be configured on a per-push basis
- Updated to use Macro.underscore

## v0.8.0 - 2016-06-23

- Implemented Chatterbox as APNS HTTP2 client
- APNS server responses now caught asynchronously
- GCM support for `notification` and `data` payload keys
(`Pigeon.GCM.Notification.new` API changes)

## v0.7.0 - 2016-06-02

- APNS cert/key configs can now either be a file path, full-text string,
or `{:your_app, "path/to/file.pem"}` (which looks in the `/priv` directory
of your app)
- Fixed APNSWorker crash on `:ssl.send/2` timeout
- Better error-handling for invalid APNS configs

## v0.6.0 - 2016-05-20

- `Pigeon.APNS.Notification.new/3` returns `%Pigeon.APNS.Notification{}` struct
- Configure APNS to use SSL port 2197 with `apns_2197: true` in
your `config.exs`
- Error feedback symbols converted from `CamelCase` to `snake_case`
- APNS expiration values supported with `expiration` key in
`%Pigeon.APNS.Notification{}`

## v0.5.2 - 2016-05-03

- Fixed bug where APNSWorker would hang up if SSL connection failed. Now
retries the connection twice more before gracefully shutting down.

## v0.5.1 - 2016-03-30

- GCM error responses return proper chunk of regstration IDs

## v0.5.0 - 2016-03-30
## Previous versions

- `Pigeon.GCM.Notification.new/2` returns `%Pigeon.GCM.Notification{}` struct
- Multiple registration IDs allowed in `Pigeon.GCM.push/2`
- Remove `:gcm_worker`
- See the CHANGELOG.md [in the v1.6 branch](https://github.com/codedge-llc/pigeon/blob/v1.6/CHANGELOG.md)
Loading