Hi all,
the Stan 2.29 release is about a month away based on our release schedule. We had two patch releases for the 2.28 release, so the last release was actually on the 5th of November.
I am opening this thread as there are a few things we need to discuss before the release and this is also an opportunity for everyone to ask for any reviews that they have been waiting for too long. If you are planning on working on any new features that you would like to propose for 2.29, please let us know, if you haven’t already. We would like to avoid pre-release stress as much as possible.
Release date:
I would propose doing the freeze on the 17th of January (which is a Monday) and then doing the release the next Wednesday (the 26th of January) at the earliest. This means prolonging the freeze for 2-3 days compared to our usual schedule. This gives us a bit more time to do proper RC testing. This was a bit of an issue the last few times around it seems (see the number of patch releases).
We are working on a more rigorous performance testing procedure that we will run with the RC, to search for any performance regressions before the actual release.
Patch releases are fine, bugs happen, but there were cases in the last few releases where there were things that got discovered basically within a day or two after the official release.
If no one comes forward with a counterproposal until the new year, this will be the release schedule. Happy to discuss and fine-tune, as always!
Feature list:
In the Math/Stan/CmdStan repos, this last cycle was mostly focused on bug fixing and improving the development experience and CI improvements.
A similar story for Stanc3, where we addressed quite a few minor bugs, exposed a few missing signatures, improved the developer experience by bumping the OCaml version (this does not affect Stan users), improved our CI and testing, moved the docker image to dockerhub, improved documentation.
We also improved user-facing error messaging, revamped auto-formatting and the canonicalizer and started with the deprecation process.
Deprecation:
The next release will be the first where we will start more actively warning users on deprecated features and also providing an end date in the warning messages. With 2.29, using some language features will give out warnings that they will be removed after a year (so in release 2.32).
Some of the features that will be removed in 2.32:
- functions multiply_log, binomial_coefficient_log, cov_exp_quad, if_else, increment_log_prob, get_lp,
- _log, _cdf_log, _ccdf_log suffixes for distributions,
- used of distributions functions without the vertical bar after the first argument,
- the # comment sign and
<-
assignment - some stanc3 flags like allow_undefined (in favor of allow-undefined)
- the following keywords will not be allowed after 2.32:
array
,upper
,lower
,offset
,multiplier
- the old array syntax (int[], real[]) in favor of array[] int and array[] real
This last one will probably be the most notable one. Users will be able to automatically convert their models to using the new array syntax with stanc3. We are also working on a web interface to simplify updating to the new syntax. A work in progress on that can be found here. Eventually, this web app will probably be moved to the official Stan page (pending approval of other developers/SGB - official proposal for that is coming soon).
The old ODE functions are also marked for deprecation, but for the 3.0 release, which is still TBD and with no firm plans.
PR review request
I have two PRs open in CmdStan if anyone has time to take a look, I would appreciate it. Both of them are small bug fixes with minimal code changes: Fix #997: proper use of `std::setprecision` in `bin/diagnose` by rok-cesnovar · Pull Request #1067 · stan-dev/cmdstan · GitHub, Fix #1056 and #1013 by rok-cesnovar · Pull Request #1065 · stan-dev/cmdstan · GitHub
Please post below if you have any PRs waiting to be reviewed.
Thanks!