Skip to content

Releases: iustin/pylibacl

Minor test fixes for Python 3.14 compatibility

Choose a tag to compare

@iustin iustin released this 12 Jul 19:18
v0.7.3

This is a test-only changes release, removing some very old testing for reference counts, introduced in 2012, but which stopped working with Python 3.14 as it changed reference counting by introducing optimizations in some cases. No need to upgrade unless you want to make sure the test suite passes on 3.14, and no real failures are hidden by the broken reference testing.

Additionally, the release enables CI on Python 3.14, thanks Marcin Zajączkowski!

Fix typing hints

Choose a tag to compare

@iustin iustin released this 23 Feb 22:06
v0.7.2

Single-bugfix release: fixed the typing stub module. Nothing exercised it, and having been generated with pre-3.6 stubgen, it failed to work on modern versions. No tests failed (should add some), but the doc build by Sphinx failed accidentally since the failure to import (which was ignored) led to a missing title for the module, which Sphinx complained about. Quite funny :)

Minor maintenance release

Choose a tag to compare

@iustin iustin released this 14 Feb 21:29
v0.7.1

Minor version, with a few test improvements, and updated documentation building dependencies. No user-visible changes otherwise.

Tested with CPython versions 3.7-3.13, and PyPy 3.7-3.10.

Release 0.7.0

Choose a tag to compare

@iustin iustin released this 23 Apr 20:23
v0.7.0

Important: Python 3.7 is the minimum supported version, due to difficulty of testing old releases, and the fact that everything older has been deprecated a long time ago (e.g. 3.6 at the end of 2021).

Otherwise, a minor release:

  • Improve error handling in some corner cases (not expected to have any real-life impact, but who knows).
  • Improved testing coverage and test infrastructure.
  • Modernise parts of the C code based on recent Python version guidelines.
  • Add a simple security policy and contribution guidelines.

Release 0.6.0 - Python 3 only!

Choose a tag to compare

@iustin iustin released this 29 Nov 01:47
v0.6.0

Major release removing Python 2 support. This allow both code cleanup
and new features, such as:

  • Support for pathlib objects in apply_to and has_extended functions when running with Python 3.6 and newer.
  • Use of built-in C API functions for bytes/unicode/pathlib conversion when dealing with file names, removing custom code (with the
    associated benefits).

Important API changes/bug fixes:

  • Initialisation protocol has been changed, to disallow uninitialised objects; this means that __new__ will always create valid objects,
    to prevent the need for checking initialisation status in all code paths; this also (implicitly) fixes memory leaks on re-initialisation
    (calling __init__(…) on an existing object) and segfaults (!) on non-initialised object attribute access. Note ACL re-initialisation is
    tricky and (still) leads to undefined behaviour of existing Entry objects pointing to it.
  • Fix another bug in ACL re-initialisation where failures would result in invalid objects; now failed re-initialisation does not touch the
    original object.
  • Restore __setstate__/__getstate__ support on Linux; this was inadvertently removed due a typo(!) when adding support for it in
    FreeBSD. Pickle should work again for ACL instances, although not sure how stable this serialisation format actually is.
  • Additionally, slightly change __setstate__() input to not allow Unicode, since the serialisation format is an opaque binary format.
  • Fix (and change) entry qualifier (which is a user/group ID) behaviour: assume/require that uid_t/gid_t are unsigned types (they are with
    glibc, MacOS and FreeBSD at least; the standard doesn't document the signedness), and convert parsing and returning the qualifier to behave accordingly. The breakage was most apparent on 32-bit architectures, in which context the problem was originally reported (see issue #13).

Minor improvements:

  • Added a data keyword argument to ACL(), which allows restoring an ACL directly from a serialised form (as given by __getstate__()),
    which should simplify some uses cases (a = ACL(); a.__setstate__(…)).
  • When available, add the file path to I/O error messages, which should lead to easier debugging.
  • The test suite has changed to pytest, which allows increased coverage via parameterisation.

Release 0.5.4

Choose a tag to compare

@iustin iustin released this 14 Nov 11:23
pylibacl-v0.5.4

Maintenance release:

  • Switch build system to Python 3 by default (can be overridden if
    needed).
  • Internal improvements for better cpychecker support.
  • Fix compatibility with PyPy.
  • Test improvements (both local and on Travis), testing more variations
    (debug, PyPy).
  • Improve test coverage, and allow gathering test coverage results.
  • Drop support (well, drop testing) for Python lower than 2.7.
  • Minor documentation improvements (closes #9, #12).

FreeBSD fixes release

Choose a tag to compare

@iustin iustin released this 30 Apr 20:44
pylibacl-v0.5.3

FreeBSD fixes:

  • Enable all FreeBSD versions after 7.x at level 2 (thanks to Garrett
    Cooper).
  • Make test suite pass under FreeBSD, which has a stricter behaviour
    with regards to invalid ACLs (which we do exercise in the test suite),
    thanks again to Garret for the bug reports.

Version 0.5.2

Choose a tag to compare

@iustin iustin released this 23 May 22:45
pylibacl-v0.5.2

No visible changes release: just fix tests when running under pypy.