@encukou encukou released this May 25, 2018 · 5 commits to master since this release

Assets 2

Released 3.1.0 2018-05-25

This release brings two minor API changes:

  • Long-deprecated functions ldap.open() and ldap.init() are removed
  • LDAPObject.compare_s() and compare_ext_s return bool instead of 0 or 1

All changes since 3.0.0:

Lib/

  • Remove long deprecated functions ldap.open() and ldap.init()
  • LDAPObject.compare_s() and LDAPObject.compare_ext_s() now return a bool
    instead of 1 or 0.
  • Make iteration over cidict yield same values as keys()
  • Fail if pyasn1 is not installed
  • Fix parsing of PPolicyControl ASN.1 structure
  • Use items() when appropriate in dict iteration
  • Add support for tracing LDAP calls. Tracing can now be enabled with
    the env var PYTHON_LDAP_TRACE_LEVEL and redirected to a file with
    PYTHON_LDAP_TRACE_FILE.
    (This is mainly intended for debugging and internal testing; the
    configuration or output may change in future versions.)

Modules/

  • Fix ref counting bug in LDAPmessage_to_python

Doc/

  • Remove warning about unreleased version
  • Doc: Replace Mac OS X -> macOS

Tests/

  • Add tests and coverage for tracing
  • Disable warnings-as-errors for Python 3.4
  • Fix assertTrue to assertEqual
  • Mark several test values as bytes

Lib/slapdtest/

  • Fix error message for missing commands
  • Make SlapdObject a context manager
  • Disable SASL external when missing SASL support
  • Make SlapdObject.root_dn a property
  • In SlapdObject, build include directives dynamically
  • Move import statements to top level

Code style:

  • Add Makefile rules for automatic formatting of C and Python code
  • Reformat and indent all C files
  • Trim white space throughout the project

Infrastructure:

  • Add py3-trace tox environment to Travis CI config
  • Add new Pytest cache directory to gitignore

General:

  • Update all pypi.python.org URLs to pypi.org

@encukou encukou released this Mar 13, 2018 · 41 commits to master since this release

Assets 2

Notable changes since 2.4.45 (please see detailed logs below):


Released 3.0.0 2018-03-12

Changes since 3.0.0b4:

Lib/

  • Add bytes_strictness to allow configuring behavior on bytes/text mismatch

Modules/

  • Add argument name to bytes mode TypeError
  • Use correct integer types for BER encode/decode (fix for big endian machines)

Test/

  • Set $LDAPNOINIT in all tests
  • Add test for secure TLS default
  • Ignore SASL methods in DSE test (fix for restricted environments)
  • Remove filterstr workaround from syncrepl test
  • Explicitly set TLS_REQUIRE_CERT option to TLS_HARD in test_tls_ext_noca

Doc/

  • Link to bytes mode from text-string arguments in the ldap module

Infrastructure:

  • Include lber in list of libraries in setup.cfg

Released 3.0.0b4 2018-01-10

Changes since 3.0.0b3:

Removed support for Python 3.3, which reached its end-of-life 2017-09-29.

Lib/

  • Make default argument values work under bytes_mode
  • Update use of map() to use list/set comprehensions instead

Test/

  • Refactor syncrepl tests to run with bytes_mode

Doc/

  • Document all_records attribute of LDIFRecordList

Released 3.0.0b3 2017-12-20

Changes since 3.0.0b2:

The functions ldap.open(), ldap.init(), ldif.CreateLDIF()
and ldif.ParseLDIF(), which were deprecated for over a decade,
are scheduled for removal in python-ldap 3.1.

Infrastructure:

  • Require setuptools to build
  • Start running automatic tests on PyPy

Lib/

  • When raising LDAPBytesWarning, give helpful code locations
  • Use modern Python idioms in several places
  • Avoid reimplementing UserDict.get() in cidict and models.Entry

Doc/

  • Use https links

Test/

  • Add reproducer for openldap's NSS shutdown/restart issue
  • Make testing on non-Linux platforms easier

Released 3.0.0b2 2017-12-11

Changes since 3.0.0b1:

