CHANGES
=======

5.7.0
-----

* Add typing classifier
* Enable logging related ruff checks
* Run mypy from tox
* Delay string interpolations at logging calls
* Remove reference to tag framework

5.6.0
-----

* Deprecate warn\_on\_missing\_entrypoint parameter
* Add py.typed file
* Unskip test
* Add conflict resolution support
* Make better use of super
* typing: Remove use of \_init\_attributes (2/2)
* typing: Remove use of \_init\_attributes (1/2)
* typing: Remove unnecessary method subclass
* docs: Update to use pyproject.toml
* tests: Trivial fixups
* Remove unnecessary type docstring field lists
* typing: Add hints to tests
* typing: Make better use of ParamSpec
* typing: Add initial type hints
* Deprecate verify\_requirements flag
* Remove use of mutable default param
* trivial: Remove references to importlib\_metadata
* Enable ruff, ruff-format
* Apply ruff, ruff-format
* docs: Remove cruft from configuration files
* pre-commit: Bump versions
* reno: Update master for unmaintained/2024.1
* Bump pyupgrade target to 3.10+
* Migrate bandit options to pyproject.toml
* pre-commit: Bump dependencies
* Migrate setup configuration to pyproject.toml
* Drop Python 3.9 support
* Update master for stable/2025.2

5.5.0
-----

* add pyproject.toml to support pip 23.1
* tox: Remove basepython
* Update master for stable/2025.1

5.4.1
-----

* Skip installation to speed up pep8
* reno: Update master for unmaintained/2023.1

5.4.0
-----

* Remove explicit pbr dependency
* Add note about requirements lower bounds
* Remove Python 3.8 support
* Run pyupgrade to clean up Python 2 syntaxes
* Declare Python 3.12 support
* Update master for stable/2024.2

5.3.0
-----

* reno: Update master for unmaintained/zed
* Remove old excludes
* Update master for stable/2024.1
* reno: Update master for unmaintained/xena
* reno: Update master for unmaintained/wallaby
* reno: Update master for unmaintained/victoria

5.2.0
-----

* pre-commit: Integrate bandit
* pre-commit: Bump versions
* reno: Update master for unmaintained/yoga
* Bump hacking
* Update python classifier in setup.cfg
* Update master for stable/2023.2

5.1.0
-----

* Revert "Moves supported python runtimes from version 3.8 to 3.10"
* Moves supported python runtimes from version 3.8 to 3.10
* Update master for stable/2023.1

5.0.0
-----


4.1.1
-----

* Order old importlib-metadata results by group

4.1.0
-----

* Remove Extension.extras
* Fix compatibility with Python 3.12, importlib-metadata 5.0
* Fix compatibility with Python 3.10, 3.9.11
* Catch NotADirectoryError error
* Add Python3 antelope unit tests
* Update master for stable/zed
* remove unicode from code

4.0.0
-----

* Fix remaining logic to support Python 3.6/7
* Drop python3.6/3.7 support in testing runtime
* Add Python3 zed unit tests
* Update master for stable/yoga

3.5.0
-----

* Add Python3 yoga unit tests
* Update master for stable/xena
* Rely on member access, the preferred access since importlib\_metadata 4.8

3.4.0
-----

* setup.cfg: Replace dashes with underscores
* Fix formatting of release list
* Remove lower-constraints remnants
* Move flake8 as a pre-commit local target
* Add Python3 xena unit tests
* Update master for stable/wallaby
* Dropping lower constraints testing

3.3.0
-----

* Use TOX\_CONSTRAINTS\_FILE
* Use py3 as the default runtime for tox
* Adding pre-commit
* Fix cache dir flooding when running from /tmp
* Add Python3 wallaby unit tests
* Update master for stable/victoria

3.2.2
-----

* fix supported python versions in documentation

3.2.1
-----

* Fix the bug 1892610. There're some syntax errors in the comment of stevedore code

3.2.0
-----

* add property methods to extension for more entry point values

3.1.0
-----

* sphinxext: fix warning message for detailed list

3.0.0
-----

* add release note before major version update
* switch to importlib.metadata package

2.0.1
-----

* Remove Travis CI config
* Replace external mock with built-in unittest.mock

2.0.0
-----

* Stop to use the \_\_future\_\_ module
* Switch to newer openstackdocstheme and reno versions
* Add Python3 victoria unit tests
* Mark sphinx extensions thread safe
* Remove dead files
* Drop Python 2.7 support
* Update master for stable/ussuri

1.32.0
------

* Switch to Ussuri jobs
* Blacklist sphinx 2.1.0 (autodoc bug)
* Update the constraints url
* Update master for stable/train

1.31.0
------

* Add Python 3 Train unit tests
* Add local bindep.txt
* Cap Bandit below 1.6.0 and update Sphinx requirement
* update git.openstack.org to opendev
* OpenDev Migration Patch
* Dropping the py35 testing
* Update master for stable/stein
* Delete repeated param description
* add python 3.7 unit test job

1.30.1
------

* Use template for lower-constraints
* Change openstack-dev to openstack-discuss

1.30.0
------

