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