The module ldap.async is renamed to ldap.asyncsearch, due to
async becoming a keyword in Python 3.7.
The old module name is deprecated, but will be available as long
as Python 3.6 is supported.

Lib/

  • Use custom ldap.LDAPBytesWarning class
  • Rename ldap.async to ldap.asyncsearch

Modules/

  • Support None for set_option(OPT_TIMEOUT) and OPT_NETWORK_TIMEOUT
  • Fix error reporting of LDAPObject.set_option()
  • Change memory handling in attrs_from_List()

Test/

  • Remove workaround for OpenLDAP NSS issue

Demo/

  • Use uniform shebang in all demos

Doc/

  • Provide build deps for Alpine and CentOS
  • Move sample workflow out of the main Contributing guide

Infrastructure:

  • Add valgrind target to check for memory leaks
  • Minimal configuration for pytest

Released 3.0.0b1 2017-12-04

Changes since 2.4.45:
(this list includes changes from 2.5.x)

New dependencies (automatically installed when using pip):

  • pyasn1 0.3.7+
  • pyasn1_modules 0.1.5+

Python 3 support and bytes_mode:

Removed support for Python 2.6.

Infrastructure:

  • Move to Git
  • Don't define search path for includes and libs in the default setup.cfg
  • Include sasl/sasl.h from the standard path
  • Re-format README to ReStructured Text
  • Setup for automatic testing using Travis CI
  • Add coverage reporting for Python and C
  • Add install requires into setup.py
  • Remove distclean.sh in favor of make clean
  • Use package, depends, install_requires in setup.py
  • Add make target for scan-build (static analysis using clang)
  • Add make target and suppression file for Valgrind (memory checker)

Modules/

  • Remove unused LDAPberval helper functions
  • Fix type conversion in page control
  • Fix multiple ref leaks in error-handling code
  • Fix reference leak in result4
  • Fix several compiler warnings
  • Fix memory leak in whoami
  • Fix internal error handling of LDAPControl_to_List()
  • Fix two memory leaks and release GIL in encode_assertion_control
  • Allow set_option() to set timeouts to infinity
    and, thanks to Michael Ströder:
  • removed unused code schema.c
  • moved code from version.c to ldapmodule.c
  • removed obsolete back-ward compability constants from common.h
  • build checks whether LDAP_API_VERSION is OpenLDAP 2.4.x
  • _ldap.author and _ldap.license also set from ldap.pkginfo
  • assume C extension API for Python 2.7+

Lib/

  • Avoid eval() for getting module-level variables to fix running under pytest
  • Compability changes for pyasn1 0.3 or newer
    and, thanks to Michael Ströder:
  • ldap.version, ldap.author and ldap.license now
    imported from new sub-module ldap.pkginfo also to setup.py
  • Added safety assertion when importing _ldap:
    ldap.pkginfo.version must match _ldap.version
  • removed stand-alone module dsml
  • slapdtest.SlapdObject.restart() just restarts slapd
    without cleaning any data
  • The methods SSSResponseControl.decodeControlValue() and
    VLVResponseControl.decodeControlValue() now follow the coding
    convention to use camel-cased ASN.1 name as class attribute name.
    The old class names are still set for back-ward compability
    but should not be used in new code because they might be removed
    in a later release.
  • removed SSSRequestControl from ldap.controls.KNOWN_RESPONSE_CONTROLS
  • removed all dependencies on modules string and types
  • removed use of .has_key()
  • removed class ldap.ldapobject.NonblockingLDAPObject
  • new global constant ldap.LIBLDAP_API_INFO
  • right after importing _ldap there is a call into libldap to initialize it
  • method .decodeControlValue() of SSSResponseControl and VLVResponseControl
    does not set class attribute result_code anymore
  • always use bytes() for UUID() constructor in ldap.syncrepl
  • module ldif now uses functions b64encode() and b64decode()
  • fixed pickling and restoring of ReconnectLDAPObject

Lib/slapdtest

  • Automatically try some common locations for SCHEMADIR
  • Ensure server is stopped when the process exits
  • Check for LDAP schema and slapd binaries
  • slapdtest is now a package and includes testing certificates