* Update sphinx logging to not use app object
* Removed older version of python added 3.5
* Update doc/conf.py to avoid warnings with sphinx 1.8
* add lib-forward-testing-python3 test job
* fix wrong link
* add python 3.6 unit test job
* import zuul job settings from project-config
* Update reno for stable/rocky

1.29.0
------

* Remove unnecessary py27 testenv
* Switch to stestr
* fix tox python3 overrides
* Trivial: Update pypi url to new url
* Trivial: Update pypi url to new url
* set default python to python3
* add lower-constraints job
* Updated from global requirements
* Update links in README
* Update reno for stable/queens
* Updated from global requirements
* Updated from global requirements
* Follow the new PTI for document build

1.28.0
------

* Updated from global requirements
* Remove -U from pip install
* Avoid tox\_install.sh for constraints support
* add bandit to pep8 job
* move doc requirements to doc/requirements.txt
* Remove setting of version/release from releasenotes
* Updated from global requirements

1.27.1
------

* Move reno to optional docs requirements
* Remove duplicate optional requirement

1.27.0
------

* Updated from global requirements

1.26.0
------

* Updated from global requirements
* Remove Pillow from test-requirements
* Make openstackdocstheme an optional doc dependency
* Updated from global requirements
* Add an ExtensionManager.items() method
* Update reno for stable/pike
* Updated from global requirements

1.25.0
------

* Update URLs in documents according to document migration

1.24.0
------

* switch from oslosphinx to openstackdocstheme
* turn on warning-is-error for doc build
* move documentation into the new standard layout
* Updated from global requirements
* fix setuptools url

1.23.0
------

* Updated from global requirements
* Remove 'run\_sphinx' script
* Remove unused doc/requirements.txt
* Mark as Production/Stable instead of Alpha

1.22.0
------

* Remove oslotest from test-requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Update reno for stable/ocata

1.21.0
------

* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Remove support for py34

1.20.0
------

* extension: add entry\_point\_names method
* extension: expose \_find\_entry\_points as list\_entry\_points
* Allow suppression of warnings from DriverManager
* Show team and repo badges on README
* Add Constraints support

1.19.1
------

* Broken link at stevedore developer documentation

1.19.0
------

* Add Apache 2.0 license to source file
* Updated from global requirements
* Add reno for release notes management
* Updated from global requirements
* Remove reference to non-existing page

1.18.0
------

* Updated from global requirements
* Fix typos in exception.py

1.17.1
------

* do not emit warnings for missing hooks

1.17.0
------

* Remove discover from test-requirements
* make error reporting for extension loading quieter
* Add Python 3.5 classifier and venv
* Replace assertEquals() with assertEqual()

1.16.0
------

* Fix NamedExtensionManager fails when loading failing extension in order
* Remove irrelated output item
* Fix broken link about setuptools entry points
* NamedExtensionManager: call a callback when some names cannot be found
* Updated from global requirements

1.15.0
------

* Updated from global requirements

1.14.0
------

* Trivial: ignore openstack/common in flake8 exclude list

1.13.0
------

* dont claim copyright for future years

1.12.0
------

* Add a reference to entry\_point\_inspector

1.11.0
------

* Updated from global requirements
* Trival:Remove unused logging import
* Remove work around for NullHandler
* remove unnecessary dependency on argparse

1.10.0
------

* Use Stevedore exceptions for finding extensions
* Clean up Python 2.6 related stuff
* Updated from global requirements
* Remove Python 2.6 classifier
* cleanup tox.ini

1.9.0
-----

* Updated from global requirements
* docs - Set pbr 'warnerrors' option for doc build
* Add clarifying language to description of scanning for plugins
* clean up default tox environment list
* Show how to add a plugin in a separate package
* replace the hard-coded history list with an auto-generated one
* Fix spelling typo for maunal
* Updated from global requirements
* Examples typo fix

1.8.0
-----

* Updated from global requirements
* Updated from global requirements
* Updated from global requirements

1.7.0
-----

* Updated from global requirements
* Updated from global requirements
* Titlecase looks nicer sometimes in detailed mode
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Update homepage to openstack hosted docs page

1.6.0
-----

* Document the signature for check\_func
* Updated from global requirements
* Switch badges from 'pypip.in' to 'shields.io'
* Remove unnecessary openstack-common.conf

1.5.0
-----

* Removed non-free color profile from .jpg
* Add sphinx integration
* Updated from global requirements
* Fix Python versions supported
* Remove run\_cross\_tests.sh
* fix author contact details
* re-raise exception with full traceback

1.4.0
-----

* Uncap library requirements for liberty
* Add pypi download + version badges
* Updated from global requirements

1.3.0
-----

* Updated from global requirements
* Fix test for finding multiple drivers
* ignore .testrepository directory created by testr
* clean up default environments run by tox

1.2.0
-----

* Use pkg\_resources resolve() and require() instead of load()
* Fix the README.rst file format for pypi
* Workflow documentation is now in infra-manual
* Implement a \_\_contains\_\_ override for extension manager
* Update link to docs in README
* Bring doc build up to standard

1.1.0
-----

