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