Tests/

  • Expand cidict membership test
  • Add test suite for binds
  • Add test suite for edits
  • Add a smoke-check for listall() and attribute_types()
  • Add test case for SASL EXTERNAL auth
  • Add tests for start_tls
  • In CI, treat compiler warnings as fatal errors
  • Added tests for ldap.syncrepl
    and, thanks to Michael Ströder:
  • added explicit reconnect tests for ReconnectLDAPObject
  • scripts do not directly call SlapdTestCase.setUpClass() anymore
  • added LDIF test with folded, base64-encoded attribute
  • added more tests for sub-module ldap.dn

Doc/

  • Build documentation without the compiled C extension
  • Merge contents from python-ldap.org
  • Move reference documentation in its own section
  • Document return value of {modify,add,delete}_ext_s() as a tuple
  • Add tests for documentation (build & spelling)
  • Link to documentation of old versions
  • Add a contributing guide
Pre-release
Pre-release

@encukou encukou released this Jan 10, 2018 · 53 commits to master since this release

Assets 2

Released 3.0.0b4 2018-01-10

Changes since 3.0.0b3:

Removed support for Python 3.3, which reached its end-of-life 2017-09-29.

Lib/

  • Make default argument values work under bytes_mode
  • Update use of map() to use list/set comprehensions instead

Test/

  • Refactor syncrepl tests to run with bytes_mode

Doc/

  • Document all_records attribute of LDIFRecordList
Pre-release

@encukou encukou released this Dec 20, 2017 · 70 commits to master since this release

Assets 2

Released 3.0.0b3 2017-12-20

Changes since 3.0.0b2:

The functions ldap.open(), ldap.init(), ldif.CreateLDIF()
and ldif.ParseLDIF(), which were deprecated for over a decade,
are scheduled for removal in python-ldap 3.1.

Infrastructure:

  • Require setuptools to build
  • Start running automatic tests on PyPy

Lib/

  • When raising LDAPBytesWarning, give helpful code locations
  • Use modern Python idioms in several places
  • Avoid reimplementing UserDict.get() in cidict and models.Entry

Doc/

  • Use https links

Test/

  • Add reproducer for openldap's NSS shutdown/restart issue
  • Make testing on non-Linux platforms easier
Pre-release

@encukou encukou released this Dec 20, 2017 · 94 commits to master since this release

Assets 2

Released 3.0.0b2 2017-12-11

Changes since 3.0.0b1:

The module ldap.async is renamed to ldap.asyncsearch, due to
async becoming a keyword in Python 3.7.
The old module name is deprecated, but will be available as long
as Python 3.6 is supported.

Lib/

  • Use custom ldap.LDAPBytesWarning class
  • Rename ldap.async to ldap.asyncsearch

Modules/

  • Support None for set_option(OPT_TIMEOUT) and OPT_NETWORK_TIMEOUT
  • Fix error reporting of LDAPObject.set_option()
  • Change memory handling in attrs_from_List()

Test/

  • Remove workaround for OpenLDAP NSS issue

Demo/

  • Use uniform shebang in all demos

Doc/

  • Provide build deps for Alpine and CentOS
  • Move sample workflow out of the main Contributing guide

Infrastructure:

  • Add valgrind target to check for memory leaks
  • Minimal configuration for pytest
Pre-release

@encukou encukou released this Dec 20, 2017 · 115 commits to master since this release

Assets 2

Released 3.0.0b1 2017-12-04

Changes since 2.4.45:
(this list includes changes from 2.5.x)

New dependencies (automatically installed when using pip):

  • pyasn1 0.3.7+
  • pyasn1_modules 0.1.5+

Python 3 support and bytes_mode:

Removed support for Python 2.6.

Infrastructure:

  • Move to Git
  • Don't define search path for includes and libs in the default setup.cfg
  • Include sasl/sasl.h from the standard path
  • Re-format README to ReStructured Text
  • Setup for automatic testing using Travis CI
  • Add coverage reporting for Python and C
  • Add install requires into setup.py
  • Remove distclean.sh in favor of make clean
  • Use package, depends, install_requires in setup.py
  • Add make target for scan-build (static analysis using clang)
  • Add make target and suppression file for Valgrind (memory checker)

