Set version in setup.py to current version.
[diaspy.git] / Changelog.markdown
1 ## Changelog for `diaspy`, unofficial DIASPORA\* interface for Python
2
3 This 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
10 Deprecation means that in the next version feature will be removed.
11
12 Also, after every version there should be a brief note describing possible
13 problems with migrating to it from older versions and usage of new features.
14
15 Users can always read the manual and dcumentation to make themselves more knowledgeable and
16 are encouraged to do so. They only need to remember that documentation is usually more
17 up-to-date than manual and if conflicts appear they should follow the order:
18
19 *docstrings* -> *docs/* -> *manual/*
20
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
27
28 ----
29
30 #### Version `0.4.2` (2013-12-19):
31
32 This version has some small incompatibilities with `0.4.1` so read Changelog carefully.
33
34 * __new__: `diaspy.people.User._fetchstream()` method,
35 * __new__: `diaspy.people.Me()` object representing current user,
36 * __new__: `**kwargs` added to `diaspy.streams.Generic.json()` methdo to give developers control over the creation of JSON,
37 * __new__: `.getHCard()` method added to `diaspy.people.User()`,
38
39
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),
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,
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()`,
47
48
49 * __rem__: `diaspy.connection.Connection.getUserInfo()` moved to `diaspy.connection.Connection.getUserData()`,
50 * __rem__: `fetch` parameter removed from `diaspy.connection.Connection.getUserData()`,
51
52
53 * __dep__: `max_time` parameter in `diaspy.streams.*.more()` method is deprecated,
54
55 * __fix__: this release should fix the bug which prevented diaspy from working with some pods (e.g. diasp.eu and joindiaspora.com),
56
57
58 ----
59
60 #### Version `0.4.1` (2013-09-12):
61
62 Login and authentication procedure backend received major changes in this version.
63 There are no longer `username` and `password` variables in `Connection` object.
64 Instead, credentials are stored (together with the token) in single variable `_login_data`.
65 This is preserved until you call `login()` at which point credentials are erased and
66 only token is left -- it can be obtained by calling `repr(Connection)`.
67
68 Also, this release is compatible with DIASPORA\* 0.2.0.0 but should still support
69 pods running on older versions.
70
71 And the test suite was updated. Yay!
72
73
74 * __new__: `diaspy.errors.SettingsError`.
75
76
77 * __upd__: `diaspy.settings.Account.setEmail()` can now raise `SettingsError` when request fails,
78 * __upd__: `diaspy.settings.Account.getEmail()` will now return empty string instead of raising an exception if cannot fetch mail,
79 * __upd__: improved language fetching in `diaspy.settings.Account.getLanguages()`.
80
81
82 * __rem__: `diaspy/client.py` is removed,
83
84
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
99 **`0.4.1-rc.2` (2013-09-06):**
100
101 * __new__: `diaspy.search.Search.tags()` method for getting tag suggestions,
102 * __new__: `diaspy.settings.Profile.getName()` method,
103 * __new__: `diaspy.settings.Profile.getBio()` method,
104 * __new__: `diaspy.settings.Profile.getLocation()` method,
105 * __new__: `diaspy.settings.Profile.getTags()` method,
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,
110 * __new__: `provider_display_name` parameter in `diaspy.streams.Stream.post()` (thanks @svbergerem),
111
112
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`,
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`,
117
118
119 * __rem__: `username` and `password` parameters removed from `diaspy.connection.Connection.login()`
120 must be supplied on init,
121
122
123 **`0.4.1-rc.1` (2013-09-02):**
124
125 * __new__: `__getitem__()` in `diaspy.models.Post`,
126 * __new__: `__dict__()` in `diaspy.models.Post`,
127 * __new__: `guid` argument in `diaspy.models.Post.__init__()`,
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`,
133 * __new__: `backtime` argument in `more()` method in `diaspy.streams.Generic`,
134 * __new__: `DiaspyError` will be raised when connection is created with empty password and/or username,
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,
137
138
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__()`),
141 * __upd__: `Search().lookup_user()` renamed to `Search().lookupUser()`,
142 * __upd__: `diaspy.messages` renamed to `diaspy.conversations` (but will be accessible under both names for this and next release),
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`,
146 * __upd__: `aspect_id` renamed to `id` in `diaspy.streams.Aspects().remove()`,
147
148
149 * __fix__: fixed some bugs in regular expressions used by `diaspy` internals (html tag removal, so you get nicer notifications),
150 * __fix__: fixed authentication issues,
151
152
153 ----
154
155 #### Version `0.4.0` (2013-08-20):
156
157 This release is **not backwards compatible with `0.3.x` line**! You'll have to check your code for corrections.
158 Also, 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
162
163 * __upd__: `diaspy.conversations` renamed to `diaspy.messages`,
164 * __udp__: `diaspy.conversations.Conversation` moved to `diaspy.models`,
165
166
167 * __new__: `diaspy.messages.Mailbox()` object representing diaspora\* mailbox,
168
169 ----
170
171 #### Version `0.3.2` (2013-08-20):
172
173 * __upd__: `diaspy.connection.getUserData()` raises `DiaspyError` when it cannot find user data,
174
175
176 * __rem__: `diaspy.client.Client` must be explicitly imported,
177
178 ----
179
180 #### Version `0.3.1` (2013-07-12):
181
182 * __upd__: `diaspy.people.sephandle()` raises `InvalidHandleError` instead of `UserError`
183 * __upd__: `models.Post()._fetch()` renamed to `_fetchdata()` (because of new `_fetchcomments()` method)
184
185
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
188 * __new__: `connection.Connection` has new parameter in `__init__()`: it's `schema`
189 * __new__: `author()` method in `models.Post()`
190
191
192 The new parameter in `connection.Connection` is useful when operating with handles.
193 As handle does not contain schema (`http`, `https`, etc.) `_setlogin()` would raise an
194 unhandled exception -- `requests.exceptions.MissingSchema`.
195 Now, however, `Connection` will catch the exception, add missing schema and try once more.
196 This parameter is provided to give programmers ability to manipulate it.
197
198 Also, now you can pass just `pod.example.com` as `pod` parameter. Less typing!
199
200 When it comes to posts, we are now able to fetch comments.
201
202 ----
203
204 #### Version `0.3.0` (2013-07-07):
205
206 First edition of Changelog for `diaspy`.
207 Developers should update their code as version `0.3.0` may not be fully
208 backwards compatible depending on how the code is written.
209 If you always pass named arguments and do not rely on their order you can, at least in
210 theory, not worry about this update.
211
212 Version `0.3.0` introduces few new features, fixes several bugs and brings a bit of
213 redesign and refactoring od `diaspy`'s code.
214
215