Changelog ######### This document catalogs the changes to ``decree-tree``. Versions ******** Some versions have been released, others not. Unreleased ========== In progress... v0.2.0 ====== This release includes several substantial refactorings and enhancements, including but not limited to: * Renamed ``TreeContainer`` class to ``Tree``, changed it to use a generic type var, and moved its definition to a separate module. * Renamed ``Tree`` methods to consistently refer to the *parent* or *child*, retaining helper methods ``add()`` and ``get()`` in ``DecreeTree``. * Clarified that ``add_arguments()`` modifies its parser argument, not directly a class or instance variable. * Ensured that ``run()`` can be executed from non-root commands in the assembled tree. * Improved arguments to ``__init__()``, along with creating ``__str__()`` and ``__repr__()`` methods. This removes the ``prog_or_name`` argument to ``__init__()``, replacing it with ``name`` and ``prog_is_name``. * Changed the ``summary()`` method into the ``structure`` property and improved its output. * Created ``AbstractDT`` class to facilitate abstract ``DecreeTree`` inheritance. * Removed ``Decree`` class from top level of package import. * Changed the inheritance behavior of commands, including from abstract parent classes and manual tree association, and the ``inherit`` class argument. * Enhanced customization of parsers with ``Decree.parser_options()`` and ``DecreeTree.subparsers_options()`` * Improved typing throughout the package, with a goal of clear documentation and IDE hinting. * Greatly expanded the test suite, reaching greater than 90% coverage. * Created extensive documentation, including embedded tests. * Started use of GitLab CI for testing and package building. * Lowered the minimum version required for the ``typing-extensions`` package. This version was manually pushed to PyPI and the documentation site, as the CI pipeline was still under development. v0.1.0 ====== The first working version of the tool. Still in a developmental state, this version was not released as a package. v0.0.0 ====== The initial commit, tagged for posterity.