I’m planning on finishing work on “PyStan 3” in late May and early June. I’m writing this in order to let people know what I’m planning on doing (the plan, linked below, hasn’t changed) and to confirm there’s still agreement about the PyStan/RStan 3 API sketched out in User Interface Guidelines for Developers.
The following issue tracks the planned changes: PyStan 3 Must-Haves. Feel free to add suggestions there or in replies to this post.
Most of the changes are of interest to developers. The most important change, in my opinion, is the splitting of pystan into “frontend” (pystan) and “backend” (httpstan) packages. (The design is borrowed from Jupyter Notebook.) This will allow developers interested in improving the user experience to get their work done without worrying about what is happening in the world of C++. The new frontend package will be a pure-Python package (i.e., no C++/Cython code). This change will permit rapid development of new features (e.g., better experience in JupyterLab, further pandas integration, diagnostic tools, plotting) and make maintenance much easier.
For users, the biggest changes are (1) the new API and (2) a Python 3.6 requirement. Everything is spelled out in the PyStan 3 Must-Haves issue.