TuringLang / DynamicPPL.jl

Implementation of domain-specific language (DSL) for dynamic probabilistic programming
https://turinglang.org/DynamicPPL.jl/
MIT License
157 stars 26 forks source link
probabilistic-programming probability-theory

DynamicPPL.jl

Stable Dev CI JuliaNightly IntegrationTest Coverage Status Codecov Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages

A domain-specific language and backend for probabilistic programming, used by Turing.jl.

DynamicPPL is the part of Turing.jl that deals with defining, running, and manipulating models. DynamicPPL provides:

Information on how to use the DynamicPPL frontend to build Bayesian models can be found on the Turing website. Tutorials explaining how to use the backend can be found alongside the documentation. More information can be found in our paper DynamicPPL: Stan-like Speed for Dynamic Probabilistic Models.

Do you want to contribute?

If you feel you have some relevant skills and are interested in contributing, please get in touch! You can find us in the #turing channel on the Julia Slack or Discourse. If you're having any problems, please open a Github issue, even if the problem seems small (like help figuring out an error message). Every issue you open helps us improve the library!

Contributor's Guide

This project follows the ColPrac: Contributor's Guide on Collaborative Practices for Community Packages, apart from the following slight variation:

For instance, suppose we are currently on version 0.13.5.

Merge Queue

This project uses a merge queue for merging PRs. In this way, merge skew / semantic merge conflicts are prevented by testing the exact integration of pull requests before merging them.

When a PR is good enough for merging and has been approved by at least one reviewer, instead of merging immediately, it is added to the merge queue. If the CI tests pass, including downstream tests of Turing, the PR is merged into the main branch.