Version bump for releasing 0.6.0
[pyxattr.git] / NEWS
1 News
2 ====
3
4 Version 0.6.0
5 -------------
6
7 *released Mon, 23 Jan 2017*
8
9 Bugfix and feature release (hence the version bump).
10
11 The main change is to the implementation of how attributes are listed
12 and read. This was done due to existing race issues when attributes are
13 modified while being read (github issue #12), but basically all various
14 internal paths that dealt with retrieving an attribute value or listing
15 attributes were unified in a single helper function that does handle
16 such concurrent modifications. As a side effect, the size of the buffers
17 used for such reads have changed, which (depending on attribute value)
18 might change the trade-off between number of syscalls done and memory
19 usage.
20
21 As feature release, OSX support was contributed by Adam Knight
22 <adam@movq.us>, thanks a lot! I don't have access to OSX so the testing
23 for it is done via Travis builds; please report any issues.
24
25 Version 0.5.6
26 -------------
27
28 *released Sat, 09 Apr 2016*
29
30 Small bugfix release:
31
32 * Fixes some sign-compare warnings
33 * Fixes potential name truncation in merge_ns()
34 * Fixes building on systems which don't have ENODATA
35
36 Tested with Python 2.7.11, Python 3.5.1 and PyPy 5.0.1.
37
38 Version 0.5.5
39 -------------
40
41 *released Fri, 01 May 2015*
42
43 Bugfix release:
44
45 * fixes some more memory leaks when handling out-of-memory in get_all()
46   function
47 * improve error reporting when an attribute disappears after we asked
48   for its length but before we managed to read it
49 * fix int/size_t issues found by RedHat/Fedora,
50   https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
51   different than their fix, but it should accomplish the same thing
52 * convert all code to only do explicit casts after checking boundaries,
53   making the code `-Wconversion`-clean (although that warning is not
54   enabled by default)
55
56 Version 0.5.4
57 -------------
58
59 *released Thu, 30 Apr 2015*
60
61 Fix memory leaks on some of the error-handling paths of the `get()`
62 function.
63
64 Version 0.5.3
65 -------------
66
67 *released Fri, 23 May 2014*
68
69 Small optimisations release:
70
71 * ari edelkind contributed a speed-up optimisation for handling of files
72   without xattrs (which is, in general, the expected case)
73 * Jonas Borgström contributed a behaviour change to the handling of file
74   names: under Python 3 and up, unicode paths are encoded/decoded using
75   the 'surogatee' handler, instead of the 'strict' handler; while this
76   can hide encoding errors, it mirrors what Python libraries do
77   (e.g. see os.fsencode/fsdecode)
78 * Sean Patrick Santos contributed improvements to the test suite so that
79   it can be used even on files systems which have built-in attributes
80   (e.g. when using SELinux, or NFSv4); to enable this, define the
81   attributes in the TEST_IGNORE_XATTRS environment variable
82
83 Version 0.5.2
84 -------------
85
86 *released Thu, 03 Jan 2013*
87
88 Bug-fix release. Thanks to Michał Górny, it looked like the library had
89 problem running under pypy, but actually there was a bug in the
90 PyArg_ParseTuple use of et# (signed vs. unsigned, and lack of compiler
91 warnings). This was fixed, and now the test suite passed with many
92 CPython versions and PyPy (version 1.9).
93
94 Version 0.5.1
95 -------------
96
97 *released Wed, 16 May 2012*
98
99 Bug-fix release. Thanks to Dave Malcolm and his cpychecker tool, a
100 number of significant bugs (refcount leaks and potential NULL-pointer
101 dereferences) have been fixed.
102
103 Furthermore, compatibility with Python 3 has been improved; this however
104 required changing the meaning of the ``namespace`` argument to the
105 functions: if passed, None is no longer a valid value; pass an empty
106 string if (due to the structure of your program) you have to pass this
107 argument but want to specify no namespace.
108
109 Also, the project home page has changed from SourceForge to GitHub, and
110 the documentation has been converted from epydoc-based to sphinx.
111
112
113 Version 0.5
114 -----------
115
116 *released Sun, 27 Dec 2009*
117
118 Implemented support for Python 3. This required a significant change to
119 the C module, hence the new version number.
120
121 Version 0.4
122 -----------
123
124 *released Mon, 30 Jun 2008*
125
126 API
127 ~~~
128
129 The old functions ({get,set,list,remove}xattr) are deprecated and replaced with
130 a new API that is namespace-aware and hopefully will allow other OSes (e.g.
131 FreeBSD) to be supported more naturally.
132
133 Both the old and the new API are supported in the 0.4 versions, however users
134 are encouraged to migrate to the new API.
135
136 New features
137 ~~~~~~~~~~~~
138
139 A new bulk get function called get_all() has been added that should be somewhat
140 faster in case of querying files which have many attributes.
141
142 License
143 ~~~~~~~
144
145 Since LGPLv3 is not compatible with GPLv2 (which unfortunately I didn't realize
146 before), the license was changed to LGPLv2.1 or later.
147
148 Internals
149 ~~~~~~~~~
150
151 Unittest coverage was improved.
152
153 Version 0.3
154 -----------
155
156 *released Sun, 09 Mar 2008*
157
158 * changed licence from GPL to LGPL (3 or later)
159 * changed listxattr return type from tuple to a list
160 * developer-related: added unittests
161
162 Version 0.2.2
163 -------------
164
165 *released Sun, 01 Jul 2007*
166
167 * fixed listing symlink xattrs
168
169 Version 0.2.1
170 -------------
171
172 *released Sat, 11 Feb 2006*
173
174 * fixed a bug when reading symlink EAs (you weren't able to
175   do it, actually)
176 * fixed a possible memory leak when the actual read of the EA
177   failed but the call to get the length of the EA didn't
178
179 .. Local Variables:
180 .. mode: rst
181 .. fill-column: 72
182 .. End: