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