[python-ldap] ANN: python-ldap 3.0.0
Petr Viktorin
pviktori at redhat.com
Tue Mar 13 09:11:00 EDT 2018
Find a new release of python-ldap:
https://pypi.python.org/pypi/python-ldap/3.0.0
Notable changes since 2.4.45 (depending on what you are upgrading from,
some may already be in your current version):
* This is the first official release with Python 3 support. This
includes "bytes mode" to ease porting from Python 2; see the
documentation for more details:
https://python-ldap.readthedocs.io/en/latest/bytes_mode.html
* The module `ldap.async` is renamed to `ldap.asyncsearch`
* python-ldap now depends on pyasn1 and pyasn1_modules. When python-ldap
is installed using pip, these are pulled in automatically.
* Dropped support for Python 2.6 and 3.3
* Lots of other fixes and enhancement -- see the full list below.
If you find any issues, please report them either on this mailing list
or on the GitHub tracker:
https://github.com/python-ldap/python-ldap/issues
About the project:
python-ldap provides an object-oriented API to access LDAP directory
servers from Python programs. It mainly wraps the OpenLDAP 2.x libs
for that purpose. Additionally it contains modules for other
LDAP-related stuff (e.g. processing LDIF, LDAP URLs and LDAPv3
schema).
Project's web site:
https://www.python-ldap.org/
After years of being hosted by Michael Ströder (thank you!), the
project's website was merged with the documentation, and is hosted at
Read the Docs & Cloudflare.
Git commit hash for the release:
python-ldap-3.0.0 6e0dca67594dd90270864fcf24780472458ae642
----------------------------------------------------------------
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:
* merged from the pyldap fork (https://github.com/pyldap)
* please see documentation on bytes_mode and text/bytes handling:
https://python-ldap.readthedocs.io/en/latest/bytes_mode.html
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
More information about the python-ldap
mailing list