Fix #22 (https://github.com/marekjm/diaspy/issues/22)
[diaspy.git] / Changelog.markdown
CommitLineData
4285c996 1## Changelog for `diaspy`, unofficial DIASPORA\* interface for Python
6d8d47ce
MM
2
3This changelog file follows few rules:
4
5* __rem__: indicates removed features,
6* __new__: indicates new features,
7* __upd__: indicates updated features,
8* __dep__: indicates deprecated features,
9
10Deprecation means that in the next version feature will be removed.
11
12Also, after every version there should be a brief note describing possible
13problems with migrating to it from older versions and usage of new features.
14
15Users can always read the manual and dcumentation to make themselves more knowledgeable and
16are encouraged to do so. They only need to remember that documentation is usually more
17up-to-date than manual and if conflicts appear they should follow the order:
18
19*docstrings* -> *docs/* -> *manual/*
20
b74513c5
MM
21----
22
23#### Known issues
24
25* __bug__: `diaspy` has problems/can't connect to pods using SNI (this is an issue with requests/urllib3/python),
26
6d8d47ce 27
03ffc9ea
MM
28----
29
30#### Version `0.4.3`:
31
32* __new__: `people.User().fetchprofile()` will issue a warning when user cannot be found on current pod,
33* __new__: `settings.Profile` is now loaded during initialization (can be switched off),
34
35* __fix__: fixed a bug in `__repr__()` method in `people.User()` object,
36
37
415337b6
MM
38----
39
f9ffc79f 40#### Version `0.4.2` (2013-12-19):
f8752360
MM
41
42This version has some small incompatibilities with `0.4.1` so read Changelog carefully.
415337b6
MM
43
44* __new__: `diaspy.people.User._fetchstream()` method,
f8752360 45* __new__: `diaspy.people.Me()` object representing current user,
6c692631 46* __new__: `**kwargs` added to `diaspy.streams.Generic.json()` methdo to give developers control over the creation of JSON,
39af9756 47* __new__: `.getHCard()` method added to `diaspy.people.User()`,
f8752360 48
415337b6 49
f3b7fd44
MM
50* __upd__: `diaspy.connection.Connection.login()` modifies connection object in-place **and** returns it (this allows more fluent API),
51* __upd__: `diaspy.connection.Connection.login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
52* __upd__: `diaspy.connection.Connection._login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
6c692631
MM
53* __upd__: better error message in `diaspy.models.Post().__init__()`,
54* __upd__: `data` variable in `diaspy.models.Post()` renamed to `_data` to indicate that it's considered private,
39af9756
MM
55* __upd__: after deleting a post `Activity` stream is purged instead of being refilled (this preserves state of stream which is not reset to last 15 posts),
56* __upd__: `filterByIDs()` method in `Aspects` stream renamed to `filter()`,
f3b7fd44 57
415337b6 58
39af9756
MM
59* __rem__: `diaspy.connection.Connection.getUserInfo()` moved to `diaspy.connection.Connection.getUserData()`,
60* __rem__: `fetch` parameter removed from `diaspy.connection.Connection.getUserData()`,
6c692631
MM
61
62
63* __dep__: `max_time` parameter in `diaspy.streams.*.more()` method is deprecated,
f8752360 64
f9ffc79f
MM
65* __fix__: this release should fix the bug which prevented diaspy from working with some pods (e.g. diasp.eu and joindiaspora.com),
66
f8752360 67
f61c14c1
MM
68----
69
dc64fad2 70#### Version `0.4.1` (2013-09-12):
f61c14c1 71
2cf8467c
MM
72Login and authentication procedure backend received major changes in this version.
73There are no longer `username` and `password` variables in `Connection` object.
74Instead, credentials are stored (together with the token) in single variable `_login_data`.
75This is preserved until you call `login()` at which point credentials are erased and
76only token is left -- it can be obtained by calling `repr(Connection)`.
77
73a9e0d3
MM
78Also, this release is compatible with DIASPORA\* 0.2.0.0 but should still support
79pods running on older versions.
80
81And the test suite was updated. Yay!
82
3def6e18 83
dc64fad2 84* __new__: `diaspy.errors.SettingsError`.
f50cbea3
MM
85
86
87* __upd__: `diaspy.settings.Account.setEmail()` can now raise `SettingsError` when request fails,
556f2745 88* __upd__: `diaspy.settings.Account.getEmail()` will now return empty string instead of raising an exception if cannot fetch mail,
dc64fad2
MM
89* __upd__: improved language fetching in `diaspy.settings.Account.getLanguages()`.
90
91
92* __rem__: `diaspy/client.py` is removed,
f50cbea3
MM
93
94
3def6e18
MM
95**`0.4.1-rc.3` (2013-09-08):**
96
97* __new__: `diaspy.settings.Profile.load()` method for loading profile information,
98* __new__: `diaspy.settings.Profile.update()` method for updating profile information,
99* __new__: `diaspy.settings.Profile.setName()` method,
100* __new__: `diaspy.settings.Profile.setBio()` method,
101* __new__: `diaspy.settings.Profile.setLocation()` method,
102* __new__: `diaspy.settings.Profile.setTags()` method,
103* __new__: `diaspy.settings.Profile.setGender()` method,
104* __new__: `diaspy.settings.Profile.setBirthDate()` method,
105* __new__: `diaspy.settings.Profile.setSearchable()` method,
106* __new__: `diaspy.settings.Profile.setNSFW()` method,
107
108
cf6a800f
MM
109**`0.4.1-rc.2` (2013-09-06):**
110
111* __new__: `diaspy.search.Search.tags()` method for getting tag suggestions,
b74513c5
MM
112* __new__: `diaspy.settings.Profile.getName()` method,
113* __new__: `diaspy.settings.Profile.getBio()` method,
114* __new__: `diaspy.settings.Profile.getLocation()` method,
f91374ce 115* __new__: `diaspy.settings.Profile.getTags()` method,
b74513c5
MM
116* __new__: `diaspy.settings.Profile.getGender()` method,
117* __new__: `diaspy.settings.Profile.getBirthDate()` method,
118* __new__: `diaspy.settings.Profile.isSearchable()` method,
119* __new__: `diaspy.settings.Profile.isNSFW()` method,
f91374ce 120* __new__: `provider_display_name` parameter in `diaspy.streams.Stream.post()` (thanks @svbergerem),
cf6a800f 121
3def6e18 122
a90eb458
MM
123* __upd__: `remeber_me` parameter in `diaspy.connection.Connection.login()`,
124* __upd__: you must supply `username` and `password` parameters on init of `diaspy.connection.Connection`,
b74513c5
MM
125* __upd__: you must update your testconf.py (new fields are required for settings tests),
126* __upd__: `diaspy.settings.Settings` renamed to `diaspy.settings.Account`,
a90eb458 127
3def6e18 128
a90eb458
MM
129* __rem__: `username` and `password` parameters removed from `diaspy.connection.Connection.login()`
130 must be supplied on init,
131
cf6a800f 132
73a9e0d3 133**`0.4.1-rc.1` (2013-09-02):**
2cf8467c 134
f61c14c1 135* __new__: `__getitem__()` in `diaspy.models.Post`,
fe783229
MM
136* __new__: `__dict__()` in `diaspy.models.Post`,
137* __new__: `guid` argument in `diaspy.models.Post.__init__()`,
f61c14c1
MM
138* __new__: `json()` method in `diaspy.streams.Generic` adds the possibility to export streams to JSON,
139* __new__: `full()` method in `diaspy.streams.Generic` will try to fetch full stream (containing all posts),
140* __new__: `setEmail()` method in `diaspy.settings.Settings`,
141* __new__: `setLanguage()` method in `diaspy.settings.Settings`,
142* __new__: `downloadPhotos()` method in `diaspy.settings.Settings`,
fe783229 143* __new__: `backtime` argument in `more()` method in `diaspy.streams.Generic`,
2cf8467c 144* __new__: `DiaspyError` will be raised when connection is created with empty password and/or username,
73a9e0d3
MM
145* __new__: `getSessionToken()` method in `diaspy.connection.Connection` returns string from `_diaspora_session` cookie,
146* __new__: `direct` parameter in `diaspy.connection.Connection().get()` allowing to disable pod expansion,
fe783229 147
3def6e18 148
fe783229
MM
149* __upd__: if `Post()` is created with fetched comments, data will also be fetched as a dependency,
150* __upd__: `id` argument type is now `int` (`diaspy.models.Post.__init__()`),
51ab5af5 151* __upd__: `Search().lookup_user()` renamed to `Search().lookupUser()`,
3a509ff5 152* __upd__: `diaspy.messages` renamed to `diaspy.conversations` (but will be accessible under both names for this and next release),
2cf8467c
MM
153* __upd__: `LoginError` moved to `diaspy.errors`,
154* __upd__: `TokenError` moved to `diaspy.errors`,
155* __upd__: `diaspy.connection.Connection.podswitch()` gained two new positional arguments: `username` and `password`,
73a9e0d3 156* __upd__: `aspect_id` renamed to `id` in `diaspy.streams.Aspects().remove()`,
f61c14c1 157
3def6e18
MM
158
159* __fix__: fixed some bugs in regular expressions used by `diaspy` internals (html tag removal, so you get nicer notifications),
5de52803 160* __fix__: fixed authentication issues,
f61c14c1
MM
161
162
1cff2093
MM
163----
164
4882952f
MM
165#### Version `0.4.0` (2013-08-20):
166
167This release is **not backwards compatible with `0.3.x` line**! You'll have to check your code for corrections.
168Also, this release if first to officially released fork version.
169
170* __dep__: `diaspy.client` is officially deprecated (will be removed in `0.4.1`),
171
3def6e18 172
4882952f
MM
173* __upd__: `diaspy.conversations` renamed to `diaspy.messages`,
174* __udp__: `diaspy.conversations.Conversation` moved to `diaspy.models`,
175
3def6e18 176
4882952f
MM
177* __new__: `diaspy.messages.Mailbox()` object representing diaspora\* mailbox,
178
179----
180
3def6e18 181#### Version `0.3.2` (2013-08-20):
1cff2093
MM
182
183* __upd__: `diaspy.connection.getUserData()` raises `DiaspyError` when it cannot find user data,
184
3def6e18 185
33735129
MM
186* __rem__: `diaspy.client.Client` must be explicitly imported,
187
615edb73
MM
188----
189
3def6e18 190#### Version `0.3.1` (2013-07-12):
615edb73
MM
191
192* __upd__: `diaspy.people.sephandle()` raises `InvalidHandleError` instead of `UserError`
63f1d9f1 193* __upd__: `models.Post()._fetch()` renamed to `_fetchdata()` (because of new `_fetchcomments()` method)
3def6e18
MM
194
195
313fb305
MM
196* __new__: `models.Comment()` object: wrapper for comments, not to be created manually
197* __new__: `comments` parameter in `models.Post`: defines whether to fetch post's commets
615edb73 198* __new__: `connection.Connection` has new parameter in `__init__()`: it's `schema`
313fb305 199* __new__: `author()` method in `models.Post()`
615edb73
MM
200
201
202The new parameter in `connection.Connection` is useful when operating with handles.
203As handle does not contain schema (`http`, `https`, etc.) `_setlogin()` would raise an
204unhandled exception -- `requests.exceptions.MissingSchema`.
205Now, however, `Connection` will catch the exception, add missing schema and try once more.
206This parameter is provided to give programmers ability to manipulate it.
207
208Also, now you can pass just `pod.example.com` as `pod` parameter. Less typing!
209
313fb305
MM
210When it comes to posts, we are now able to fetch comments.
211
6d8d47ce
MM
212----
213
3def6e18 214#### Version `0.3.0` (2013-07-07):
6d8d47ce 215
cf0105fb
MM
216First edition of Changelog for `diaspy`.
217Developers should update their code as version `0.3.0` may not be fully
218backwards compatible depending on how the code is written.
219If you always pass named arguments and do not rely on their order you can, at least in
220theory, not worry about this update.
221
222Version `0.3.0` introduces few new features, fixes several bugs and brings a bit of
223redesign and refactoring od `diaspy`'s code.
224
3def6e18 225