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 withmcmc-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 INTto limitsmc-apfnear infinite loop (seetpplc --helpfor more details) - (treeppl#165) A
tpplc --versionflag that prints a version number when given to a released compiler and~git~when given to a manually built compiler. - (treeppl#169) Add
allfunction. - (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
bool2intfunction - (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
wideintp_parse_smc()andtp_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::pakbecausedevtools::install_githubwill soon be deprecated. - (treepplr#30) Updated roxygen documentation for
tp_parse_smc()andtp_parse_mcmc(). Changed their output objects to tidy data frames. - (miking#1006, dppl#246, treeppl#165) Rearranged
tpplc --helpoutput for nicer readability - (treepplr#31)
tp_run()now returns a tidy data frame (in wide format by default) instead of a list. It automatically callstp_parse_smc()ortp_parse_mcmc(), depending on the inference method and model passed totp_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()andtp_parse_mcmc()now take a character vector with the path(s) to the JSON output file(s) instead of the list returned bytp_run(). - (treepplr#31)
tp_mcmc_convergence()andtp_smc_convergence()now accept data frames in either long or wide format.
Deprecated
- (treepplr#12) all references to
n_runshave 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_optionsupdate for new--helpformat - (treepplr#30)
tp_parse_smc()andtp_parse_mcmc()now parse per-particle/iteration with explicit indices and (for SMC) join weights by index usingleft_join(..., by = "particle")instead of relying on positional recycling, which is the default behavior ofdata.frame()when handling vectors of different lengths. - (dppl#251) Removed opportunistic redraw of 0 probability
assumes inmcmc, 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(seetpplc --helpfor 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
CompileArgumentsandRunArgumentsclasses for handling compile and run arguments.RunArgumentscan 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 totpplcvia, 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
observeorweights are found. - (treeppl-python#18) Python interface: Compile arguments now mirrors the arguments used by
tpplcfor 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
debugstatement 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
Treetype from thestandard.tppllibrary file. An identical type, calledClockTree, is now in thetrees.tppllibrary file. This change allows a more convenient interface, in that a user can synonymize a local customTreetype withClockTree, 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
rhoparameter (leaf sampling probability) in the data files for the diversification model scripts from2.0to0.5. - (dppl#228) Running multiple sweeps with
-m mcmcnow resets state properly between the runs - (miking#981) The
debugstatement now properly handles printing strings - (treeppl#157) Bug in the code generation for pigeons related flags.
Security
v0.3
Added
- New flag
--infer-time(seetpplc --helpfor details) - Add a changelog to the webside
Changed
- The
debugstatement now accepts multiple arguments
Deprecated
Removed
Fixed
- Using
debugto print strings no longer crashes