* Add pbr to dependency list
* Updated from global requirements
* Add more detail to the README
* Migrate tox to use testr
* Update repository location in docs

1.0.0
-----

* Build universal wheels
* Work toward Python 3.4 support and testing
* warn against sorting requirements

1.0.0.0a1
---------

* Updated from global requirements
* Fix incorrect image reference in documentation
* Fix requirement handling in tox
* Updated from global requirements
* use six.add\_metaclass
* Updated from global requirements
* driver: raise by default on import failure
* Add doc requirements to venv environ
* Import run\_cross\_tests.sh from oslo-incubator
* fix link to entry point docs

0.15
----

* Only log error when no load handler is set
* Update readme with links to bug tracker and source
* Update .gitreview after moving the repository

0.14.1
------

* Fix the test manager implementation

0.14
----

* prep history for 0.14 release
* Make requirements checking optional
* Update docstrings
* Remove requirements checking for dependencies
* fix typo in contrib docs
* Add contributing instructions for github mirrors
* Allow a on\_load\_failure\_callback to be provided
* Add venv environment to tox
* driver: remove useless arg propagate\_map\_exceptions
* Move to stackforge
* update release announcement file
* update release number in history

0.13
----

* update history file before release
* deprecate TestExtensionManager
* clean up docs for DriverManager
* simplify test instance factory contract
* driver extension manager test instance factory
* enabled extension manager test instance factory
* make Extension responsible for formatting its target name
* add test instance factory for the base, named, and hook managers
* use item access instead of temporary dict when ordering extensions
* DOC: Updated index.rst: distribute -> setuptools
* a work-around to avoid cpython bug (15881)
* add pypy to travis config
* add pypy to default test env list
* Fix pip call in tox config
* fix version number in blog announcement file

0.12
----

* update history and announce file for release
* remove version from setup.cfg and rely on git tag
* Switch to pbr
* Fix flake8 failures from pull/27
* Add map\_method function to managers
* Fixes reporting the error when drivers have the same name

0.11
----

* prep for release 0.11
* Update null log handling for py26

0.10
----

* prep for 0.10 release
* fixed a bug in the test for propagating map exceptions
* Fix doc build with Python 2.6.x
* Update docstrings for map exception propagation
* Formatting fix
* Adds ability to propogate exceptions within map

0.9.1
-----

* prep for 0.9.1 release
* Include all images from docs in sdist

0.9
---

* prep for 0.9 release
* add docs to default tox suite
* Remove reliance on distribute
* doc cleanup
* add reference to test class
* finish tutorial section on loading plugins
* remove line number references
* Add example of loading as a driver
* Add tutorial section on creating plugins
* add docs about names and namespaces
* touch up ceilometer design diagram
* add tox env for building docs
* Add structure for tutorial
* Add PyCon 2013 essay
* Update docs for NameDispatchExtensionManager
* Clean up autodoc for manager classes
* Add ExtensionManager.\_\_getitem\_\_
* Change sort for NamedExtensionManager
* Ignore missing extensions in named dispatch
* Set up extlinks extension
* document new name\_order param in history
* Correct argument types in name sort tests
* fix type definition of names parameter
* optionally sort named extensions
* flake8 fixes
* Add travis-ci configuration file
* add python 3.3 support tag
* add python 3.3 setup to tox
* link to docs from README

0.8
---

* update settings for 0.8 release
* Check the names of plugins before importing them
* fix typo in docstring
* Let AssertionErrors bubble up

0.7.2
-----

* prep for release 0.7.2
* fix logging support under python 2.6
* Run tests under python 2.6

0.7.1
-----

* Fix logging configuration

0.7
---

* prepare release 0.7
* Cache the entry points discovered within a namespace

0.6
---

* Bump version to 0.6
* Load extensions before checking enabled status
* Fix line lengths for pep8

0.5
---

* Prepare for 0.5 release
* Add TestExtensionManager

0.4
---

* Add driver property to DriverManager
* Prepare release 0.4
* Remove the name argument to extension constructors
* fix inheritence hierarchy of DriverManager
* Set up logging in enabled module
* Log the full exception when plugin load fails
* Optimize implementation of NameDispatchExtensionManager
* Add response callback to \_invoke\_one\_plugin()
* Refactor code for invoking plugins from map()
* clean up formatting

0.3
---

* make DriverManager callable
* add download link
* clean up announcement text
* add installation instructions
* update history for 0.3 release
* add dispatch managers
* documentation touch-up

0.2
---

* release 0.2 with docs
* finish first draft of documentation
* add API documentation
* rename loading; add enabling patterns
* add diagrams to illustrate the loading patterns
* Add descriptions of loading patterns
* add script for running sphinx as I edit
* add history file

0.1
---

* get the version from setup.py and always use today's date
* doc files created by sphinx-quickstart
* logging tweak
* add DriverManager
* add hook manager
* break up monolithic module
* add EnabledExtensionManager and NamedExtensionManager
* add docstring gs
* make ExtensionManager iterable
* error when no extensions to map()
* add map method
* basic ExtensionManager implementation
* add license
* set up tox and fix packaging
* create setup.py
* Initial commit
