Releases: iustin/pyxattr
Release 0.8.1
Release 0.8.0
Mon, 12 Dec 2022
Minor bugfix release, but due to lack of CI environments supporting old
Python versions, only Python 3.7+ is supported. Otherwise:
- @Snape3058 found some refcount issues (see issue #35), these have been
fixed. - Tested and enabled Python 3.10 support, dropped < 3.7.
- Various improvements to the CI environments.
- Move fully to
setuptools
(where available), in preparation for 3.12
droppingdistutils
support.
Release 0.7.2
Minor release:
- Expand testing by adding better mixed-access checks (e.g. set via symlink and read on file) and by not leaking resources during tests.
- Enable testing with Python 3.9 and confirm compatibility with it.
- Fix documentation building with Sphinx 3.0+.
Python 3+ release
Major change: drop compatibility with Python 2, which allows significant
code cleanups.
Other changes:
- Switch internal implementation of argument parsing to a built-in one
(PyUnicode_FSConverter
), which brings automatic support for
path-like objects in Python 3.6+ (#20), and also a more uniform
handling of Unicode path arguments with respect to other Python code. - Fix missing error check in list operations in
get_all
(#17). - Switch test library to pytest; not that a reasonable recent version is
needed. Additionally, expand test coverage, although not directly
visible in actual coverage reports…
Version 0.7.1 is just 0.7.0 (the above changes) plus a minor typo fix.
Version 0.6.1
Minor bugfix, performance and compatibility release.
- Minor compatibility fix: on Linux, drop the use of the
attr
library,
and instead switch to the glibc headersys/xattr.h
, which is
provided for a really long time (since glibc 2.3). The formerly used
headerattr/xattr.h
has been removed from theattr
library in
version 2.4.48. Fix provided by Lars Wendler, many thanks! - Release the GIL when performing I/O. Patch proposed by xwhuang, many
thanks. I tested this a long while back it seemed to impact
performance on local filesystems, but upon further inspection, the
downsides are minor (between 0 and 5%, in many cases negligible). For
remote or slow filesystems, this should allow much increased
parallelism. - Fix symlink set operation on MacOS X; bugfix provided by adamlin, much
appreciated! This also uncovered testing problems related to symlinks,
which are now fixed (the bug would be caught by the updated tests).
Version 0.6.0
Bugfix and feature release (hence the version bump).
The main change is to the implementation of how attributes are listed and read. This was done due to existing race issues when attributes are modified while being read (github issue #12), but basically all various internal paths that dealt with retrieving an attribute value or listing attributes were unified in a single helper function that does handle such concurrent modifications. As a side effect, the size of the buffers used for such reads have changed, which (depending on attribute value) might change the trade-off between number of syscalls done and memory usage.
As feature release, OSX support was contributed by Adam Knight, thanks a lot! I don't have access to OSX so the testing for it is done via Travis builds; please report any issues.
Release 0.5.6 - small bugfixes
Small bugfix release:
- Fixes some sign-compare warnings
- Fixes potential name truncation in
merge_ns()
- Fixes building on systems which don't have
ENODATA
Tested with Python 2.7.11, Python 3.5.1 and PyPy 5.0.1.
Another bugfix release!
Bugfix release:
- fixes some more memory leaks when handling out-of-memory in get_all()
function - improve error reporting when an attribute disappears after we asked
for its length but before we managed to read it - fix int/size_t issues found by RedHat/Fedora,
https://bugzilla.redhat.com/show_bug.cgi?id=1127310; the fix is
different than their fix, but it should accomplish the same thing - convert all code to only do explicit casts after checking boundaries,
making the code-Wconversion
-clean (although that warning is not
enabled by default)
Minor release fixing a couple of memory leaks
Fix memory leaks on some of the error-handling paths of the get()
function.
Version 0.5.3
Small optimisations release:
- ari edelkind (@edelkind) contributed a speed-up optimisation for handling of files
without xattrs (which is, in general, the expected case) - Jonas Borgström (@jborg) contributed a behaviour change to the handling of file
names: under Python 3 and up, unicode paths are encoded/decoded using
the 'surogatee' handler, instead of the 'strict' handler; while this
can hide encoding errors, it mirrors what Python libraries do
(e.g. see os.fsencode/fsdecode) - Sean Patrick Santos (@quantheory) contributed improvements to the test suite so that
it can be used even on files systems which have built-in attributes
(e.g. when using SELinux, or NFSv4); to enable this, define the
attributes in the TEST_IGNORE_XATTRS environment variable