Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.1.6] - 2026-06-04

Fixed

  • Package logo now uses an absolute raw-GitHub URL so it renders on the PyPI project page (relative paths only resolve on GitHub).

[0.1.1.5] - 2026-06-04

Changed

  • Citation metadata now uses the Zenodo concept DOI (10.5281/zenodo.20543002), which always resolves to the latest release, across the README, docs, and CITATION.cff.
  • DOI badge switched to a shields.io-rendered badge for reliable rendering through GitHub's image proxy.

[0.1.1.4] - 2026-06-04

Added

  • Citation support — new "Citation" section in the README and docs home page with BibTeX and plain-text formats.
  • CITATION.cff file enabling GitHub's "Cite this repository" button and providing machine-readable citation metadata.
  • .zenodo.json metadata file for archiving releases on Zenodo and minting a citable DOI.

[0.1.1.3] - 2026-05-17

Added

  • Unified paired facade — new PairedBayesPropTest class in bayesprop.resources.bayes_paired that dispatches to Laplace ("laplace"), PG Gibbs ("pg"), or Bootstrap ("bootstrap") backends via a single method parameter. All common attributes and methods are forwarded transparently to the selected backend.
  • PairedBayesPropTestLaplace alias exported from bayes_paired_laplace for explicit Laplace backend access.
  • Backward-compatible re-export of PairedBayesPropTest from bayes_paired_laplace so existing imports keep working.

Changed

  • Laplace backend class renamed from PairedBayesPropTest to _PairedLaplace (internal); public access via the unified facade or the PairedBayesPropTestLaplace alias.
  • Module-level docstring imports updated from ai_eval.* to bayesprop.* across bayes_nonpaired, bayes_paired_laplace, and bayes_paired_pg.

[0.1.1.2] - 2026-05-17

Added

  • Hierarchical PG Gibbs modelPairedBayesPropTestPG now accepts hyperprior_mu and hyperprior_delta arguments (Inverse-Gamma hyperpriors on σ²_μ and σ²_δ). The Gibbs sampler adds two conjugate IG updates per iteration, yielding exact posterior inference over (μ, δ_A, σ²_μ, σ²_δ). New attributes sigma_sq_mu_samples and sigma_sq_delta_samples store the pooled posterior draws.
  • Savage-Dickey Bayes factor for the hierarchical PG model automatically uses the marginal Student-t prior on δ_A induced by the IG hyperprior.
  • plot_trace() now renders additional σ_μ and σ_δ rows (trace + ACF) when hyperpriors are active.
  • Hierarchical section in the PG Gibbs notebook (bayesian_AB_model_comparison_paired_gibbs.ipynb): fit, trace plot, posterior KDEs, Savage-Dickey BF, and fixed-vs-hierarchical comparison table.
  • Hierarchical model documentation in docs/mkdocs/docs/guide/paired_pg.md: DAG, extended Gibbs steps, Student-t marginal prior, and a full worked example.

Changed

  • Renamed "Model A / Model B" labels to "Group A / Group B" in plot_forest() defaults and print() statements across bayes_nonpaired.py, bayes_paired_laplace.py, and bayes_paired_pg.py. PPC subplot titles also updated.
  • BF₁₀ display in the PG Gibbs notebook comparison cell now uses _format_bf() and log₁₀(BF₁₀) instead of raw floats.

[0.1.1.1] - 2026-05-16

Added

  • Abstract base class BaseBayesPropTest in bayesprop.resources.base defining the shared public API (fit, decide, rope_test, plot_posteriors, plot_posterior_delta, print_summary) that all four model classes now inherit from.
  • plot_posteriors() method on all four models — single-panel overlay of the θ_A and θ_B posterior densities.
  • plot_posterior_delta() method on all four models — single-panel KDE of Δ = θ_A − θ_B on the probability scale with 95 % CI shading.
  • PairedBayesPropTestBB: new theta_A_samples / theta_B_samples attributes stored during fit(), plus plot_posteriors(), plot_posterior_delta(), and print_summary().

Changed

  • NonPairedBayesPropTest.plot_posteriors() refactored from a two-panel layout to a single-panel θ_A / θ_B overlay.
  • PairedBayesPropTest.plot_posterior_delta() (Laplace) and PairedBayesPropTestPG.plot_posterior_delta() now plot Δ = θ_A − θ_B on the probability scale instead of δ_A on the logit scale.
  • All four model classes (NonPairedBayesPropTest, PairedBayesPropTest, PairedBayesPropTestPG, PairedBayesPropTestBB) now inherit from BaseBayesPropTest.
  • Updated README quick-start examples to use the new plot_posteriors() and plot_posterior_delta() API.
  • Updated notebooks (deepeval_bayesprop_example, bayesian_AB_model_comparison_paired_laplace, bayesian_AB_model_comparison_paired_gibbs) to use the new plot API.

