=========
Changelog
=========
All notable changes to this project beggining with version 0.1.0 will be
documented in this file. The format is based on
`Keep a Changelog `_ and we adhere
to `Semantic Versioning `_. The source
code for all `releases `_
is available on GitHub.
You can also subscribe to ``skbase``'s
`PyPi release `_.
For planned changes and upcoming releases, see our :ref:`roadmap`.
[0.6.1] - 2023-10-26
====================
Highlights
----------
* ``set_params`` now recognizes unique suffixes as aliases
for full parameter strings, e.g., ``foo`` instead of
``estimator__component__foo`` (:pr:`229`) :user:`fkiraly`
* the ``deep_equals`` utility now admits custom plugins with dependency
isolation, e.g., for data types such as ``dask`` or ``polars``
(:pr:`238`) :user:`fkiraly`
* ``dependabot`` is now enabled for the ``skbase`` repository
(:pr:`228`) :user:`fkiraly`
Core interface changes
----------------------
* ``set_params`` now recognizes unique suffixes as aliases
for full parameter strings. This change is not breaking as behaviour
changes only in cases where previously exceptions were raised.
Enhancements
------------
* [ENH] ``set_params`` to recognize unique suffixes as aliases
for full parameter string (:pr:`229`) :user:`fkiraly`
* [ENH] refactor string coercions and return logic in ``deep_equals`` utility
(:pr:`237`) :user:`fkiraly`
* [ENH] improved ``deep_equals`` utility - plugins for custom types
(:pr:`238`) :user:`fkiraly`
* [ENH] informative failure message in
``test_get_package_metadata_returns_expected_results`` (:pr:`239`) :user:`fkiraly`
Maintenance
-----------
* [MNT] activate ``dependabot`` for version updates and maintenance
(:pr:`228`) :user:`fkiraly`
* [MNT] [Dependabot](deps): Bump actions/upload-artifact from 2 to 3
(:pr:`230`) :user:`dependabot`
* [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 1 to 3
(:pr:`231`) :user:`dependabot`
* [MNT] [Dependabot](deps): Bump actions/checkout from 3 to 4
(:pr:`232`) :user:`dependabot`
* [MNT] [Dependabot](deps): Bump actions/download-artifact from 2 to 3
(:pr:`233`) :user:`dependabot`
* [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.12.0
(:pr:`234`) :user:`dependabot`
Fixes
-----
* [BUG] correct parameter name in ``TestAllObjects`` ``all_objects`` call
(:pr:`236`) :user:`fkiraly`
[0.6.0] - 2023-10-05
====================
Maintenance release at python 3.12 release.
Adds support for python 3.12.
Dependency changes
------------------
* ``skbase`` now supports python 3.12.
Deprecations and removals
-------------------------
* the ``deep_equals`` utility has moved to ``skbase.utils.deep_equals``.
The old location in ``skbase.testing.utils.deep_equals`` has now been removed.
Contents
--------
* [MNT] address deprecation of ``load_module`` in ``python 3.12``
(:pr:`190`) :user:`fkiraly`
* [MNT] simplify test CI and remove ``conda`` (:pr:`224`) :user:`fkiraly`
* [MNT] update dependency versions in ``doc`` dependency set and set upper bounds
(:pr:`226`, :pr:`227`) :user:`fkiraly`
* [MNT] update ``python`` version to 3.12 (:pr:`221`) :user:`fkiraly`
* [MNT] 0.6.0 deprecation actions (:pr:`225`) :user:`fkiraly`
[0.5.2] - 2023-10-03
====================
Release with minor improvements.
* [ENH] move tests for dependency checks and ``deep_equals``
to ``utils`` module (:pr:`217`) :user:`fkiraly`
* [ENH] meta-object mixins (:pr:`216`) :user:`fkiraly`
* [DOC] update ``sktime`` links (:pr:`219`) :user:`fkiraly`
[0.5.1] - 2023-08-14
====================
Release with minor improvements and bugfixes.
Enhancements
------------
* [ENH] remove ``sklearn`` dependency in ``test_get_params`` (:pr:`212`) :user:`fkiraly`
Documentation
-------------
* [DOC] landing page updates (:pr:`188`) :user:`fkiraly`
Maintenance
-----------
* [MNT] separate windows CI element from unix based CI (:pr:`209`) :user:`fkiraly`
* [MNT] convert ``black`` ``extend-exclude`` parameter to single string
(:pr:`207`) :user:`fkiraly`
* [MNT] update ``__init__`` version (:pr:`210`) :user:`fkiraly`
* [MNT] fix linting issue from newest pre-commit versions (:pr:`211`) :user:`fkiraly`
Fixes
-----
* [BUG] fix for ``get_fitted_params`` in ``_HeterogenousMetaEstimator``
(:pr:`191`) :user:`fkiraly`
[0.5.0] - 2023-06-21
====================
Maintenance release at python 3.7 end-of-life.
Removes support for python 3.7.
[0.4.6] - 2023-06-16
====================
Bugfix release:
* [BUG] fix clone for nested sklearn estimators (:pr:`195`)
:user:`fkiraly`, :user:`hazrulakmal`
* [BUG] fix faulty ``suppress_import_stdout`` in ``all_objects`` (:pr:`193`)
:user:`fkiraly`
[0.4.5] - 2023-05-14
====================
Dummy release for ``aarch64`` support on ``conda`` (added in recipe there).
[0.4.4] - 2023-05-13
====================
Regular maintenance release.
Deprecations and removals
-------------------------
The ``deep_equals`` utility has moved to ``skbase.utils.deep_equals``.
The old location in ``skbase.testing.utils.deep_equals`` will be removed in
``skbase`` 0.6.0, until then it can still be imported from there, with a warning.
Maintenance
-----------
* [MNT] move ``deep_equals`` and dependency checkers from testing to utilities
to remove accidental coupling to ``pytest`` (:pr:`178`)
:user:`fkiraly`, :user:`yarnabrina`
* [MNT] test for isolation of developer dependencies,
and basic ``pytest``-less test for ``BaseObject`` (:pr:`179`, :pr:`183`)
:user:`fkiraly`
Contributors
------------
:user:`fkiraly`,
:user:`yarnabrina`
[0.4.3] - 2023-05-04
====================
Hotfix for accidental import of ``pytest`` through ``BaseObject.clone``,
including test for ``pytest`` dependency isolation.
Contents
--------
* [BUG] turn off check in ``BaseObject.clone`` (:pr:`176`) :user:`fkiraly`
* [MNT] test for isolation of developer dependencies,
and basic ``pytest``-less test for ``BaseObject`` (:pr:`179`) :user:`fkiraly`
* [DOC] fix some broken doc links, linting (:pr:`175`) :user:`fkiraly`
[0.4.2] - 2023-05-02
====================
Maintenance update that cleans up dependencies.
Notably, ``scikit-base`` no longer has any core dependencies.
This is as per usage intention as a base module,
therefore this removal is not accompanied by deprecation.
Dependency changes
------------------
* ``scikit-learn``, ``typing-extensions``, and ``pytest`` are no longer
core dependencies.
``pytest`` remains a dependency in ``dev`` and ``test`` dependency sets.
* ``scikit-learn`` is now part of the ``dev`` and ``test`` depency sets,
as it is required to test compatibility with ``scikit-learn``
* a dependency conflict has been resolved in the ``docs`` dependency set for
the docs build,
by pinning versions
Maintenance
-----------
* [MNT] remove dependency on ``typing-extensions`` (:pr:`167`) :user:`fkiraly`
* [MNT] remove dependency on ``pytest`` (:pr:`168`) :user:`fkiraly`
* [MNT] remove dependency on ``scikit-learn`` (:pr:`171`) :user:`fkiraly`
* [MNT] add ``scikit-learn`` to ``test`` dependency set (:pr:`172`) :user:`fkiraly`
* [MNT] remove ``fail-fast`` flag in CI (:pr:`169`) :user:`fkiraly`
* [MNT] resolve dependency conflict in ``docs`` dependency
set (:pr:`173`) :user:`fkiraly`
[0.4.1] - 2023-04-26
====================
Small bugfix patch for pydata 2023 Seattle notebooks.
Fixes
-----
* [BUG] fix html display for meta-objects (:pr:`160`) :user:`fkiraly`
* [BUG] Fix ``all_objects`` lookup, broken tag filter (:pr:`161`) :user:`fkiraly`
[0.4.0] - 2023-04-25
====================
Highlights
----------
- classes for heterogeneous collections aka meta-objects: ``BaseMetaObject`` and
``BaseMetaEstimator``, based on ``sklearn`` and ``sktime`` (:pr:`107`, :pr:`155`)
- ``skbase`` native ``get_params`` and ``get_fitted_params`` interface, both with
``deep`` argument (:pr:`115`, :pr:`117`) :user:`fkiraly`
- tag and config manager for objects, with ``get_tag``, ``set_tag``, ``get_config``,
``set_config``, etc (:pr:`138`, :pr:`140`, :pr:`155`) :user:`fkiraly`
- ``sklearn`` style pretty printing, configurable via
tags (:pr:`156`) :user:`fkiraly`, :user:`RNKuhns`
Enhancements
------------
* [ENH] Update meta classes and add unit tests (:pr:`107`) :user:`RNKuhns`
* [ENH] ``skbase`` native ``get_params`` (:pr:`115`) :user:`fkiraly`
* [ENH] ensure that ``all_objects`` always
returns (class name/class) pairs (:pr:`115`) :user:`fkiraly`
* [ENH] Initial type and named object validator code (:pr:`122`) :user:`RNKuhns`
* [ENH] ``deep`` argument for ``get_fitted_params`` (:pr:`117`) :user:`fkiraly`
* [ENH] Improve ``skbase.utils`` module structure (:pr:`126`) :user:`RNKuhns`
* [ENH] Add ``object_type`` param to named object check (:pr:`136`) :user:`RNKuhns`
* [ENH] tag manager mixin (:pr:`138`) :user:`fkiraly`
* [ENH] sync ``TestAllObjects`` with ``sktime`` (:pr:`139`) :user:`fkiraly`
* [ENH] object config interface (:pr:`140`) :user:`fkiraly`
* [ENH] tag logic mixin for meta-estimators (:pr:`155`) :user:`fkiraly`
* [ENH] ``sklearn`` style pretty printing (:pr:`156`) :user:`fkiraly`, :user:`RNKuhns`
Fixes
-----
* [BUG] fix faulty ``BaseObject.__eq__`` and ``deep_equals`` if an attribute
or nested structure contains ``np.nan`` (:pr:`111`) :user:`fkiraly`
* [BUG] Fix type error bug (:pr:`130`) :user:`RNKuhns`
* [BUG] fix unreported return type bug
of ``BaseFixtureGenerator.is_excluded`` (:pr:`142`) :user:`fkiraly`
Documentation
-------------
* [DOC] Update installation guide to build ``skbase`` in
a virtual env (:pr:`157`) :user:`achieveordie`
* [DOC] fix odd author formatting on pypi (:pr:`157`) :user:`fkiraly`
Maintenance
-----------
* [MNT] Create Issue and PR Templates (:pr:`157`) :user:`RNKuhns`
* [MNT] Update pydocstyle in pre-commit config (:pr:`108`) :user:`RNKuhns`
* [MNT] Handle updates to pre-commit linters (:pr:`120`) :user:`RNKuhns`
* [MNT] numpy as a soft dependency (:pr:`121`) :user:`RNKuhns`
* [MNT] Add stacklevel to ``warnings.warn`` calls (:pr:`137`) :user:`RNKuhns`
* [MNT] Add vs code settings and auto generated api area
to ``.gitignore`` (:pr:`143`) :user:`RNKuhns`
* [MNT] Update slack to point to ``skbase`` workspace (:pr:`148`) :user:`RNKuhns`
Contributors
------------
:user:`achieveordie`,
:user:`fkiraly`,
:user:`rnkuhns`
[0.3.0] - 2023-01-08
====================
Highlights
----------
- Reorganized package functionality into submodules focused on specific
functionality (:pr:`78`):
- ``skbase.base`` for ``BaseObject``, ``BaseEstimator`` and other base classes
- ``skbase.testing`` for functionality to test ``BaseObject``-s
- ``skbase.lookup`` for retrieving metadata and all ``BaseObject``-s from a package
- ``skbase.validate`` for comparing and validating ``BaseObject``-s
- Expanded test coverage of ``skbase.base`` and ``skbase.lookup`` modules and
``skbase`` exceptions (:pr:`62`, :pr:`80`, :pr:`91`) :user:`rnkuhns`
- Add equality dunder to ``BaseObject`` to allow ``BaseObejct``-s to be compared based
on parameter equality (:pr:`86`) :user:`fkiraly`
- Add ``sktime``-like interface for retrieving fitted parameters to ``BaseEstimator``
(:pr:`87`) :user:`fkiraly`
Enhancements
------------
- Reorganized package functionality into submodules focused on specific
functionality (:pr:`78`) :user:`rnkuhns`
- Add equality dunder to ``BaseObject`` to allow ``BaseObject``-s to be compared based
on parameter equality (:pr:`86`) :user:`fkiraly`
- Add ``sktime``-like interface for retrieving fitted parameters to ``BaseEstimator``
(:pr:`87`) :user:`fkiraly`
- Rename ``QuickTester.run_tests`` parameter ``return_exceptions`` to
``raise_exceptions`` (:pr:`95`) :user:`fkiraly`
Fixes
-----
- Fix all_objects retrieval functionality (:pr:`69`) :user:`fkiraly`
- Fix issues identified by CodeQL scanning (:pr:`79`) :user:`rnkuhns`
Documentation
-------------
- Switch from use of ``sphinx-panels`` to ``sphinx-design`` (:pr:`93`) :user:`rnkuhns`
- Updated installation instructions, added release instructions and made
other minor documentation improvements (:pr:`100`) :user:`rnkuhns`
Maintenance
-----------
- Updated Github Action versions (:pr:`60`) :user:`rnkuhns`
- Migrate from use of lgtm.com to CodeQL scanning built-in to Github (:pr:`68`)
- Update config files and remove use of setup.py (:pr:`75`) :user:`rnkuhns`
- Add support for Python 3.11 (:pr:`77`) :user:`rnkuhns`
- Update ``sklearn``s version upper bounds to ``<1.3`` (:pr:`89`) :user:`fkiraly`
Contributors
------------
:user:`fkiraly`,
:user:`rnkuhns`
[0.2.0] - 2022-09-09
====================
This release is a maintenance release to change the name of the package
from ``baseobject`` to ``skbase``.
Highlights
----------
- The package name was changed to ``skbase`` (:pr:`46`, :pr:`47`) :user:`fkiraly`
[0.1.0] - 2022-09-08
====================
Highlights
----------
- Refactored code for ``BaseObject`` and related interfaces from ``sktime`` into its
own package :user:`fkiraly`, :user:`rnkuhns`
- Setup initial continuous integration routines :user:`rnkuhns`
- Setup initial documentation :user:`rnkuhns`
- Setup initial deployment workflow :user:`fkiraly`