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