Deprecated

  • PairedBayesPropTest.plot_laplace_posterior() — kept for backward compatibility; use plot_posteriors() + plot_posterior_delta() instead.
  • PairedBayesPropTestBB.plot_posterior() — kept for backward compatibility; use plot_posteriors() + plot_posterior_delta() instead.

[0.1.0.7] - 2026-05-14

Added

  • Operating characteristics module for the non-paired model (bayesprop.utils.operation_characteristics) with frequentist evaluation utilities (power, Type-I error, expected sample size).
  • Operating characteristics module for the paired model (bayesprop.utils.operation_characteristics_paired).
  • Bayesian bootstrap example for the paired design (bayesprop.resources.bayes_paired_bootstrap).
  • New user-guide pages and API reference pages for the operating characteristics workflows.
  • Unit tests covering the operating-characteristics utilities (tests/test_operation_characteristics.py).
  • Shared bayesprop.utils.utils.binarize_if_needed helper plus a matching threshold (default 0.5) and verbose argument on the paired classes PairedBayesPropTest, PairedBayesPropTestPG, PairedBayesPropTestBB, and SequentialPairedBayesPropTest. Continuous scores in [0, 1] are now auto-binarised at the configured threshold (mirroring the non-paired API), and out-of-range or NaN inputs raise a clear ValueError instead of being silently truncated. The Pydantic schemas PairedLaplaceConfig and PairedPGConfig gained a matching threshold field.

Changed

  • Lowered default MCMC settings for PairedBayesPropTestPG from n_iter=2000, burn_in=500, n_chains=4 to n_iter=1000, burn_in=200, n_chains=2. The Pólya–Gamma Gibbs sampler is block-conjugate for the paired Bernoulli model and reaches R-hat ≈ 1.00 within ~50 iterations; empirically the new defaults yield ESS ≳ 1300 per chain on both small (n = 10) and realistic (n ≥ 500) data, while running ~3× faster. The matching defaults in PairedPGConfig (Pydantic schema) were lowered to keep the two surfaces consistent. Increase to n_iter ≥ 2000 if you need stable Savage–Dickey BF estimates for very strong effects (BF tail behaviour is KDE-sensitive, not chain-sensitive).

[0.1.0.6] - 2026-05-12

Added

  • Project logo and trimmed logo variant for the README and PyPI page.

Changed

  • Refreshed README with updated badges, logo, and feature overview.
  • Granted additional permissions to the GitHub Actions release workflow to allow publishing artifacts.

Fixed

  • PyPI logo rendering on the project page.

[0.1.0.5] - 2026-05-11

Changed

  • Documentation polish across the user guide and API reference.

[0.1.0.4] - 2026-05-10

Added

  • Sequential update design for the non-paired Bayesian proportion model.
  • Sequential update design for the paired Laplace model.
  • New documentation pages describing the sequential designs and their decision rules.

Changed

  • README updated to highlight the new sequential-analysis capabilities.

[0.1.0.3] - 2026-05-07

Changed

  • Code structure refactored across modules for better readability and maintainability (chore: update code structure ...).
  • Improved function docstrings with detailed parameter and return-value descriptions; consistent formatting across the codebase.

[0.1.0.2] - 2026-05-06

Added

  • File services and utility functions for data handling and simulation (bayesprop.services.file, bayesprop.utils.utils).

Changed

  • Bumped version to 0.1.0.2.
  • Enhanced explanation of the non-paired density in the documentation.
  • Refined descriptions in README, Getting Started, and User Guide sections for clarity and consistency.
  • Updated coverage badge.

[0.1.0.1] - 2026-05-05

Changed

  • Switched PyPI badge to TestPyPI while the package was in pre-release.
  • Refactor pass over notebooks and tests for readability and consistency.
  • Upgraded GitHub Actions used by the PyPI publishing workflow and streamlined its steps.

Removed

  • Codecov configuration file (coverage is now reported via the CI badge).

[0.1.0] - 2026-05-05

Added

  • Initial public package layout under src/bayesprop/ with resources/, services/, utils/, and config/ subpackages.
  • Bayesian models for proportions:
  • Non-paired model (bayes_nonpaired)
  • Paired model with Laplace approximation (bayes_paired_laplace)
  • Paired model with Pólya-Gamma augmentation (bayes_paired_pg)
  • Bayes Factor Design Analysis (BFDA) utilities and documentation.
  • Pydantic data schemas (resources.data_schemas).
  • MkDocs (Material) documentation site with user guide and API reference generated via mkdocstrings.
  • GitHub Actions CI workflow for testing and coverage reporting.
  • Unit tests for the core bayesAB/bayesprop modules.
  • GitHub Copilot instructions for the repository.

Fixed

  • Repository URLs in the mkdocs.yml configuration.

This page mirrors the CHANGELOG.md at the root of the repository, so there is a single source of truth for release notes.