summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
blob: 8d68d29e760ecd725687095b68e66ececdb1f28d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
0.3.1
=====

Features:

- allow compressed server responses
- add support for specifying a proxy, SSL options, following redirects

0.3.0
=====

Breaking changes:

- The `Polyjuice.Client` module has been reworked.
  - Rather than creating a `Polyjuice.Client` struct,
    `Polyjuice.Client.start_link` should be called to start the client, and
    `Polyjuice.Client.API.stop` should be called to stop it.  Read the
    documentation for `Polyjuice.Client.start_link` for more information.
  - The sync process is started automatically (but can be disabled).
  - A new client does not need to be created when the access token changes
    (e.g. on login)
  - A new `Polyjuice.Client.LowLevel` module has been added for situations
    where the old `Polyjuice.Client` would work better.
- The `Polyjuice.Client.Endpoint.HttpSpec` struct now takes `path` and `query`
  parameters rather than a `url` parameter.  Several helper methods have been
  added for creating the structs.
- `Polyjuice.Client.Endpoint.Proto.http_spec/1` method no longer takes a
  `base_url` parameter.
- `prefix_r0` and `prefix_unstable` have been moved from `Polyjuice.Client` to
  `Polyjuice.Client.Endpoint.HttpSpec`.
- Endpoints that used to return `{:ok}` now return `:ok` instead.

Features:

- Add media upload/download methods. (`Polyjuice.Client.Media`)
- Room requests are queued, to ensure that messages are sent in order.
- New methods for leaving/forgetting rooms. (`Polyjuice.Client.Room.leave` and
  `Polyjuice.Client.Room.forget`)
- The `Polyjuice.Client` client sends events on login and logout.
- Add methods for server discovery using `.well-known`
  (`Polyjuice.Client.WellKnown`)

0.2.3
=====

Features:
- Add support for getting room state (thanks to Pierre de Lacroix)

Bug fixes:

- Fix the sync.

0.2.2
=====

Breaking changes:

- The `Polyjuice.Client.Storage` protocol adds a namespace parameter to the
  key-value storage functions.  Code that uses the function must add this
  parameter to their calls, and modules that implement the protocol must add
  this parameter to their implementations.  Existing stored data should be
  migrated.
- The `Polyjuice.Client.Storage` protocol adds a `kv_del` function.  Modules
  that implement the protocol must add this function to their implementations.
- Client APIs return a different format on errors.

Features:

- Add more filtering methods.
- Support for more endpoints:
  - setting room state
  - getting/streaming room history
- Sync listeners can be functions instead of processes.

0.2.1
=====

Features:

- Add a tutorial.

Bug fixes:

- Fix ETS storage so that the sync process can write to it.

0.2.0
=====

Breaking changes:

- The `Polyjuice.Client` struct has some extra fields that are required by some
  functions.
- The `Polyjuice.Client.API.sync_child_spec` function no longer takes a storage
  as a separate argument -- it is passed in as part of the client.
- Functions for sending events were moved from `Polyjuice.Client` to
  `Polyjuice.Client.Room`, and the order of arguments was changed.

Features:

- New methods and endpoint for setting filters, as well as support in sync.
- Sync sends more messages to update on more of the sync result.
- New function for joining rooms.

0.1.0
====

Initial release.