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