Pular para o conteúdo

Release Notes

Type: compatible minor release preparation.

Main points:

  • Spark transform supports missing_policy="merge" when a merge decision was learned, using native Spark expressions and return_woe=False
  • Spark fit with missing merge uses a controlled sampled-to-pandas path and records that the merge decision was learned on the sample
  • Spark validation/reporting adds source_profile_, sample-vs-source diagnostics, and missing_sampling_diagnostics
  • metadata, bundle outputs, and audit_report.html carry sampling caveats for Spark sampled fit
  • audit_report.html is a narrative standalone HTML report with embedded CSS, print-friendly layout, missing policy explanations, bundle inventory, validation alerts, and limitations
  • export_bundle(...) includes audit_report.html by default
  • docs-site includes a Reveal.js presentation gallery and RiskBands overview deck
  • pt-BR/en docs and examples cover missing policy, audit bundle/reporting, and Spark missing merge behavior

Notes:

  • missing_policy="standard" remains the default
  • Spark-native full fit is not part of this release target
  • Spark return_woe=True is still not supported
  • no temporal_stable, monotonic_neighbor, custom merge criteria, opaque imputation, or PySpark 4.x support is added
  • the audit report supports review, but it does not replace independent formal validation or guarantee regulatory compliance
  • joblib/PYSEC-2024-277 is handled as a documented pip-audit exception with no fixed version available; only that advisory is ignored, and the decision is recorded in docs/security/pip_audit_exceptions.md

Type: compatible minor release.

Main points:

  • missing_policy="merge" adds auditable missing-value merge for pandas workflows
  • missing_merge_criterion="nearest_event_rate" selects the closest regular bin by fit-time event-rate distance
  • missing_merge_criterion="nearest_woe" selects the closest regular bin by fit-time WoE distance
  • missing_merge_fallback supports separate_bin and raise
  • missing_profile_, missing_decision_log_, missing_merge_candidates_, and missing_merge_map_ preserve the audit trail
  • return_woe=True routes merged missing values to the learned destination bin before mapping WoE
  • bundle and reporting exports persist merge criterion, fallback, candidates, decision log, and merge map
  • standard, separate_bin, forbid, legacy alias compatibility, and RiskBands is Binner are preserved
  • docs pt-BR/en and examples describe both merge criteria

Notes:

  • missing_policy="standard" remains the default
  • PySpark merge is not implemented; PySpark raises an explicit boundary for missing_policy="merge"
  • no temporal_stable, monotonic_neighbor, custom merge criteria, opaque imputation, or PySpark 4.x support is added

Type: docs-only preparation.

Status: documentation update after v2.2.0; no package version bump.

Main points:

  • adds a focused missing-policy guide for standard, separate_bin, and forbid
  • adds small pandas and PySpark missing-policy demos
  • improves docs-site navigation for missing values, bundle fields, and audit logs
  • keeps PySpark documented as optional through riskbands[spark]
  • does not change core behavior, package version, publish status, tag, or release artifacts

Historical notes:

  • at that documentation point, merge policies remained future work
  • no opaque intelligent imputation is added
  • i18n is not part of this docs-only preparation

Compatible minor release focused on auditable missing-value policy and compatibility.

Main points:

  • missing_policy="standard" is the default and preserves the Sprint A baseline behavior
  • missing_policy="separate_bin" is opt-in and creates explicit Missing bins, including categorical missing values
  • missing_policy="forbid" raises during fit or transform when selected features contain missing values
  • standard is the canonical name for the historical maximize-oriented score strategy
  • legacy remains accepted as a compatibility alias for standard
  • pandas and PySpark inputs are supported by the missing-policy contract
  • bundles persist missing_policy, effective_missing_policy, missing_profile, and missing_decision_log
  • old bundles without these fields continue to load as standard
  • PySpark remains optional through riskbands[spark] with pyspark>=3.5,<4

Notes:

  • merge policies such as merge_nearest_woe and merge_nearest_event_rate are not part of this target
  • no opaque intelligent imputation is added
  • a full distributed Spark fitting backend is not part of this target

Compatible minor release focused on the preferred RiskBands name, optional PySpark paths, and validation profiles.

