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