root/NEWS

Revision 290:62ec82a5049a, 9.6 KB (checked in by Menno Smits <menno@…>, 4 weeks ago)

NEWS update for 0.8.1

Line 
1.. -*-Mode: rst; -*-
2
3=======
4 0.8.1
5=======
6
7* IMAPClient wasn't installing on Windows due to an extra trailing
8  slash in MANIFEST.in (#102). This is a bug in distutils.
9* MANIFEST.in was fixed so that the main documentation index file
10  is included the source distribution.
11* distribute_setup.py was updated to the 0.6.24 version.
12* This release also contains some small documentation fixes.
13
14=====
15 0.8
16=====
17
18OAUTH Support (#54) [NEW]
19-------------------------
20OAUTH authentication is now supported using the oauth_login
21method. This requires the 3rd party oauth2 package is
22installed. Thanks to Johannes Heckel for contributing the patch to
23this.
24
25IDLE Support (#50) [NEW]
26------------------------
27The IDLE extension is now supported through the new idle(),
28idle_check() and idle_done() methods. See the example in
29imapclient/examples/idle_example.py.
30
31NOOP Support (#74) [NEW]
32------------------------
33The NOOP command is now supported. It returns parsed untagged server
34responses in the same format as idle_check() and idle_done().
35
36Sphinx Based Docs (#5) [NEW]
37----------------------------
38Full documentation is now available under doc/html in the source
39distribution and at http://imapclient.readthedocs.org/ online.
40
41Added rename_folder (#77) [NEW]
42--------------------------------
43Renaming of folders was an obvious omission!
44
45Minor Features
46--------------
47* interact.py can now read livetest.py INI files (#66)
48* interact.py can now embed shells from ipython 0.10 and 0.11 (#98)
49* interact.py and livetest.py are now inside the imapclient package so
50  they can be used even when IMAClient has been installed from PyPI
51  (#82)
52* Added "debug" propety and setting of a log file (#90)
53* "normalise_times" attribute allows caller to select whether
54  datetimes returned by fetch() are native or not (#96) (Thanks Andrew
55  Scheller)
56* Added imapclient.version_info - a tuple that contains the IMAPClient
57  version number broken down into it's parts.
58
59Small Bug Fixes
60---------------
61* getacl() was using wrong lexing class (#85) (Thanks josephhh)
62* Removed special handling for response tuples without whitespace
63  between them.  Post-process BODY/BODYSTRUCTURE responses
64  instead. This should not affect the external API. (#91) (Thanks
65  daishi)
66* Fix incorrect msg_id for UID fetch when use_uid is False (#99)
67
68=============
69 Version 0.7
70=============
71
72BODY and BODYSTRUCTURE parsing fixes (#58) [API CHANGE]
73-------------------------------------------------------
74The response values for BODY and BODYSTRUCTURE responses may include a
75sequence of tuples which are not separated by whitespace. These should
76be treated as a single item (a list of multiple arbitrarily nested
77tuples) but IMAPClient was treating them as separate items. IMAPClient
78now returns these tuples in a list to allow for consistent parsing.
79
80A BODYSTRUCTURE response for a multipart email with 2 parts would have
81previously looked something like this::
82
83  (('text', 'html', ('charset', 'us-ascii'), None, None, 'quoted-printable', 55, 3),
84   ('text', 'plain', ('charset', 'us-ascii'), None, None, '7bit', 26, 1),
85   'mixed', ('boundary', '===============1534046211=='))
86
87The response is now returned like this::
88
89  ([
90     ('text', 'html', ('charset', 'us-ascii'), None, None, 'quoted-printable', 55, 3),
91     ('text', 'plain', ('charset', 'us-ascii'), None, None, '7bit', 26, 1)
92   ],
93   'mixed', ('boundary', '===============1534046211=='))
94
95The behaviour for single part messages is unchanged. In this case the
96first element of the tuple is a string specifying the major content
97type of the message (eg "text").
98
99An is_multipart boolean property now exists on BODY and BODYSTRUCTURE
100responses to allow the caller to easily determine whether the response
101is for a multipart message.
102
103Code that expects the previous response handling behaviour needs to be
104updated.
105
106Live tests converted to use unittest2 (#4)
107------------------------------------------
108livetest.py now uses the unittest2 package to run the tests. This
109provides much more flexibility that the custom approach that was used
110before. Dependencies between tests are gone - each test uses a fresh
111IMAP connection and is preceeded by the same setup.
112
113unittest2.main() is used to provide a number of useful command line
114options and the ability to run a subset of tests.
115
116IMAP account parameters are now read using a configuration file
117instead of command line arguments. See livetest-sample.ini for an
118example.
119
120Added NAMESPACE support (#63) [API CHANGE]
121------------------------------------------
122namespace() method added and get_folder_delimiter() has been
123deprecated.
124
125Added support for FETCH modifiers (#62) [NEW]
126---------------------------------------------
127The fetch method now takes optional modifiers as the last
128argument. These are required for extensions such as RFC 4551
129(conditional store). Thanks to Thomas Jost for the patch.
130
131===============
132 Version 0.6.2
133===============
134
135Square brackets in responses now parsed correctly (#55)
136-------------------------------------------------------
137This fixes response handling for FETCH items such as
138``BODY[HEADER.FIELDS (from subject)]``.
139
140Example moved (#56)
141-------------------
142The example has been moved to imapclient/examples directory and is
143included when the IMAPClient is installed from PyPI.
144
145Distribute (#57)
146----------------
147The project is now packaged using Distribute instead of
148setuptools. There should be no real functional change.
149
150===============
151 Version 0.6.1
152===============
153
154Python SSL bug patch
155--------------------
156Automatically patch a bug in imaplib which can cause hangs when using
157SSL (Python Issue 5949). The patch is only applied when the running
158Python version is known to be affected by the problem.
159
160Doc update
161----------
162Updated the README to better reflect the current state of the project.
163
164=============
165 Version 0.6
166=============
167
168New response parser (#1, #45)
169-----------------------------
170Command response lexing and parsing code rewritten from stratch to
171deal with various bugs that surfaced when dealing with more complex
172responses (eg. BODYSTRUCTURE and ENVELOPE). This change also fixes
173various problems when interacting with Gmail and MS Exchange.
174
175XLIST extension support (#25) [NEW]
176-----------------------------------
177Where the server supports it, xlist_folders() will return a mapping of
178various common folder names to the actual server folder names. Gmail's
179IMAP server supports this.
180
181Added COPY command support (#36) [NEW]
182--------------------------------------
183New copy() method.
184 
185Added interact.py [NEW]
186-----------------------
187A script for interactive IMAPClient sessions. Useful for debugging and
188exploration. Uses IPython if installed.
189
190Full SELECT response (#24) [API CHANGE]
191---------------------------------------
192select_folder() now returns a dictionary with the full (parsed) SELECT
193command response instead of just the message count.
194
195Full list responses (#24) [API CHANGE]
196--------------------------------------
197The return value from list_folders(), list_sub_folders() and
198xlist_folders() now include the IMAP folder flags and delimiter.
199
200Folder name character encoding (#21) [API CHANGE]
201-------------------------------------------------
202Bytes that are greater than 0x7f in folder names are will cause an
203exception when passed to methods that accept folder name arguments
204because there is no unambigous way to handle these. Callers should
205encode such folder names to unicode objects first.
206
207Folder names are now always returned as unicode objects.
208
209Message sequence number now always returned in FETCH responses
210--------------------------------------------------------------
211Fetch responses now include a "SEQ" element which gives the message
212(non-UID) sequence number. This allows for easy mapping between UIDs
213and standard sequence IDs.
214
215Folder name handling fixes (#28, #42)
216-------------------------------------
217Various folder name handling bugs fixed.
218
219
220===============
221 Version 0.5.2
222===============
223
224Folder name quoting and escaping fixes (#28)
225--------------------------------------------
226Correctly handle double quotes and backslashes in folder names when
227parsing LIST and LSUB responses.
228
229Fixed fetch literal handling (#33)
230----------------------------------
231Fixed problem with parsing responses where a literal followed another
232literal.
233
234
235===============
236 Version 0.5.1
237===============
238
239License change
240--------------
241Changed license from GPL to new BSD.
242
243=============
244 Version 0.5
245=============
246
247SSL support
248-----------
249Support for SSL based connections by passing ssl=True when
250constructing an IMAPClient instance.
251
252Transparent folder encoding
253---------------------------
254Folder names are now encoded and decoded transparently if required
255(using modified UTF-7). This means that any methods that return folder
256names may return unicode objects as well as normal strings [API
257CHANGE]. Additionally, any method that takes a folder name now accepts
258unicode object too. Use the folder_encode attribute to control whether
259encode/decoding is performed.
260
261Unquoted folder name handling fix
262---------------------------------
263Unquoted folder names in server responses are now handled
264correctly. Thanks to Neil Martinsen-Burrell for reporting this bug.
265
266Fixed handling of unusual characters in folder names
267----------------------------------------------------
268Fixed a bug with handling of unusual characters in folder names.
269
270Timezone handling [API CHANGE]
271------------------------------
272Timezones are now handled correctly for datetimes passed as input and for
273server responses. This fixes a number of bugs with timezones. Returned
274datetimes are always in the client's local timezone.
275
276More unit tests
277---------------
278Many more unit tests added, some using Michael Foord's excellent
279mock.py.  (http://www.voidspace.org.uk/python/mock/)
280
281
Note: See TracBrowser for help on using the browser.