Skip to main content

Changelog

All notable changes to this project (since 2026-02-19) are documented in this file.

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

[Unreleased]​

Added​

Changed​

Deprecated​

Removed​

Fixed​

Security​

v0.5​

Added​

  • (dppl#239, treeppl#161) --debug-graph-json <FILE> to output a json representation of the graph generated when running a model compiled with mcmc-graph.
  • (dppl#243, treeppl#161) --debug-idealized <FILE> to output a pretty-printed version of the graph after the idealized transformation stage.
  • (dppl#240, dppl#242) Improved the graph translation performed in -m mcmc-graph
  • (dppl#245, treeppl#163) Add --max-propagations INT to limit smc-apf near infinite loop (see tpplc --help for more details)
  • (treeppl#165) A tpplc --version flag that prints a version number when given to a released compiler and ~git~ when given to a manually built compiler.
  • (treeppl#169) Add all function.
  • (treepplr#12) Add tp_runtime_options
  • (treepplr#13) tp_run(n_runs) to run multiple sweeps/runs
  • (treepplr#13) tp_run(n_processes) to run MCMC or SMC in parallel using n cores
  • (treepplr#13) tp_compile_methods() to find available methods
  • (treepplr#14) Tim and Stenio as package authors in DESCRIPTION.
  • (treeppl#173) Add bool2int function
  • (treeppl#173) Inference test suite
  • (treepplr#31) At the end of a run, tp_run() now prints a summary with runtime information and output directories/files.
  • (treepplr#31) New argument wide in tp_parse_smc() and tp_parse_mcmc() to choose between wide (standard in other software) and long (good for plotting) format. Default = TRUE.

Changed​

  • (treeppl#172) Updated external dependencies
  • (treepplr#12) Change "compiled_model" to "sampler" (temporary)
  • (treepplr#13) Updated the documentation
  • (treepplr#14) treepplr package installation should be done with pak::pak because devtools::install_github will soon be deprecated.
  • (treepplr#30) Updated roxygen documentation for tp_parse_smc() and tp_parse_mcmc(). Changed their output objects to tidy data frames.
  • (miking#1006, dppl#246, treeppl#165) Rearranged tpplc --help output for nicer readability
  • (treepplr#31) tp_run() now returns a tidy data frame (in wide format by default) instead of a list. It automatically calls tp_parse_smc() or tp_parse_mcmc(), depending on the inference method and model passed to tp_compile(). For models without a parser yet (e.g., models that return trees), it returns the path to the output JSON file along with a message.
  • (treepplr#31) tp_parse_smc() and tp_parse_mcmc() now take a character vector with the path(s) to the JSON output file(s) instead of the list returned by tp_run().
  • (treepplr#31) tp_mcmc_convergence() and tp_smc_convergence() now accept data frames in either long or wide format.

Deprecated​

  • (treepplr#12) all references to n_runs have been remove

Removed​

Fixed​

  • (treeppl#162) Matrix operations should no longer be compiled incorrectly when using mcmc-graph.
  • (treeppl#166) Lexing errors now point at the actual problem
  • (treeppl#172) Updated builds to work on MacOS 27
  • (treepplr#12) Always check if tpplc is installed before calling it
  • (treepplr#12) tp_compile_options update for new --help format
  • (treepplr#30) tp_parse_smc() and tp_parse_mcmc() now parse per-particle/iteration with explicit indices and (for SMC) join weights by index using left_join(..., by = "particle") instead of relying on positional recycling, which is the default behavior of data.frame() when handling vectors of different lengths.
  • (dppl#251) Removed opportunistic redraw of 0 probability assumes in mcmc, since it does not yield correct inference in general.

Security​

v0.4.1​

Added​

Changed​

Deprecated​

Removed​

Fixed​

  • (treeppl-python#23) Added missing import of importlib.resources, which would be implicitly imported on some machines, but not all.

Security​

v0.4​

Added​

  • (dppl#223, treeppl#147, dppl#230, treeppl#150, treeppl#151) New flag --data-augmentation (see tpplc --help for details)
  • (treeppl#138) Added some distribution functions for manual updates via conjugate priors
  • (treeppl#138) Added diversification model example for the birth-death diffusion (BDD) model, version 2 (analogous to ClaDS2).
  • (treeppl#138) Added diversification model versions with hard-coded delayed sampling.
  • (treeppl#138) Added constant-rate birth-death (CRBD) model using weights based on analytical likelihood rather than simulation.
  • (treeppl-python#18) Python interface: Introduced CompileArguments and RunArguments classes for handling compile and run arguments. RunArguments can now be serialized to and deserialized from JSON files for easier reuse and reproducibility.
  • (dppl#231) Added previous weight and proposal weight to output of --debug-mcmc
  • (miking#986, dppl#234, dppl#236, treeppl#155) Experimental new inference method -m mcmc-graph
  • (treeppl#149) Models included with the compiler can now be referenced in imports or as arguments to tpplc via, e.g., treeppl::models/diversification/crbd.tppl

Changed​

  • (dppl#229) Inference methods using alignment now crash if no aligned assumes were found.
  • (dppl#238) SMC-based inference methods now refuse to compile if no observe or weights are found.
  • (treeppl-python#18) Python interface: Compile arguments now mirrors the arguments used by tpplc for improved consistency and alignment between interfaces.
  • (miking#984, treeppl#135) Command line flags are now split into categories, and some parameters can be given to a compiled model
  • (treeppl#143) The debug statement now prints literal strings as-is, while variables are pretty-printed.
  • (miking#999) Incompatible flags are reported as such, rather than unrecognized.

Deprecated​

Removed​

  • (treeppl#153) Removed the Tree type from the standard.tppl library file. An identical type, called ClockTree, is now in the trees.tppl library file. This change allows a more convenient interface, in that a user can synonymize a local custom Tree type with ClockTree, or any other tree type in the standard library that is appropriate for the model script.
  • (treeppl-python#18) Jupyter interface: Removed legacy syntax highlighting support that was only compatible with older Jupyter Notebook versions.

Fixed​

  • (treeppl#138) Changed the rho parameter (leaf sampling probability) in the data files for the diversification model scripts from 2.0 to 0.5.
  • (dppl#228) Running multiple sweeps with -m mcmc now resets state properly between the runs
  • (miking#981) The debug statement now properly handles printing strings
  • (treeppl#157) Bug in the code generation for pigeons related flags.

Security​

v0.3​

Added​

  • New flag --infer-time (see tpplc --help for details)
  • Add a changelog to the webside

Changed​

  • The debug statement now accepts multiple arguments

Deprecated​

Removed​

Fixed​

  • Using debug to print strings no longer crashes

Security​