Main points:

  • RiskBands is the preferred public estimator name; Binner remains compatible
  • min_n_bins records a soft quality status without forcing artificial cuts
  • sample_size controls PySpark fit sampling
  • pandas/PySpark inputs are detected automatically in fit and transform
  • pandas outputs remain pandas; PySpark outputs remain PySpark
  • fit(validate=True) and transform(validate=True) create validation profiles with separate fit and transform reports
  • v2.1.0 bundles persist schema/version metadata, profiles, separate validation reports, sampling/backend metadata, and data schema when available
  • PySpark remains optional through riskbands[spark] with pyspark>=3.5,<4

Notes:

  • PySpark fit uses controlled sampling plus the current pandas engine
  • PySpark transform and validation profiles use native Spark expressions and aggregated profiles
  • A full distributed Spark fitting backend is not part of this release

Patch release focused on release hardening and deterministic operational behaviour.

Main points:

  • stronger categorical handling for rare categories, missing values, and unknown categories
  • safer export_bundle(...) outputs with sanitized names and a traceable manifest
  • explicit force_numeric support
  • stronger quality gates with ruff, coverage-enabled pytest, pip check, bandit, and pip-audit
  • supply-chain constraints to avoid the vulnerable ortools 9.11.4210 -> protobuf 5.26.1 resolver path
  • README and release governance updates for pandas, Spark/Databricks usage, overrides, auditable export, assets, and local prompts

Release focada em auditabilidade real, inspeção mais amigável e experiência pública mais robusta.

Principais pontos:

  • nova camada pública de export com export_binnings_json(...)
  • novo bundle auditável com export_bundle(...)
  • metadata_ mais forte, incluindo pesos do score e contexto efetivo do fit
  • novas tabelas públicas score_table() e audit_table()
  • aliases mais descobríveis para inspeção de bins
  • nova camada pública de plots para bad rate, heatmap, share temporal e score components
  • correção do alinhamento temporal da estratégia supervisionada, melhorando diagnostics e visualizações
  • benchmark assets da documentação regenerados com charts mais largos e menos traces vazios
  • docs-site reforçado para onboarding, auditoria e interpretação visual

Patch release para fechar a publicação pública com consistência:

  • corrige a resolução de riskbands.__version__ no pacote instalado fora do source tree
  • adiciona teste de regressão para a leitura de versão via metadata distribuída
  • preserva integralmente a renomeação para stable, a documentação nova e o fluxo de release da série v2

Release de consolidação pública:

  • renomeação definitiva do valor público de score_strategy de generalization_v1 para stable
  • remoção do nome antigo da API pública, exemplos, smoke tests, labels e documentação principal
  • docs-site reorganizado para onboarding, primeiros passos e navegação mais clara para novos usuários
  • páginas dedicadas para score_strategy, normalization_strategy, woe_shrinkage_strength, Optuna e interpretação de outputs
  • notebooks e exemplos alinhados ao fluxo amigável no estilo sklearn e pandas
  • preparação explícita do fluxo de release para validação, GitHub Pages e publicação em PyPI via Trusted Publishing

Evolução importante da ergonomia da API pública:

  • Binner mais alinhado a convenções de sklearn e pandas
  • suporte amigável a fit(df, y="target", column="feature")
  • transform(...) e fit_transform(...) com comportamento mais previsível para DataFrame e Series
  • aliases públicos como max_n_bins e monotonic_trend
  • novos métodos de inspeção: binning_table(), summary(), report(), score_details(), diagnostics() e plot_stability()
  • atributos pós-fit mais fáceis de descobrir
  • notebook novo com Plotly e dados sintéticos para onboarding da biblioteca

Evolução importante da camada de scoring:

  • caminho legado preservado explicitamente como legacy
  • novo objective temporal introduzido e hoje exposto publicamente como stable
  • pesos configuráveis, normalização absolute e shrink de WoE
  • integração consistente com Binner, BinComparator, relatórios auditáveis e Optuna
  • novo exemplo mínimo comparando legacy versus stable

Mudanças estruturais importantes já refletidas no repositório:

  • rename destrutivo para riskbands
  • Binner estabelecido como classe principal pública
  • namespace legado nasabinning removido
  • direção de documentação orientada a benchmark estabelecida nos exemplos do repositório