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