From 23b39764cc750b2b2630b7edd09a6910358a6d56 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Tue, 14 Jul 2026 14:22:45 -0700 Subject: [PATCH 1/7] Release prep --- chainladder/__init__.py | 6 +-- docs/library/releases.md | 100 +++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 3 files changed, 104 insertions(+), 4 deletions(-) diff --git a/chainladder/__init__.py b/chainladder/__init__.py index d14caa1c1..4c3cdc2d5 100644 --- a/chainladder/__init__.py +++ b/chainladder/__init__.py @@ -197,7 +197,7 @@ def get_option( """ Get the option value for the specified option. - .. deprecated:: 0.9.3 + .. deprecated:: 0.10.0 The ``option`` parameter is deprecated; use ``pat`` instead. Parameters @@ -226,7 +226,7 @@ def set_option( """ Set the option value for the specified option. - .. deprecated:: 0.9.3 + .. deprecated:: 0.10.0 The ``option`` parameter is deprecated; use ``pat`` instead. Parameters @@ -283,7 +283,7 @@ def reset_option( Restores the default value for the specified option. Restores default values for all options if pat is None. - .. deprecated:: 0.9.3 + .. deprecated:: 0.10.0 The ``option`` parameter is deprecated; use ``pat`` instead. Parameters diff --git a/docs/library/releases.md b/docs/library/releases.md index e2be91e9a..7b5718a3c 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -1,5 +1,105 @@ # {octicon}`megaphone` Releases & Changelog +## Version 0.10 + +### Version 0.10.0 + +Release Date: TBD + +**Highlights** +* **Pandas 3 and Python 3.14 support** — datetime precision now follows the installed pandas default, string-dtype comparisons, removal of `DataFrame.groupby(..., axis=1)`, and cleanup of dead pandas 1.x code ([#807](https://github.com/casact/chainladder-python/pull/807), [#816](https://github.com/casact/chainladder-python/pull/816), [#817](https://github.com/casact/chainladder-python/pull/817), [#818](https://github.com/casact/chainladder-python/pull/818), [#819](https://github.com/casact/chainladder-python/pull/819), [#820](https://github.com/casact/chainladder-python/pull/820)). +* **`numpy>=2.0` is now the minimum supported version** ([#899](https://github.com/casact/chainladder-python/pull/899)); `numba` is no longer a direct dependency ([#898](https://github.com/casact/chainladder-python/pull/898)). +* **Backend deprecations** — the `dask` array backend ([#937](https://github.com/casact/chainladder-python/pull/937)) and dask parallel-compute (bag) paths ([#1008](https://github.com/casact/chainladder-python/pull/1008)), and the `cupy` array backend ([#881](https://github.com/casact/chainladder-python/pull/881)), are deprecated. The `option` parameter of `cl.options.get_option`/`set_option`/`reset_option` is deprecated in favor of `pat`. +* **New public `TriangleWeight` utility** for `latest_n` and drop-based weighting outside the `Development` estimator ([#941](https://github.com/casact/chainladder-python/pull/941)). +* **New `DisposalRate` adjustment method** ([#1022](https://github.com/casact/chainladder-python/pull/1022)). +* **`MackChainladder` multi-triangle (4D) support** ([#873](https://github.com/casact/chainladder-python/pull/873)) plus reconciliation to the Mack papers ([#1096](https://github.com/casact/chainladder-python/pull/1096)); `BootstrapODPSample` multi-index support ([#917](https://github.com/casact/chainladder-python/pull/917)). +* **New `Development` averaging** — geometric averaging type ([#811](https://github.com/casact/chainladder-python/pull/811)) — and a new `Triangle.xs` method ([#763](https://github.com/casact/chainladder-python/pull/763)). +* **New `Triangle.empty` attribute** for pandas consistency ([#901](https://github.com/casact/chainladder-python/pull/901)) and a new `cl.options.describe_option` helper ([#877](https://github.com/casact/chainladder-python/pull/877)). +* **New sample datasets** — `clrd2025`, additional Friedland exhibits, and a centralized sample-dataset manifest surfaced through `list_samples` ([#771](https://github.com/casact/chainladder-python/pull/771), [#787](https://github.com/casact/chainladder-python/pull/787), [#837](https://github.com/casact/chainladder-python/pull/837), [#886](https://github.com/casact/chainladder-python/pull/886), [#1116](https://github.com/casact/chainladder-python/pull/1116)). +* **Type annotations and tooling** — extensive pandas annotations, an explicit public API surface, a pyright type-completeness workflow, and a new `ARCHITECTURE.md` ([#912](https://github.com/casact/chainladder-python/pull/912), [#1035](https://github.com/casact/chainladder-python/pull/1035), [#1042](https://github.com/casact/chainladder-python/pull/1042), [#1065](https://github.com/casact/chainladder-python/pull/1065), [#1070](https://github.com/casact/chainladder-python/pull/1070)). +* **Docs and tests** — large expansion of doctest examples and new unit-test suites across slicing, dunders/arithmetic, pandas compatibility, base, and IO. + +**What's Changed** + +*A curated summary is below. For the complete, unedited list of every merged pull request (including internal integration-branch and CI churn), see the Full Changelog link at the bottom.* + +**Enhancements** +* Add geometric averaging type to the `Development` estimator by @kennethshsu in [#811](https://github.com/casact/chainladder-python/pull/811) +* Add `TriangleWeight` utility class as a public API by @henrydingliu in [#941](https://github.com/casact/chainladder-python/pull/941) +* Add `DisposalRate` method by @henrydingliu in [#1022](https://github.com/casact/chainladder-python/pull/1022) +* Add multi-triangle (4D) support to `MackChainladder` by @henrydingliu in [#873](https://github.com/casact/chainladder-python/pull/873), with reconciliation to the Mack papers in [#1096](https://github.com/casact/chainladder-python/pull/1096) +* Add multi-index support to `BootstrapODPSample` by @henrydingliu in [#917](https://github.com/casact/chainladder-python/pull/917) +* Add `Triangle.xs` by @henrydingliu in [#763](https://github.com/casact/chainladder-python/pull/763) +* Add `empty` attribute to `Triangle` for pandas consistency by @priyam0k in [#901](https://github.com/casact/chainladder-python/pull/901) +* Implement `cl.options.describe_option` by @genedan in [#877](https://github.com/casact/chainladder-python/pull/877) +* Allow `DevelopmentConstant` to be callable on columns by @henrydingliu in [#796](https://github.com/casact/chainladder-python/pull/796) +* Return a Python `bool` from `is_ultimate` by @salexanian in [#793](https://github.com/casact/chainladder-python/pull/793) + +**Pandas 3 / Python 3.14 support** +* Replace datetime constants with pandas default datetime precision by @genedan in [#816](https://github.com/casact/chainladder-python/pull/816) +* Replace object-type comparisons with string comparisons for string dtypes by @genedan in [#819](https://github.com/casact/chainladder-python/pull/819) +* Replace `DataFrame.groupby(..., axis=1)` with a double transpose by @genedan in [#818](https://github.com/casact/chainladder-python/pull/818) +* Wrap raw HTML in `StringIO` by @genedan in [#817](https://github.com/casact/chainladder-python/pull/817) +* pandas 3 / Python 3.14 support by @genedan in [#820](https://github.com/casact/chainladder-python/pull/820) +* Clean up dead pandas 1.x code by @genedan in [#807](https://github.com/casact/chainladder-python/pull/807) + +**API Changes & Deprecations** +* Deprecate the `dask` array backend by @priyam0k in [#937](https://github.com/casact/chainladder-python/pull/937) and the dask parallel-compute (bag) paths in [#1008](https://github.com/casact/chainladder-python/pull/1008) +* Deprecate the `cupy` array backend by @priyam0k in [#881](https://github.com/casact/chainladder-python/pull/881) +* Make API exports explicit by @priyam0k in [#912](https://github.com/casact/chainladder-python/pull/912) +* Remove deprecated `broadcast_axis` by @kennethshsu in [#991](https://github.com/casact/chainladder-python/pull/991) +* Set minimum numpy version to 2.0 by @SaguaroDev in [#899](https://github.com/casact/chainladder-python/pull/899) +* Remove numba as a direct dependency by @SaguaroDev in [#898](https://github.com/casact/chainladder-python/pull/898) + +**Bug Fixes** +* Fix `sigma_` formula by @henrydingliu in [#965](https://github.com/casact/chainladder-python/pull/965) +* Fix `Triangle.full_expectation_` by @henrydingliu in [#884](https://github.com/casact/chainladder-python/pull/884) +* `sparse` `floor()` returns a copy instead of mutating its input by @SaguaroDev in [#894](https://github.com/casact/chainladder-python/pull/894) +* Fix `DevelopmentConstant` tail bug by @kennethshsu in [#923](https://github.com/casact/chainladder-python/pull/923) +* Fix `drop_high` tie-breaking logic by @etw002 in [#1009](https://github.com/casact/chainladder-python/pull/1009) +* Make `quarterly.csv` development dates ISO 8601-compatible by @genedan in [#930](https://github.com/casact/chainladder-python/pull/930) +* Various Mack fixes by @henrydingliu in [#1097](https://github.com/casact/chainladder-python/pull/1097) +* Various Friedland data fixes by @henrydingliu in [#927](https://github.com/casact/chainladder-python/pull/927), [#967](https://github.com/casact/chainladder-python/pull/967) + +**Sample Data** +* Add the `clrd2025` dataset and centralize sample metadata in a manifest surfaced via `list_samples` by @SaguaroDev in [#771](https://github.com/casact/chainladder-python/pull/771), [#886](https://github.com/casact/chainladder-python/pull/886) +* Add Friedland Exhibit III samples and earned premium by @salexanian in [#787](https://github.com/casact/chainladder-python/pull/787) +* Add Friedland Chapter 6–7 exhibits by @henrydingliu in [#837](https://github.com/casact/chainladder-python/pull/837) +* Add the merged Friedland USPP sample dataset by @salexanian in [#1116](https://github.com/casact/chainladder-python/pull/1116) +* Add Friedland auto BI, GL insurer, GL self-insurer, and US industry auto premium datasets by @kennethshsu in [#870](https://github.com/casact/chainladder-python/pull/870), [#905](https://github.com/casact/chainladder-python/pull/905), [#921](https://github.com/casact/chainladder-python/pull/921), [#904](https://github.com/casact/chainladder-python/pull/904) + +**Documentation** +* Add doctest examples across the development, adjustment, tail, ClarkLDF, workflow, and utility estimators by @EKtheSage in [#799](https://github.com/casact/chainladder-python/pull/799), [#800](https://github.com/casact/chainladder-python/pull/800), [#801](https://github.com/casact/chainladder-python/pull/801), [#802](https://github.com/casact/chainladder-python/pull/802), [#803](https://github.com/casact/chainladder-python/pull/803), [#804](https://github.com/casact/chainladder-python/pull/804) +* Add doctest examples for `BootstrapODPSample` and the correlation classes by @priyam0k in [#836](https://github.com/casact/chainladder-python/pull/836), [#844](https://github.com/casact/chainladder-python/pull/844) +* Improve `Development` and `DevelopmentConstant` docstrings and examples by @kennethshsu in [#834](https://github.com/casact/chainladder-python/pull/834), [#993](https://github.com/casact/chainladder-python/pull/993) +* Clarify the `Triangle` constructor docstring and document `array_backend`/`pattern` by @SaguaroDev in [#812](https://github.com/casact/chainladder-python/pull/812), [#813](https://github.com/casact/chainladder-python/pull/813) +* Document creating triangles with preexisting ultimates by @EKtheSage in [#968](https://github.com/casact/chainladder-python/pull/968) +* Add Semiannual (S) grain documentation by @SaguaroDev in [#814](https://github.com/casact/chainladder-python/pull/814) +* Add `ARCHITECTURE.md` by @genedan in [#1070](https://github.com/casact/chainladder-python/pull/1070) +* Various docstring fixes by @henrydingliu in [#1020](https://github.com/casact/chainladder-python/pull/1020) + +**Typing & Refactoring** +* Add pandas type annotations by @genedan in [#1035](https://github.com/casact/chainladder-python/pull/1035), [#1065](https://github.com/casact/chainladder-python/pull/1065) +* Add a pyright type-completeness workflow by @genedan in [#1042](https://github.com/casact/chainladder-python/pull/1042) +* Refactor `cl.__init__.py` and remove dead Python 3.8 code by @genedan in [#857](https://github.com/casact/chainladder-python/pull/857), [#867](https://github.com/casact/chainladder-python/pull/867) +* Refactor `swapaxes` to object by @henrydingliu in [#1084](https://github.com/casact/chainladder-python/pull/1084) +* Enhance `utils.model_diagnostics` by @henrydingliu in [#953](https://github.com/casact/chainladder-python/pull/953), [#954](https://github.com/casact/chainladder-python/pull/954), [#959](https://github.com/casact/chainladder-python/pull/959), [#955](https://github.com/casact/chainladder-python/pull/955), [#982](https://github.com/casact/chainladder-python/pull/982) + +**Testing & CI** +* Add tests for utilities, slicing, dunders/arithmetic, pandas, base, IO, `TriangleDisplay`, and common behavior by @genedan in [#831](https://github.com/casact/chainladder-python/pull/831), [#946](https://github.com/casact/chainladder-python/pull/946), [#950](https://github.com/casact/chainladder-python/pull/950), [#948](https://github.com/casact/chainladder-python/pull/948), [#1038](https://github.com/casact/chainladder-python/pull/1038), [#1046](https://github.com/casact/chainladder-python/pull/1046), [#1002](https://github.com/casact/chainladder-python/pull/1002), [#936](https://github.com/casact/chainladder-python/pull/936), [#1083](https://github.com/casact/chainladder-python/pull/1083), [#1033](https://github.com/casact/chainladder-python/pull/1033), [#825](https://github.com/casact/chainladder-python/pull/825), [#1082](https://github.com/casact/chainladder-python/pull/1082) +* Replace stale xfails with `pytest.raises` by @EKtheSage in [#977](https://github.com/casact/chainladder-python/pull/977), [#987](https://github.com/casact/chainladder-python/pull/987) +* Add coverage and various doctest fixes by @henrydingliu in [#1105](https://github.com/casact/chainladder-python/pull/1105), [#1099](https://github.com/casact/chainladder-python/pull/1099), [#1101](https://github.com/casact/chainladder-python/pull/1101) + +**Dependencies** +* Bump idna, tornado, bleach, soupsieve, and mistune by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108) +* Pin to avoid pandas 3.0.4 and set a maximum sparse version by @henrydingliu in [#1072](https://github.com/casact/chainladder-python/pull/1072), [#957](https://github.com/casact/chainladder-python/pull/957) + +**New Contributors** +* @salexanian made their first contribution in [#793](https://github.com/casact/chainladder-python/pull/793) +* @etw002 made their first contribution in [#1009](https://github.com/casact/chainladder-python/pull/1009) + +**Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.9.2...v0.10.0 + ## Version 0.9 ### Version 0.9.2 diff --git a/pyproject.toml b/pyproject.toml index 4a64ae847..dc10a1ba6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "chainladder" -version = "0.9.2" +version = "0.10.0" authors = [ {name = "John Bogaardt", email = "jbogaardt@gmail.com"}, ] From 1865e79d71f027f856717c8abecbe3b995925aeb Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Tue, 14 Jul 2026 14:33:28 -0700 Subject: [PATCH 2/7] Updated release notes --- docs/library/releases.md | 64 ++++++++++++---------------------------- 1 file changed, 19 insertions(+), 45 deletions(-) diff --git a/docs/library/releases.md b/docs/library/releases.md index 7b5718a3c..5fc4f4469 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -6,24 +6,12 @@ Release Date: TBD -**Highlights** -* **Pandas 3 and Python 3.14 support** — datetime precision now follows the installed pandas default, string-dtype comparisons, removal of `DataFrame.groupby(..., axis=1)`, and cleanup of dead pandas 1.x code ([#807](https://github.com/casact/chainladder-python/pull/807), [#816](https://github.com/casact/chainladder-python/pull/816), [#817](https://github.com/casact/chainladder-python/pull/817), [#818](https://github.com/casact/chainladder-python/pull/818), [#819](https://github.com/casact/chainladder-python/pull/819), [#820](https://github.com/casact/chainladder-python/pull/820)). -* **`numpy>=2.0` is now the minimum supported version** ([#899](https://github.com/casact/chainladder-python/pull/899)); `numba` is no longer a direct dependency ([#898](https://github.com/casact/chainladder-python/pull/898)). -* **Backend deprecations** — the `dask` array backend ([#937](https://github.com/casact/chainladder-python/pull/937)) and dask parallel-compute (bag) paths ([#1008](https://github.com/casact/chainladder-python/pull/1008)), and the `cupy` array backend ([#881](https://github.com/casact/chainladder-python/pull/881)), are deprecated. The `option` parameter of `cl.options.get_option`/`set_option`/`reset_option` is deprecated in favor of `pat`. -* **New public `TriangleWeight` utility** for `latest_n` and drop-based weighting outside the `Development` estimator ([#941](https://github.com/casact/chainladder-python/pull/941)). -* **New `DisposalRate` adjustment method** ([#1022](https://github.com/casact/chainladder-python/pull/1022)). -* **`MackChainladder` multi-triangle (4D) support** ([#873](https://github.com/casact/chainladder-python/pull/873)) plus reconciliation to the Mack papers ([#1096](https://github.com/casact/chainladder-python/pull/1096)); `BootstrapODPSample` multi-index support ([#917](https://github.com/casact/chainladder-python/pull/917)). -* **New `Development` averaging** — geometric averaging type ([#811](https://github.com/casact/chainladder-python/pull/811)) — and a new `Triangle.xs` method ([#763](https://github.com/casact/chainladder-python/pull/763)). -* **New `Triangle.empty` attribute** for pandas consistency ([#901](https://github.com/casact/chainladder-python/pull/901)) and a new `cl.options.describe_option` helper ([#877](https://github.com/casact/chainladder-python/pull/877)). -* **New sample datasets** — `clrd2025`, additional Friedland exhibits, and a centralized sample-dataset manifest surfaced through `list_samples` ([#771](https://github.com/casact/chainladder-python/pull/771), [#787](https://github.com/casact/chainladder-python/pull/787), [#837](https://github.com/casact/chainladder-python/pull/837), [#886](https://github.com/casact/chainladder-python/pull/886), [#1116](https://github.com/casact/chainladder-python/pull/1116)). -* **Type annotations and tooling** — extensive pandas annotations, an explicit public API surface, a pyright type-completeness workflow, and a new `ARCHITECTURE.md` ([#912](https://github.com/casact/chainladder-python/pull/912), [#1035](https://github.com/casact/chainladder-python/pull/1035), [#1042](https://github.com/casact/chainladder-python/pull/1042), [#1065](https://github.com/casact/chainladder-python/pull/1065), [#1070](https://github.com/casact/chainladder-python/pull/1070)). -* **Docs and tests** — large expansion of doctest examples and new unit-test suites across slicing, dunders/arithmetic, pandas compatibility, base, and IO. - **What's Changed** -*A curated summary is below. For the complete, unedited list of every merged pull request (including internal integration-branch and CI churn), see the Full Changelog link at the bottom.* +*Changes are grouped into the standard categories below. See the Full Changelog link for the complete, unedited list of merged pull requests.* **Enhancements** +* Add support for pandas 3 and Python 3.14 by @genedan in [#807](https://github.com/casact/chainladder-python/pull/807), [#816](https://github.com/casact/chainladder-python/pull/816), [#817](https://github.com/casact/chainladder-python/pull/817), [#818](https://github.com/casact/chainladder-python/pull/818), [#819](https://github.com/casact/chainladder-python/pull/819), [#820](https://github.com/casact/chainladder-python/pull/820) * Add geometric averaging type to the `Development` estimator by @kennethshsu in [#811](https://github.com/casact/chainladder-python/pull/811) * Add `TriangleWeight` utility class as a public API by @henrydingliu in [#941](https://github.com/casact/chainladder-python/pull/941) * Add `DisposalRate` method by @henrydingliu in [#1022](https://github.com/casact/chainladder-python/pull/1022) @@ -34,22 +22,14 @@ Release Date: TBD * Implement `cl.options.describe_option` by @genedan in [#877](https://github.com/casact/chainladder-python/pull/877) * Allow `DevelopmentConstant` to be callable on columns by @henrydingliu in [#796](https://github.com/casact/chainladder-python/pull/796) * Return a Python `bool` from `is_ultimate` by @salexanian in [#793](https://github.com/casact/chainladder-python/pull/793) - -**Pandas 3 / Python 3.14 support** -* Replace datetime constants with pandas default datetime precision by @genedan in [#816](https://github.com/casact/chainladder-python/pull/816) -* Replace object-type comparisons with string comparisons for string dtypes by @genedan in [#819](https://github.com/casact/chainladder-python/pull/819) -* Replace `DataFrame.groupby(..., axis=1)` with a double transpose by @genedan in [#818](https://github.com/casact/chainladder-python/pull/818) -* Wrap raw HTML in `StringIO` by @genedan in [#817](https://github.com/casact/chainladder-python/pull/817) -* pandas 3 / Python 3.14 support by @genedan in [#820](https://github.com/casact/chainladder-python/pull/820) -* Clean up dead pandas 1.x code by @genedan in [#807](https://github.com/casact/chainladder-python/pull/807) - -**API Changes & Deprecations** -* Deprecate the `dask` array backend by @priyam0k in [#937](https://github.com/casact/chainladder-python/pull/937) and the dask parallel-compute (bag) paths in [#1008](https://github.com/casact/chainladder-python/pull/1008) -* Deprecate the `cupy` array backend by @priyam0k in [#881](https://github.com/casact/chainladder-python/pull/881) -* Make API exports explicit by @priyam0k in [#912](https://github.com/casact/chainladder-python/pull/912) -* Remove deprecated `broadcast_axis` by @kennethshsu in [#991](https://github.com/casact/chainladder-python/pull/991) -* Set minimum numpy version to 2.0 by @SaguaroDev in [#899](https://github.com/casact/chainladder-python/pull/899) -* Remove numba as a direct dependency by @SaguaroDev in [#898](https://github.com/casact/chainladder-python/pull/898) +* Add the `clrd2025` dataset and centralize sample metadata in a manifest surfaced via `list_samples` by @SaguaroDev in [#771](https://github.com/casact/chainladder-python/pull/771), [#886](https://github.com/casact/chainladder-python/pull/886) +* Add Friedland Exhibit III samples and earned premium by @salexanian in [#787](https://github.com/casact/chainladder-python/pull/787) +* Add Friedland Chapter 6–7 exhibits by @henrydingliu in [#837](https://github.com/casact/chainladder-python/pull/837) +* Add the merged Friedland USPP sample dataset by @salexanian in [#1116](https://github.com/casact/chainladder-python/pull/1116) +* Add Friedland auto BI, GL insurer, GL self-insurer, and US industry auto premium datasets by @kennethshsu in [#870](https://github.com/casact/chainladder-python/pull/870), [#905](https://github.com/casact/chainladder-python/pull/905), [#921](https://github.com/casact/chainladder-python/pull/921), [#904](https://github.com/casact/chainladder-python/pull/904) +* Add tests for utilities, slicing, dunders/arithmetic, pandas, base, IO, `TriangleDisplay`, and common behavior by @genedan in [#831](https://github.com/casact/chainladder-python/pull/831), [#946](https://github.com/casact/chainladder-python/pull/946), [#950](https://github.com/casact/chainladder-python/pull/950), [#948](https://github.com/casact/chainladder-python/pull/948), [#1038](https://github.com/casact/chainladder-python/pull/1038), [#1046](https://github.com/casact/chainladder-python/pull/1046), [#1002](https://github.com/casact/chainladder-python/pull/1002), [#936](https://github.com/casact/chainladder-python/pull/936), [#1083](https://github.com/casact/chainladder-python/pull/1083), [#1033](https://github.com/casact/chainladder-python/pull/1033), [#825](https://github.com/casact/chainladder-python/pull/825), [#1082](https://github.com/casact/chainladder-python/pull/1082) +* Replace stale xfails with `pytest.raises` by @EKtheSage in [#977](https://github.com/casact/chainladder-python/pull/977), [#987](https://github.com/casact/chainladder-python/pull/987) +* Add coverage and various doctest fixes by @henrydingliu in [#1105](https://github.com/casact/chainladder-python/pull/1105), [#1099](https://github.com/casact/chainladder-python/pull/1099), [#1101](https://github.com/casact/chainladder-python/pull/1101) **Bug Fixes** * Fix `sigma_` formula by @henrydingliu in [#965](https://github.com/casact/chainladder-python/pull/965) @@ -61,14 +41,12 @@ Release Date: TBD * Various Mack fixes by @henrydingliu in [#1097](https://github.com/casact/chainladder-python/pull/1097) * Various Friedland data fixes by @henrydingliu in [#927](https://github.com/casact/chainladder-python/pull/927), [#967](https://github.com/casact/chainladder-python/pull/967) -**Sample Data** -* Add the `clrd2025` dataset and centralize sample metadata in a manifest surfaced via `list_samples` by @SaguaroDev in [#771](https://github.com/casact/chainladder-python/pull/771), [#886](https://github.com/casact/chainladder-python/pull/886) -* Add Friedland Exhibit III samples and earned premium by @salexanian in [#787](https://github.com/casact/chainladder-python/pull/787) -* Add Friedland Chapter 6–7 exhibits by @henrydingliu in [#837](https://github.com/casact/chainladder-python/pull/837) -* Add the merged Friedland USPP sample dataset by @salexanian in [#1116](https://github.com/casact/chainladder-python/pull/1116) -* Add Friedland auto BI, GL insurer, GL self-insurer, and US industry auto premium datasets by @kennethshsu in [#870](https://github.com/casact/chainladder-python/pull/870), [#905](https://github.com/casact/chainladder-python/pull/905), [#921](https://github.com/casact/chainladder-python/pull/921), [#904](https://github.com/casact/chainladder-python/pull/904) +**Deprecations & Removals** +* Deprecate the `dask` array backend by @priyam0k in [#937](https://github.com/casact/chainladder-python/pull/937) and the dask parallel-compute (bag) paths in [#1008](https://github.com/casact/chainladder-python/pull/1008) +* Deprecate the `cupy` array backend by @priyam0k in [#881](https://github.com/casact/chainladder-python/pull/881) +* Remove deprecated `broadcast_axis` by @kennethshsu in [#991](https://github.com/casact/chainladder-python/pull/991) -**Documentation** +**Maintenance** * Add doctest examples across the development, adjustment, tail, ClarkLDF, workflow, and utility estimators by @EKtheSage in [#799](https://github.com/casact/chainladder-python/pull/799), [#800](https://github.com/casact/chainladder-python/pull/800), [#801](https://github.com/casact/chainladder-python/pull/801), [#802](https://github.com/casact/chainladder-python/pull/802), [#803](https://github.com/casact/chainladder-python/pull/803), [#804](https://github.com/casact/chainladder-python/pull/804) * Add doctest examples for `BootstrapODPSample` and the correlation classes by @priyam0k in [#836](https://github.com/casact/chainladder-python/pull/836), [#844](https://github.com/casact/chainladder-python/pull/844) * Improve `Development` and `DevelopmentConstant` docstrings and examples by @kennethshsu in [#834](https://github.com/casact/chainladder-python/pull/834), [#993](https://github.com/casact/chainladder-python/pull/993) @@ -77,22 +55,18 @@ Release Date: TBD * Add Semiannual (S) grain documentation by @SaguaroDev in [#814](https://github.com/casact/chainladder-python/pull/814) * Add `ARCHITECTURE.md` by @genedan in [#1070](https://github.com/casact/chainladder-python/pull/1070) * Various docstring fixes by @henrydingliu in [#1020](https://github.com/casact/chainladder-python/pull/1020) - -**Typing & Refactoring** * Add pandas type annotations by @genedan in [#1035](https://github.com/casact/chainladder-python/pull/1035), [#1065](https://github.com/casact/chainladder-python/pull/1065) * Add a pyright type-completeness workflow by @genedan in [#1042](https://github.com/casact/chainladder-python/pull/1042) +* Make API exports explicit by @priyam0k in [#912](https://github.com/casact/chainladder-python/pull/912) * Refactor `cl.__init__.py` and remove dead Python 3.8 code by @genedan in [#857](https://github.com/casact/chainladder-python/pull/857), [#867](https://github.com/casact/chainladder-python/pull/867) * Refactor `swapaxes` to object by @henrydingliu in [#1084](https://github.com/casact/chainladder-python/pull/1084) * Enhance `utils.model_diagnostics` by @henrydingliu in [#953](https://github.com/casact/chainladder-python/pull/953), [#954](https://github.com/casact/chainladder-python/pull/954), [#959](https://github.com/casact/chainladder-python/pull/959), [#955](https://github.com/casact/chainladder-python/pull/955), [#982](https://github.com/casact/chainladder-python/pull/982) -**Testing & CI** -* Add tests for utilities, slicing, dunders/arithmetic, pandas, base, IO, `TriangleDisplay`, and common behavior by @genedan in [#831](https://github.com/casact/chainladder-python/pull/831), [#946](https://github.com/casact/chainladder-python/pull/946), [#950](https://github.com/casact/chainladder-python/pull/950), [#948](https://github.com/casact/chainladder-python/pull/948), [#1038](https://github.com/casact/chainladder-python/pull/1038), [#1046](https://github.com/casact/chainladder-python/pull/1046), [#1002](https://github.com/casact/chainladder-python/pull/1002), [#936](https://github.com/casact/chainladder-python/pull/936), [#1083](https://github.com/casact/chainladder-python/pull/1083), [#1033](https://github.com/casact/chainladder-python/pull/1033), [#825](https://github.com/casact/chainladder-python/pull/825), [#1082](https://github.com/casact/chainladder-python/pull/1082) -* Replace stale xfails with `pytest.raises` by @EKtheSage in [#977](https://github.com/casact/chainladder-python/pull/977), [#987](https://github.com/casact/chainladder-python/pull/987) -* Add coverage and various doctest fixes by @henrydingliu in [#1105](https://github.com/casact/chainladder-python/pull/1105), [#1099](https://github.com/casact/chainladder-python/pull/1099), [#1101](https://github.com/casact/chainladder-python/pull/1101) - **Dependencies** -* Bump idna, tornado, bleach, soupsieve, and mistune by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108) +* Set minimum numpy version to 2.0 by @SaguaroDev in [#899](https://github.com/casact/chainladder-python/pull/899) +* Remove numba as a direct dependency by @SaguaroDev in [#898](https://github.com/casact/chainladder-python/pull/898) * Pin to avoid pandas 3.0.4 and set a maximum sparse version by @henrydingliu in [#1072](https://github.com/casact/chainladder-python/pull/1072), [#957](https://github.com/casact/chainladder-python/pull/957) +* Bump idna, tornado, bleach, soupsieve, and mistune by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108) **New Contributors** * @salexanian made their first contribution in [#793](https://github.com/casact/chainladder-python/pull/793) From b213147c4ad7463771400a9f5c1e5a40a3b8a98b Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Wed, 22 Jul 2026 10:02:13 -0700 Subject: [PATCH 3/7] Sync from main, added a few more updates --- docs/library/releases.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/library/releases.md b/docs/library/releases.md index 5fc4f4469..8e31818e6 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -27,6 +27,8 @@ Release Date: TBD * Add Friedland Chapter 6–7 exhibits by @henrydingliu in [#837](https://github.com/casact/chainladder-python/pull/837) * Add the merged Friedland USPP sample dataset by @salexanian in [#1116](https://github.com/casact/chainladder-python/pull/1116) * Add Friedland auto BI, GL insurer, GL self-insurer, and US industry auto premium datasets by @kennethshsu in [#870](https://github.com/casact/chainladder-python/pull/870), [#905](https://github.com/casact/chainladder-python/pull/905), [#921](https://github.com/casact/chainladder-python/pull/921), [#904](https://github.com/casact/chainladder-python/pull/904) +* Add Friedland Chapter 9 (Bornhuetter-Ferguson) documentation by @priyam0k in [#1126](https://github.com/casact/chainladder-python/pull/1126) +* Add `pct_reported_` and `pct_unreported_` properties by @priyam0k in [#1126](https://github.com/casact/chainladder-python/pull/1126) * Add tests for utilities, slicing, dunders/arithmetic, pandas, base, IO, `TriangleDisplay`, and common behavior by @genedan in [#831](https://github.com/casact/chainladder-python/pull/831), [#946](https://github.com/casact/chainladder-python/pull/946), [#950](https://github.com/casact/chainladder-python/pull/950), [#948](https://github.com/casact/chainladder-python/pull/948), [#1038](https://github.com/casact/chainladder-python/pull/1038), [#1046](https://github.com/casact/chainladder-python/pull/1046), [#1002](https://github.com/casact/chainladder-python/pull/1002), [#936](https://github.com/casact/chainladder-python/pull/936), [#1083](https://github.com/casact/chainladder-python/pull/1083), [#1033](https://github.com/casact/chainladder-python/pull/1033), [#825](https://github.com/casact/chainladder-python/pull/825), [#1082](https://github.com/casact/chainladder-python/pull/1082) * Replace stale xfails with `pytest.raises` by @EKtheSage in [#977](https://github.com/casact/chainladder-python/pull/977), [#987](https://github.com/casact/chainladder-python/pull/987) * Add coverage and various doctest fixes by @henrydingliu in [#1105](https://github.com/casact/chainladder-python/pull/1105), [#1099](https://github.com/casact/chainladder-python/pull/1099), [#1101](https://github.com/casact/chainladder-python/pull/1101) @@ -40,6 +42,7 @@ Release Date: TBD * Make `quarterly.csv` development dates ISO 8601-compatible by @genedan in [#930](https://github.com/casact/chainladder-python/pull/930) * Various Mack fixes by @henrydingliu in [#1097](https://github.com/casact/chainladder-python/pull/1097) * Various Friedland data fixes by @henrydingliu in [#927](https://github.com/casact/chainladder-python/pull/927), [#967](https://github.com/casact/chainladder-python/pull/967) +* Accept string axis in `Triangle.drop()` by @priyam0k in [#1123](https://github.com/casact/chainladder-python/pull/1123) **Deprecations & Removals** * Deprecate the `dask` array backend by @priyam0k in [#937](https://github.com/casact/chainladder-python/pull/937) and the dask parallel-compute (bag) paths in [#1008](https://github.com/casact/chainladder-python/pull/1008) @@ -66,7 +69,7 @@ Release Date: TBD * Set minimum numpy version to 2.0 by @SaguaroDev in [#899](https://github.com/casact/chainladder-python/pull/899) * Remove numba as a direct dependency by @SaguaroDev in [#898](https://github.com/casact/chainladder-python/pull/898) * Pin to avoid pandas 3.0.4 and set a maximum sparse version by @henrydingliu in [#1072](https://github.com/casact/chainladder-python/pull/1072), [#957](https://github.com/casact/chainladder-python/pull/957) -* Bump idna, tornado, bleach, soupsieve, and mistune by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108) +* Bump idna, tornado, bleach, soupsieve, mistune, and pillow by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108), [#1141](https://github.com/casact/chainladder-python/pull/1141) **New Contributors** * @salexanian made their first contribution in [#793](https://github.com/casact/chainladder-python/pull/793) From e4c0ff609531bfa872ac01730ec1a1e41d8d4397 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Thu, 23 Jul 2026 11:15:48 -0700 Subject: [PATCH 4/7] Added release date --- docs/library/releases.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/library/releases.md b/docs/library/releases.md index 8e31818e6..02487b523 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -4,7 +4,7 @@ ### Version 0.10.0 -Release Date: TBD +Release Date: July 29, 2026 **What's Changed** From 2289b7892c2fa3cefa54606a2f450a4d70b93c78 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Thu, 23 Jul 2026 16:45:47 -0700 Subject: [PATCH 5/7] Bump uv --- uv.lock | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index c46939580..d91751045 100644 --- a/uv.lock +++ b/uv.lock @@ -189,7 +189,7 @@ wheels = [ [[package]] name = "chainladder" -version = "0.9.2" +version = "0.10.0" source = { editable = "." } dependencies = [ { name = "dill" }, @@ -924,6 +924,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7d/ed/6bfa4109fcb23a58819600392564fea69cdc6551ffd5e69ccf1d52a40cbc/greenlet-3.2.4-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:8c68325b0d0acf8d91dde4e6f930967dd52a5302cd4062932a6b2e7c2969f47c", size = 271061, upload-time = "2025-08-07T13:17:15.373Z" }, { url = "https://files.pythonhosted.org/packages/2a/fc/102ec1a2fc015b3a7652abab7acf3541d58c04d3d17a8d3d6a44adae1eb1/greenlet-3.2.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:94385f101946790ae13da500603491f04a76b6e4c059dab271b3ce2e283b2590", size = 629475, upload-time = "2025-08-07T13:42:54.009Z" }, { url = "https://files.pythonhosted.org/packages/c5/26/80383131d55a4ac0fb08d71660fd77e7660b9db6bdb4e8884f46d9f2cc04/greenlet-3.2.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f10fd42b5ee276335863712fa3da6608e93f70629c631bf77145021600abc23c", size = 640802, upload-time = "2025-08-07T13:45:25.52Z" }, + { url = "https://files.pythonhosted.org/packages/9f/7c/e7833dbcd8f376f3326bd728c845d31dcde4c84268d3921afcae77d90d08/greenlet-3.2.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c8c9e331e58180d0d83c5b7999255721b725913ff6bc6cf39fa2a45841a4fd4b", size = 636703, upload-time = "2025-08-07T13:53:12.622Z" }, { url = "https://files.pythonhosted.org/packages/e9/49/547b93b7c0428ede7b3f309bc965986874759f7d89e4e04aeddbc9699acb/greenlet-3.2.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:58b97143c9cc7b86fc458f215bd0932f1757ce649e05b640fea2e79b54cedb31", size = 635417, upload-time = "2025-08-07T13:18:25.189Z" }, { url = "https://files.pythonhosted.org/packages/7f/91/ae2eb6b7979e2f9b035a9f612cf70f1bf54aad4e1d125129bef1eae96f19/greenlet-3.2.4-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c2ca18a03a8cfb5b25bc1cbe20f3d9a4c80d8c3b13ba3df49ac3961af0b1018d", size = 584358, upload-time = "2025-08-07T13:18:23.708Z" }, { url = "https://files.pythonhosted.org/packages/f7/85/433de0c9c0252b22b16d413c9407e6cb3b41df7389afc366ca204dbc1393/greenlet-3.2.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fe0a28a7b952a21e2c062cd5756d34354117796c6d9215a87f55e38d15402c5", size = 1113550, upload-time = "2025-08-07T13:42:37.467Z" }, @@ -934,6 +935,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a4/de/f28ced0a67749cac23fecb02b694f6473f47686dff6afaa211d186e2ef9c/greenlet-3.2.4-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:96378df1de302bc38e99c3a9aa311967b7dc80ced1dcc6f171e99842987882a2", size = 272305, upload-time = "2025-08-07T13:15:41.288Z" }, { url = "https://files.pythonhosted.org/packages/09/16/2c3792cba130000bf2a31c5272999113f4764fd9d874fb257ff588ac779a/greenlet-3.2.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1ee8fae0519a337f2329cb78bd7a8e128ec0f881073d43f023c7b8d4831d5246", size = 632472, upload-time = "2025-08-07T13:42:55.044Z" }, { url = "https://files.pythonhosted.org/packages/ae/8f/95d48d7e3d433e6dae5b1682e4292242a53f22df82e6d3dda81b1701a960/greenlet-3.2.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:94abf90142c2a18151632371140b3dba4dee031633fe614cb592dbb6c9e17bc3", size = 644646, upload-time = "2025-08-07T13:45:26.523Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5e/405965351aef8c76b8ef7ad370e5da58d57ef6068df197548b015464001a/greenlet-3.2.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:4d1378601b85e2e5171b99be8d2dc85f594c79967599328f95c1dc1a40f1c633", size = 640519, upload-time = "2025-08-07T13:53:13.928Z" }, { url = "https://files.pythonhosted.org/packages/25/5d/382753b52006ce0218297ec1b628e048c4e64b155379331f25a7316eb749/greenlet-3.2.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0db5594dce18db94f7d1650d7489909b57afde4c580806b8d9203b6e79cdc079", size = 639707, upload-time = "2025-08-07T13:18:27.146Z" }, { url = "https://files.pythonhosted.org/packages/1f/8e/abdd3f14d735b2929290a018ecf133c901be4874b858dd1c604b9319f064/greenlet-3.2.4-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2523e5246274f54fdadbce8494458a2ebdcdbc7b802318466ac5606d3cded1f8", size = 587684, upload-time = "2025-08-07T13:18:25.164Z" }, { url = "https://files.pythonhosted.org/packages/5d/65/deb2a69c3e5996439b0176f6651e0052542bb6c8f8ec2e3fba97c9768805/greenlet-3.2.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1987de92fec508535687fb807a5cea1560f6196285a4cde35c100b8cd632cc52", size = 1116647, upload-time = "2025-08-07T13:42:38.655Z" }, @@ -944,6 +946,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/44/69/9b804adb5fd0671f367781560eb5eb586c4d495277c93bde4307b9e28068/greenlet-3.2.4-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3b67ca49f54cede0186854a008109d6ee71f66bd57bb36abd6d0a0267b540cdd", size = 274079, upload-time = "2025-08-07T13:15:45.033Z" }, { url = "https://files.pythonhosted.org/packages/46/e9/d2a80c99f19a153eff70bc451ab78615583b8dac0754cfb942223d2c1a0d/greenlet-3.2.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ddf9164e7a5b08e9d22511526865780a576f19ddd00d62f8a665949327fde8bb", size = 640997, upload-time = "2025-08-07T13:42:56.234Z" }, { url = "https://files.pythonhosted.org/packages/3b/16/035dcfcc48715ccd345f3a93183267167cdd162ad123cd93067d86f27ce4/greenlet-3.2.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f28588772bb5fb869a8eb331374ec06f24a83a9c25bfa1f38b6993afe9c1e968", size = 655185, upload-time = "2025-08-07T13:45:27.624Z" }, + { url = "https://files.pythonhosted.org/packages/31/da/0386695eef69ffae1ad726881571dfe28b41970173947e7c558d9998de0f/greenlet-3.2.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:5c9320971821a7cb77cfab8d956fa8e39cd07ca44b6070db358ceb7f8797c8c9", size = 649926, upload-time = "2025-08-07T13:53:15.251Z" }, { url = "https://files.pythonhosted.org/packages/68/88/69bf19fd4dc19981928ceacbc5fd4bb6bc2215d53199e367832e98d1d8fe/greenlet-3.2.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c60a6d84229b271d44b70fb6e5fa23781abb5d742af7b808ae3f6efd7c9c60f6", size = 651839, upload-time = "2025-08-07T13:18:30.281Z" }, { url = "https://files.pythonhosted.org/packages/19/0d/6660d55f7373b2ff8152401a83e02084956da23ae58cddbfb0b330978fe9/greenlet-3.2.4-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b3812d8d0c9579967815af437d96623f45c0f2ae5f04e366de62a12d83a8fb0", size = 607586, upload-time = "2025-08-07T13:18:28.544Z" }, { url = "https://files.pythonhosted.org/packages/8e/1a/c953fdedd22d81ee4629afbb38d2f9d71e37d23caace44775a3a969147d4/greenlet-3.2.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:abbf57b5a870d30c4675928c37278493044d7c14378350b3aa5d484fa65575f0", size = 1123281, upload-time = "2025-08-07T13:42:39.858Z" }, @@ -954,6 +957,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/49/e8/58c7f85958bda41dafea50497cbd59738c5c43dbbea5ee83d651234398f4/greenlet-3.2.4-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:1a921e542453fe531144e91e1feedf12e07351b1cf6c9e8a3325ea600a715a31", size = 272814, upload-time = "2025-08-07T13:15:50.011Z" }, { url = "https://files.pythonhosted.org/packages/62/dd/b9f59862e9e257a16e4e610480cfffd29e3fae018a68c2332090b53aac3d/greenlet-3.2.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd3c8e693bff0fff6ba55f140bf390fa92c994083f838fece0f63be121334945", size = 641073, upload-time = "2025-08-07T13:42:57.23Z" }, { url = "https://files.pythonhosted.org/packages/f7/0b/bc13f787394920b23073ca3b6c4a7a21396301ed75a655bcb47196b50e6e/greenlet-3.2.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:710638eb93b1fa52823aa91bf75326f9ecdfd5e0466f00789246a5280f4ba0fc", size = 655191, upload-time = "2025-08-07T13:45:29.752Z" }, + { url = "https://files.pythonhosted.org/packages/f2/d6/6adde57d1345a8d0f14d31e4ab9c23cfe8e2cd39c3baf7674b4b0338d266/greenlet-3.2.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:c5111ccdc9c88f423426df3fd1811bfc40ed66264d35aa373420a34377efc98a", size = 649516, upload-time = "2025-08-07T13:53:16.314Z" }, { url = "https://files.pythonhosted.org/packages/7f/3b/3a3328a788d4a473889a2d403199932be55b1b0060f4ddd96ee7cdfcad10/greenlet-3.2.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d76383238584e9711e20ebe14db6c88ddcedc1829a9ad31a584389463b5aa504", size = 652169, upload-time = "2025-08-07T13:18:32.861Z" }, { url = "https://files.pythonhosted.org/packages/ee/43/3cecdc0349359e1a527cbf2e3e28e5f8f06d3343aaf82ca13437a9aa290f/greenlet-3.2.4-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23768528f2911bcd7e475210822ffb5254ed10d71f4028387e5a99b4c6699671", size = 610497, upload-time = "2025-08-07T13:18:31.636Z" }, { url = "https://files.pythonhosted.org/packages/b8/19/06b6cf5d604e2c382a6f31cafafd6f33d5dea706f4db7bdab184bad2b21d/greenlet-3.2.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:00fadb3fedccc447f517ee0d3fd8fe49eae949e1cd0f6a611818f4f6fb7dc83b", size = 1121662, upload-time = "2025-08-07T13:42:41.117Z" }, @@ -964,6 +968,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/22/5c/85273fd7cc388285632b0498dbbab97596e04b154933dfe0f3e68156c68c/greenlet-3.2.4-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:49a30d5fda2507ae77be16479bdb62a660fa51b1eb4928b524975b3bde77b3c0", size = 273586, upload-time = "2025-08-07T13:16:08.004Z" }, { url = "https://files.pythonhosted.org/packages/d1/75/10aeeaa3da9332c2e761e4c50d4c3556c21113ee3f0afa2cf5769946f7a3/greenlet-3.2.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:299fd615cd8fc86267b47597123e3f43ad79c9d8a22bebdce535e53550763e2f", size = 686346, upload-time = "2025-08-07T13:42:59.944Z" }, { url = "https://files.pythonhosted.org/packages/c0/aa/687d6b12ffb505a4447567d1f3abea23bd20e73a5bed63871178e0831b7a/greenlet-3.2.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:c17b6b34111ea72fc5a4e4beec9711d2226285f0386ea83477cbb97c30a3f3a5", size = 699218, upload-time = "2025-08-07T13:45:30.969Z" }, + { url = "https://files.pythonhosted.org/packages/dc/8b/29aae55436521f1d6f8ff4e12fb676f3400de7fcf27fccd1d4d17fd8fecd/greenlet-3.2.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b4a1870c51720687af7fa3e7cda6d08d801dae660f75a76f3845b642b4da6ee1", size = 694659, upload-time = "2025-08-07T13:53:17.759Z" }, { url = "https://files.pythonhosted.org/packages/92/2e/ea25914b1ebfde93b6fc4ff46d6864564fba59024e928bdc7de475affc25/greenlet-3.2.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:061dc4cf2c34852b052a8620d40f36324554bc192be474b9e9770e8c042fd735", size = 695355, upload-time = "2025-08-07T13:18:34.517Z" }, { url = "https://files.pythonhosted.org/packages/72/60/fc56c62046ec17f6b0d3060564562c64c862948c9d4bc8aa807cf5bd74f4/greenlet-3.2.4-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:44358b9bf66c8576a9f57a590d5f5d6e72fa4228b763d0e43fee6d3b06d3a337", size = 657512, upload-time = "2025-08-07T13:18:33.969Z" }, { url = "https://files.pythonhosted.org/packages/23/6e/74407aed965a4ab6ddd93a7ded3180b730d281c77b765788419484cdfeef/greenlet-3.2.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2917bdf657f5859fbf3386b12d68ede4cf1f04c90c3a6bc1f013dd68a22e2269", size = 1612508, upload-time = "2025-11-04T12:42:23.427Z" }, From 83838099206d7d69d88441efca2db9c1b7d01143 Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Fri, 24 Jul 2026 12:18:01 -0700 Subject: [PATCH 6/7] Added contributors full names --- docs/library/releases.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/library/releases.md b/docs/library/releases.md index 02487b523..a893baa3c 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -71,9 +71,11 @@ Release Date: July 29, 2026 * Pin to avoid pandas 3.0.4 and set a maximum sparse version by @henrydingliu in [#1072](https://github.com/casact/chainladder-python/pull/1072), [#957](https://github.com/casact/chainladder-python/pull/957) * Bump idna, tornado, bleach, soupsieve, mistune, and pillow by @dependabot[bot] in [#822](https://github.com/casact/chainladder-python/pull/822), [#962](https://github.com/casact/chainladder-python/pull/962), [#1001](https://github.com/casact/chainladder-python/pull/1001), [#1007](https://github.com/casact/chainladder-python/pull/1007), [#1107](https://github.com/casact/chainladder-python/pull/1107), [#1108](https://github.com/casact/chainladder-python/pull/1108), [#1141](https://github.com/casact/chainladder-python/pull/1141) -**New Contributors** -* @salexanian made their first contribution in [#793](https://github.com/casact/chainladder-python/pull/793) -* @etw002 made their first contribution in [#1009](https://github.com/casact/chainladder-python/pull/1009) +**Contributors** + +Welcome Shahen Alexanian (@salexanian) and Ethan Wang (@etw002) for making their first contributions! 🎉 + +Incorporated 520 commits from 8 collaborators, including returning contributors Gene Dan (@genedan), Kenneth Hsu (@kennethshsu), Henry Liu (@henrydingliu), Ethan Kang (@EKtheSage), Priyam Alok (@priyam0k), and Nick Kinney (@SaguaroDev). **Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.9.2...v0.10.0 From 2f7a7029b787c196b4faeb657fae485c7cf0ecec Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Fri, 24 Jul 2026 12:20:53 -0700 Subject: [PATCH 7/7] Added contributor fullnames and missing tickets --- docs/library/releases.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/library/releases.md b/docs/library/releases.md index a893baa3c..912bb35b2 100644 --- a/docs/library/releases.md +++ b/docs/library/releases.md @@ -21,6 +21,7 @@ Release Date: July 29, 2026 * Add `empty` attribute to `Triangle` for pandas consistency by @priyam0k in [#901](https://github.com/casact/chainladder-python/pull/901) * Implement `cl.options.describe_option` by @genedan in [#877](https://github.com/casact/chainladder-python/pull/877) * Allow `DevelopmentConstant` to be callable on columns by @henrydingliu in [#796](https://github.com/casact/chainladder-python/pull/796) +* Allow different policy lengths in `ParallelogramOLF` by @kennethshsu in [#772](https://github.com/casact/chainladder-python/pull/772) * Return a Python `bool` from `is_ultimate` by @salexanian in [#793](https://github.com/casact/chainladder-python/pull/793) * Add the `clrd2025` dataset and centralize sample metadata in a manifest surfaced via `list_samples` by @SaguaroDev in [#771](https://github.com/casact/chainladder-python/pull/771), [#886](https://github.com/casact/chainladder-python/pull/886) * Add Friedland Exhibit III samples and earned premium by @salexanian in [#787](https://github.com/casact/chainladder-python/pull/787) @@ -54,6 +55,7 @@ Release Date: July 29, 2026 * Add doctest examples for `BootstrapODPSample` and the correlation classes by @priyam0k in [#836](https://github.com/casact/chainladder-python/pull/836), [#844](https://github.com/casact/chainladder-python/pull/844) * Improve `Development` and `DevelopmentConstant` docstrings and examples by @kennethshsu in [#834](https://github.com/casact/chainladder-python/pull/834), [#993](https://github.com/casact/chainladder-python/pull/993) * Clarify the `Triangle` constructor docstring and document `array_backend`/`pattern` by @SaguaroDev in [#812](https://github.com/casact/chainladder-python/pull/812), [#813](https://github.com/casact/chainladder-python/pull/813) +* Render API methods inline via custom autosummary templates by @priyam0k and @henrydingliu in [#885](https://github.com/casact/chainladder-python/pull/885), [#893](https://github.com/casact/chainladder-python/pull/893), [#900](https://github.com/casact/chainladder-python/pull/900) * Document creating triangles with preexisting ultimates by @EKtheSage in [#968](https://github.com/casact/chainladder-python/pull/968) * Add Semiannual (S) grain documentation by @SaguaroDev in [#814](https://github.com/casact/chainladder-python/pull/814) * Add `ARCHITECTURE.md` by @genedan in [#1070](https://github.com/casact/chainladder-python/pull/1070) @@ -75,7 +77,7 @@ Release Date: July 29, 2026 Welcome Shahen Alexanian (@salexanian) and Ethan Wang (@etw002) for making their first contributions! 🎉 -Incorporated 520 commits from 8 collaborators, including returning contributors Gene Dan (@genedan), Kenneth Hsu (@kennethshsu), Henry Liu (@henrydingliu), Ethan Kang (@EKtheSage), Priyam Alok (@priyam0k), and Nick Kinney (@SaguaroDev). +Incorporated 523 commits from 8 collaborators, including returning contributors Gene Dan (@genedan), Kenneth Hsu (@kennethshsu), Henry Liu (@henrydingliu), Ethan Kang (@EKtheSage), Priyam Alok (@priyam0k), and Nick Kinney (@SaguaroDev). **Full Changelog**: https://github.com/casact/chainladder-python/compare/v0.9.2...v0.10.0