                        Changes in version 1.7.0                        

New Features

  - pool() gains a rubin_df_method argument. The default "barnard-rubin"
    uses the Barnard-Rubin small-sample degrees-of-freedom adjustment,
    while "rubin" uses the original approximation from Rubin (1987).
    (#587)
  - ancova() now supports the analysis of two or more treatment groups.
    For more than two groups the ref / alt naming scheme is extended
    with alt2, alt3, etc. based on the factor levels of vars$group; the
    two-group output is unchanged (trt, lsm_ref, lsm_alt) for backwards
    compatibility. set_vars() gained a group_contrasts argument allowing
    users to specify a bespoke set of treatment-group contrasts for
    ancova(). By default a contrast of each non-reference group versus
    the reference group is estimated. Custom contrasts must be named
    (the name becomes the output parameter name) and may be given as
    pairwise c(minuend, subtrahend) character vectors or as general
    named numeric weight vectors over the group levels (e.g. c(Placebo =
    -1, A = 0.5, B = 0.5) for a pooled comparison); contrasts are
    evaluated in a contrast-coding-agnostic way. The data.frame produced
    by as.data.frame() / pool() now includes explicit estimate_type,
    group, group_level_1, group_level_2, contrast_label and visit
    columns when the analysis was performed with ancova(). The existing
    parameter column is retained for backwards compatibility. (#520)

Bug Fixes

  - ancova() now rejects interactions involving the treatment group in
    vars$covariates, avoiding treatment contrasts that depend on the
    reference values of interacting covariates. (#595)

                 Changes in version 1.6.1 (2026-07-22)                  

New Features

  - rbmi now uses the lifecycle package
  - Added en-GB spell-check and a corresponding test to the package

Documentation

  - Documented the return value (@return) of all exported functions and
    marked internal helpers with @keywords internal (#567).
  - Added executable @examples to the exported user-facing functions
    that were missing them, and marked the internal-only has_class(),
    validate() and longDataConstructor with @keywords internal (#570).

Bug Fixes

  - The vignette on retrieved dropout methods is now correctly embedded.
  - Fixed numerous spelling errors and standardised nomenclature for
    missing not at random to MNAR (rather than a mix of NMAR and MNAR)
  - Deprecated nmar.rm argument of longdata$get_data in favour of
    mnar.rm for nomenclature consistency.
  - Fixed a misleading error message in imputation_list_single() where a
    failure of the imputation-count-divisible-by-D check incorrectly
    reported that "multiple ids were detected" (#574)
  - Improved CI/CD scripts to reliably fail GitHub CI/CD in case of
    failing tests.
  - Fixed error message for mu$visit in simulate_test_data() to refer to
    visit instead of trt (#578)
  - Fixed a bug where each non-ignorable Stan warning from the Bayesian
    sampler was reported multiple times instead of once. (#572)
  - Fixed the error message in apply_delta() to correctly refer to data
    instead of dat (#576)
  - Fixed the broken GitHub badge in README.md (#548)

Miscellaneous

  - Replaced deprecated structure() special name .Dim with dim in unit
    tests to resolve an R CMD check NOTE (#581)
  - Updated Marcel Wolbers' e-mail address (#583)

                 Changes in version 1.6.0 (2026-01-23)                  

  - Stan programs are constructed in memory and respect the cache
    setting
  - Cache default directory location updated to be the local session
    (e.g. default cache won't persist across R sessions)
  - Bug fixes to caching hash to better detect when cache is stale
  - Rework of unit tests to have multiple tiers of tests which run under
    different scenarios
  - Illustrate how to set Stan seed in control_bayes() in the quickstart
    vignette

                 Changes in version 1.5.2 (2025-10-28)                  

Bug Fixes

  - Disable caching in tests on CRAN and reduce tests run on CRAN to
    conform to 10-minute limit

                 Changes in version 1.5.1 (2025-10-14)                  

Bug Fixes

  - Modify caching in tests to speed up testing on CRAN.

                        Changes in version 1.5.0                        

New Features

  - All covariance structures are now also supported for Bayesian
    multiple imputation: method_bayes() gained additional covariance and
    prior_cov arguments to allow users to specify the covariance
    structure and prior for the Bayesian imputation model. Please see
    the updated statistical specifications vignette for details. (#501,
    #518)
  - New function mcse() to calculate the Monte Carlo standard error for
    pooled estimates from (approximate) Bayesian imputation. (#493)

Bug Fixes

  - Fixed cluster used in parallel test and make sure tests clean up
    Stan files properly. (#523)
  - Small updates and fixes to documentation. (#504, #506, #498)

                 Changes in version 1.4.1 (2025-03-03)                  

Bug Fixes

  - Fixed Stan related bug that caused unit tests to fail on machines
    compiling with the C23 standard (#481)
  - Fixed bug in unit test that caused false-positive reproducibility
    errors (#483)

                 Changes in version 1.4.0 (2025-02-07)                  

Breaking Changes

  - Deprecated the burn_in and burn_between arguments in method_bayes()
    in favour of using the warmup and thin arguments, respectively, in
    the new control list produced by control_bayes. This is to align
    with the rstan package. (#477)

New Features

  - Added control_bayes() function to allow expert users to specify
    additional control arguments for the MCMC computations using rstan.
    (#477)

Bug Fixes

  - Fixed bug where lsmeans(.weights = "proportional_em") would error if
    there was only a single categorical variable in the dataset. (#412)
  - Removed native pipes |> and lambda functions \(x) from code base to
    ensure package is backwards compatible with older versions of R.
    (#474)

                 Changes in version 1.3.1 (2024-12-11)                  

  - Fixed bug where stale caches of the rstan model were not being
    correctly cleared (#459)

                 Changes in version 1.3.0 (2024-10-16)                  

Breaking Changes

  - Convert rstan to be a suggested package to simplify the installation
    process. This means that the Bayesian imputation functionality will
    not be available by default. To use this feature, you will need to
    install rstan separately (#441)
  - Deprecated the seed argument to method_bayes() in favour of using
    the base set.seed() function (#431)

New Features

  - Added vignette on how to implement retrieved dropout models with
    time-varying intercurrent event (ICE) indicators (#414)
  - Added vignette on how to obtain frequentist and information-anchored
    inference with conditional mean imputation using rbmi (#406)
  - Added FAQ vignette including a statement on validation (#407 #440)
  - Updates to lsmeans() for better consistency with the emmeans package
    (#412)
      - Renamed lsmeans(..., weights = "proportional") to lsmeans(...,
        weights = "counterfactual")to more accurately reflect the
        weights used in the calculation.
      - Added lsmeans(..., weights = "proportional_em") which provides
        consistent results with emmeans(..., weights = "proportional")
      - lsmeans(..., weights = "proportional") has been left in the
        package for backwards compatibility and is an alias for
        lsmeans(..., weights = "counterfactual") but now gives a message
        prompting users to use either "proportional_em" or
        "counterfactual" instead.
  - Added support for parallel processing in the analyse() function
    (#370)
  - Added documentation clarifying potential false-positive warnings
    from rstan (#288)
  - Added support for all covariance structures supported by the mmrm
    package (#437)
  - Updated rbmi citation detail (#423 #425)

Miscellaneous Bug Fixes

  - Stopped warning messages being accidentally suppressed when changing
    the ICE type in impute() (#408)
  - Fixed equations not rendering properly in the pkgdown website (#433)

                 Changes in version 1.2.6 (2023-11-24)                  

  - Updated unit tests to fix false-positive error on CRAN testing
    servers

                 Changes in version 1.2.5 (2023-09-20)                  

  - Updated internal Stan code to ensure future compatibility
    (@andrjohns, #390)
  - Updated package description to include relevant references (#393)
  - Fixed documentation typos (#393)

                 Changes in version 1.2.3 (2022-11-14)                  

  - Minor internal tweaks to ensure compatibility with the packages rbmi
    depends on

                 Changes in version 1.2.1 (2022-10-25)                  

  - Removed native pipes |> in testing code so package is backwards
    compatible with older servers
  - Replaced our glmmTMB dependency with the mmrm package. This has
    resulted in the package being more stable (less model fitting
    convergence issues) as well as speeding up run times 3-fold.

                 Changes in version 1.1.4 (2022-05-18)                  

  - Updated URLs for references in vignettes
  - Fixed a bug where visit factor levels were re-constructed
    incorrectly in delta_template()
  - Fixed a bug where the wrong visit was displayed in the error message
    for when a specific visit doesn't have any data in draws()
  - Fixed a bug where the wrong input parameter was displayed in an
    error message in simulate_data()

                 Changes in version 1.1.3 (2022-03-21)                  

  - No change in functionality from 1.1.0
  - Various minor tweaks to address CRAN checks messages

                 Changes in version 1.1.0 (2022-03-02)                  

  - Initial public release
