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