Merge pull request #34 from lamby/correct-seconds-in-day
[diaspy.git] / Changelog.markdown
index 30c66e54ebdfcbb3027b0e945ec79b7f16594f02..45313202732817a0f6d07cb2969fc42f7dcd4be7 100644 (file)
@@ -1,4 +1,4 @@
-## Changelog for `diaspy`, unofficla Diaspora\* API for Python
+## Changelog for `diaspy`, unofficial DIASPORA\* interface for Python
 
 This changelog file follows few rules:
 
@@ -18,10 +18,119 @@ up-to-date than manual and if conflicts appear they should follow the order:
 
 *docstrings* -> *docs/* -> *manual/*
 
+----
+
+#### Known issues
+
+* __bug__:  `diaspy` has problems/can't connect to pods using SNI (this is an issue with requests/urllib3/python),
+
+
+----
+
+#### Version `0.4.3`:
+
+* __new__:  `people.User().fetchprofile()` will issue a warning when user cannot be found on current pod,
+* __new__:  `settings.Profile` is now loaded during initialization (can be switched off),
+
+* __fix__:  fixed a bug in `__repr__()` method in `people.User()` object,
+
+
+----
+
+#### Version `0.4.2` (2013-12-19):
+
+This version has some small incompatibilities with `0.4.1` so read Changelog carefully.
+
+* __new__:  `diaspy.people.User._fetchstream()` method,
+* __new__:  `diaspy.people.Me()` object representing current user,
+* __new__:  `**kwargs` added to `diaspy.streams.Generic.json()` methdo to give developers control over the creation of JSON,
+* __new__:  `.getHCard()` method added to `diaspy.people.User()`,
+
+
+* __upd__:  `diaspy.connection.Connection.login()` modifies connection object in-place **and** returns it (this allows more fluent API),
+* __upd__:  `diaspy.connection.Connection.login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
+* __upd__:  `diaspy.connection.Connection._login()` no longer returns status code (if login was unsuccessful it'll raise an exception),
+* __upd__:  better error message in `diaspy.models.Post().__init__()`,
+* __upd__:  `data` variable in `diaspy.models.Post()` renamed to `_data` to indicate that it's considered private,
+* __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),
+* __upd__:  `filterByIDs()` method in `Aspects` stream renamed to `filter()`,
+
+
+* __rem__:  `diaspy.connection.Connection.getUserInfo()` moved to `diaspy.connection.Connection.getUserData()`,
+* __rem__:  `fetch` parameter removed from `diaspy.connection.Connection.getUserData()`,
+
+
+* __dep__:  `max_time` parameter in `diaspy.streams.*.more()` method is deprecated,
+
+* __fix__:  this release should fix the bug which prevented diaspy from working with some pods (e.g. diasp.eu and joindiaspora.com),
+
 
 ----
 
-#### Version `0.4.1` (2013-08-):
+#### Version `0.4.1` (2013-09-12):
+
+Login and authentication procedure backend received major changes in this version.
+There are no longer `username` and `password` variables in `Connection` object.
+Instead, credentials are stored (together with the token) in single variable `_login_data`.
+This is preserved until you call `login()` at which point credentials are erased and
+only token is left -- it can be obtained by calling `repr(Connection)`.
+
+Also, this release is compatible with DIASPORA\* 0.2.0.0 but should still support
+pods running on older versions.
+
+And the test suite was updated. Yay!
+
+
+* __new__:  `diaspy.errors.SettingsError`.
+
+
+* __upd__:  `diaspy.settings.Account.setEmail()` can now raise `SettingsError` when request fails,
+* __upd__:  `diaspy.settings.Account.getEmail()` will now return empty string instead of raising an exception if cannot fetch mail,
+* __upd__:  improved language fetching in `diaspy.settings.Account.getLanguages()`.
+
+
+* __rem__:  `diaspy/client.py` is removed,
+
+
+**`0.4.1-rc.3` (2013-09-08):**
+
+* __new__:  `diaspy.settings.Profile.load()` method for loading profile information,
+* __new__:  `diaspy.settings.Profile.update()` method for updating profile information,
+* __new__:  `diaspy.settings.Profile.setName()` method,
+* __new__:  `diaspy.settings.Profile.setBio()` method,
+* __new__:  `diaspy.settings.Profile.setLocation()` method,
+* __new__:  `diaspy.settings.Profile.setTags()` method,
+* __new__:  `diaspy.settings.Profile.setGender()` method,
+* __new__:  `diaspy.settings.Profile.setBirthDate()` method,
+* __new__:  `diaspy.settings.Profile.setSearchable()` method,
+* __new__:  `diaspy.settings.Profile.setNSFW()` method,
+
+
+**`0.4.1-rc.2` (2013-09-06):**
+
+* __new__:  `diaspy.search.Search.tags()` method for getting tag suggestions,
+* __new__:  `diaspy.settings.Profile.getName()` method,
+* __new__:  `diaspy.settings.Profile.getBio()` method,
+* __new__:  `diaspy.settings.Profile.getLocation()` method,
+* __new__:  `diaspy.settings.Profile.getTags()` method,
+* __new__:  `diaspy.settings.Profile.getGender()` method,
+* __new__:  `diaspy.settings.Profile.getBirthDate()` method,
+* __new__:  `diaspy.settings.Profile.isSearchable()` method,
+* __new__:  `diaspy.settings.Profile.isNSFW()` method,
+* __new__:  `provider_display_name` parameter in `diaspy.streams.Stream.post()` (thanks @svbergerem),
+
+
+* __upd__:  `remeber_me` parameter in `diaspy.connection.Connection.login()`,
+* __upd__:  you must supply `username` and `password` parameters on init of `diaspy.connection.Connection`,
+* __upd__:  you must update your testconf.py (new fields are required for settings tests),
+* __upd__:  `diaspy.settings.Settings` renamed to `diaspy.settings.Account`,
+
+
+* __rem__:  `username` and `password` parameters removed from `diaspy.connection.Connection.login()`
+            must be supplied on init,
+
+
+**`0.4.1-rc.1` (2013-09-02):**
 
 * __new__:  `__getitem__()` in `diaspy.models.Post`,
 * __new__:  `__dict__()` in `diaspy.models.Post`,
@@ -32,13 +141,23 @@ up-to-date than manual and if conflicts appear they should follow the order:
 * __new__:  `setLanguage()` method in `diaspy.settings.Settings`,
 * __new__:  `downloadPhotos()` method in `diaspy.settings.Settings`,
 * __new__:  `backtime` argument in `more()` method in `diaspy.streams.Generic`,
+* __new__:  `DiaspyError` will be raised when connection is created with empty password and/or username,
+* __new__:  `getSessionToken()` method in `diaspy.connection.Connection` returns string from `_diaspora_session` cookie,
+* __new__:  `direct` parameter in `diaspy.connection.Connection().get()` allowing to disable pod expansion,
+
 
 * __upd__:  if `Post()` is created with fetched comments, data will also be fetched as a dependency,
 * __upd__:  `id` argument type is now `int` (`diaspy.models.Post.__init__()`),
 * __upd__:  `Search().lookup_user()` renamed to `Search().lookupUser()`,
+* __upd__:  `diaspy.messages` renamed to `diaspy.conversations` (but will be accessible under both names for this and next release),
+* __upd__:  `LoginError` moved to `diaspy.errors`,
+* __upd__:  `TokenError` moved to `diaspy.errors`,
+* __upd__:  `diaspy.connection.Connection.podswitch()` gained two new positional arguments: `username` and `password`,
+* __upd__:  `aspect_id` renamed to `id` in `diaspy.streams.Aspects().remove()`,
+
 
-* __fix__:  fixed some bugs in regular expressions used by `diaspy` internals
-            (html tag removal, so you get nicer notifications),
+* __fix__:  fixed some bugs in regular expressions used by `diaspy` internals (html tag removal, so you get nicer notifications),
+* __fix__:  fixed authentication issues,
 
 
 ----
@@ -50,25 +169,30 @@ Also, this release if first to officially released fork version.
 
 * __dep__:  `diaspy.client` is officially deprecated (will be removed in `0.4.1`),
 
+
 * __upd__:  `diaspy.conversations` renamed to `diaspy.messages`,
 * __udp__:  `diaspy.conversations.Conversation` moved to `diaspy.models`,
 
+
 * __new__:  `diaspy.messages.Mailbox()` object representing diaspora\* mailbox,
 
 ----
 
-Version `0.3.2` (2013-08-20):
+#### Version `0.3.2` (2013-08-20):
 
 * __upd__:  `diaspy.connection.getUserData()` raises `DiaspyError` when it cannot find user data,
 
+
 * __rem__:  `diaspy.client.Client` must be explicitly imported,
 
 ----
 
-Version `0.3.1` (2013-07-12):
+#### Version `0.3.1` (2013-07-12):
 
 * __upd__:  `diaspy.people.sephandle()` raises `InvalidHandleError` instead of `UserError`
 * __upd__:  `models.Post()._fetch()` renamed to `_fetchdata()` (because of new `_fetchcomments()` method)
+
+
 * __new__:  `models.Comment()` object: wrapper for comments, not to be created manually
 * __new__:  `comments` parameter in `models.Post`: defines whether to fetch post's commets
 * __new__:  `connection.Connection` has new parameter in `__init__()`: it's `schema`
@@ -87,7 +211,7 @@ When it comes to posts, we are now able to fetch comments.
 
 ----
 
-Version `0.3.0` (2013-07-07):
+#### Version `0.3.0` (2013-07-07):
 
 First edition of Changelog for `diaspy`. 
 Developers should update their code as version `0.3.0` may not be fully 
@@ -98,4 +222,4 @@ theory, not worry about this update.
 Version `0.3.0` introduces few new features, fixes several bugs and brings a bit of 
 redesign and refactoring od `diaspy`'s code.
 
-----
+