Modules/

  • Remove unused LDAPberval helper functions
  • Fix type conversion in page control
  • Fix multiple ref leaks in error-handling code
  • Fix reference leak in result4
  • Fix several compiler warnings
  • Fix memory leak in whoami
  • Fix internal error handling of LDAPControl_to_List()
  • Fix two memory leaks and release GIL in encode_assertion_control
  • Allow set_option() to set timeouts to infinity
    and, thanks to Michael Ströder:
  • removed unused code schema.c
  • moved code from version.c to ldapmodule.c
  • removed obsolete back-ward compability constants from common.h
  • build checks whether LDAP_API_VERSION is OpenLDAP 2.4.x
  • _ldap.author and _ldap.license also set from ldap.pkginfo
  • assume C extension API for Python 2.7+

Lib/

  • Avoid eval() for getting module-level variables to fix running under pytest
  • Compability changes for pyasn1 0.3 or newer
    and, thanks to Michael Ströder:
  • ldap.version, ldap.author and ldap.license now
    imported from new sub-module ldap.pkginfo also to setup.py
  • Added safety assertion when importing _ldap:
    ldap.pkginfo.version must match _ldap.version
  • removed stand-alone module dsml
  • slapdtest.SlapdObject.restart() just restarts slapd
    without cleaning any data
  • The methods SSSResponseControl.decodeControlValue() and
    VLVResponseControl.decodeControlValue() now follow the coding
    convention to use camel-cased ASN.1 name as class attribute name.
    The old class names are still set for back-ward compability
    but should not be used in new code because they might be removed
    in a later release.
  • removed SSSRequestControl from ldap.controls.KNOWN_RESPONSE_CONTROLS
  • removed all dependencies on modules string and types
  • removed use of .has_key()
  • removed class ldap.ldapobject.NonblockingLDAPObject
  • new global constant ldap.LIBLDAP_API_INFO
  • right after importing _ldap there is a call into libldap to initialize it
  • method .decodeControlValue() of SSSResponseControl and VLVResponseControl
    does not set class attribute result_code anymore
  • always use bytes() for UUID() constructor in ldap.syncrepl
  • module ldif now uses functions b64encode() and b64decode()
  • fixed pickling and restoring of ReconnectLDAPObject

Lib/slapdtest

  • Automatically try some common locations for SCHEMADIR
  • Ensure server is stopped when the process exits
  • Check for LDAP schema and slapd binaries
  • slapdtest is now a package and includes testing certificates

Tests/

  • Expand cidict membership test
  • Add test suite for binds
  • Add test suite for edits
  • Add a smoke-check for listall() and attribute_types()
  • Add test case for SASL EXTERNAL auth
  • Add tests for start_tls
  • In CI, treat compiler warnings as fatal errors
  • Added tests for ldap.syncrepl
    and, thanks to Michael Ströder:
  • added explicit reconnect tests for ReconnectLDAPObject
  • scripts do not directly call SlapdTestCase.setUpClass() anymore
  • added LDIF test with folded, base64-encoded attribute
  • added more tests for sub-module ldap.dn

Doc/

  • Build documentation without the compiled C extension
  • Merge contents from python-ldap.org
  • Move reference documentation in its own section
  • Document return value of {modify,add,delete}_ext_s() as a tuple
  • Add tests for documentation (build & spelling)
  • Link to documentation of old versions
  • Add a contributing guide
Nov 12, 2017
prepare release 2.5.1
Nov 12, 2017
* The methods SSSResponseControl.decodeControlValue() and
  VLVResponseControl.decodeControlValue() now follow the coding
  convention to use camel-cased ASN.1 name as class attribute name.
  The old class names are still set for back-ward compability
  but should not be used in new code because they might be removed
  in a later release.
* removed SSSRequestControl from ldap.controls.KNOWN_RESPONSE_CONTROLS