stan-dev / cmdstan

CmdStan, the command line interface to Stan
https://mc-stan.org/users/interfaces/cmdstan
BSD 3-Clause "New" or "Revised" License
210 stars 93 forks source link

Release 2.31 #1126

Closed rok-cesnovar closed 1 year ago

rok-cesnovar commented 1 year ago

Feature freeze (8th of November):

Release (~18th of November):

WardBrian commented 1 year ago

I saw @serban-nicusor-toptal made the RC tarballs (thanks Nic!) so I ran the CmdStanPy tests - all looks good https://github.com/stan-dev/cmdstanpy/actions/runs/3420089171/jobs/5694455810

rok-cesnovar commented 1 year ago

Running cmdstanr as well: https://github.com/stan-dev/cmdstanr/actions/runs/3422302336/jobs/5699544847

rok-cesnovar commented 1 year ago

I will prepare an RC post in the morning and then publish it on Discourse once you have a chance to check it @WardBrian. Does that sound good?

WardBrian commented 1 year ago

Yep, just ping me here or slack when you have a draft of the notes. Thanks!

rok-cesnovar commented 1 year ago

The RC highlights were posted on Discourse and linked to Twitter.

serban-nicusor-toptal commented 1 year ago

Good morning, do we have a draft of the release notes somewhere so I can include them today in the release?

rok-cesnovar commented 1 year ago

Sorry for the delay. Here you go:

Math:
 - Added the generalised hypergeometric function. (#2510)
 - Added var<Matrix> overloads for  `pow()`, `owens_t()`, `log_inv_logit` . (#2546, #2787, #2806)
 - Add tuple overload and cleanup code for promote_scalar. (#2706)
 - New gradient function allows evaluated gradient to be stored into an array, enabling memory reuse when stan/math called via a FFI. (#2743)
 - Added function for casting `double` and `std::vector<double>` types to `int` and `std::vector<int>` types(#2771)
 - Added `hypergeometric_2F1` function. (#2792)
 - Fix bug with vectorised `pow()` incorrectly forcing `Eigen::Matrix` return instead of `Eigen::Array`. (#2793)
 - Exposed the `hypergeometric_3F2` function and improved its numerical stability. (#2797)
 - Fixed incorrect return from `log_inv_logit_diff` with positive infinity first argument. (#2798)
 - Added reverse-mode specializations for `fft2` and `inv_fft2`. (#2800)
 - Removed the cause of the out-of-order initializer compiler warning.(#2808)
 - Vectorized `atan2()`.(#2812)
 - Added `complex_schur_decompose_t` and `complex_schur_decompose_u`.(#2814)
 - Vectroized the `conj()` function. (#2817)
 - Stan's algebraic solvers now support variadic arguments. (#2820)
 - Fixed forward mode autodiff for FFT functions. (#2821)
 - Added `log_sum_exp_signed` function for computing `log_sum_exp` while respecting signs of arguments and tracking the sign of the result. (#2829)
 - `stan_print` can now print std::tuple types. (#2835)
 - `stan::math::minus` can now accept `std::vector`. (#2840)

Stan:
 - RapidJSON library is now a part of Stan (previously part of CmdStan) (#3143)
 - Added a #define flag flag to enable nested autodiff in model_base class (#3144)
 - Set up the service function so interfaces can offer Laplace approximation. (#3148)

CmdStan:
 - Allowed standalone generate_quantities using non-HMC fit (#1106)
 - Added method for calculating log_prob and its gradients (#1107, #1108)

 Stanc3:
 - Improved the error message for bad multiple declarations. (#1239)
- Fixed a bug where using a C++ reserved word as a name in certain situations would prevent compilation. (#1243)
 - Build binaries in parallel on Jenkins. (#1244)
 - Added functions `complex_schur_decompose_t()` and `complex_schur_decompose_u()` implementing the complex-valued Schur decomposition for matrices.(#1247)
 - Vectorized the `conj` function for complex types.(#1253)
 - CI change, build backwards-compatible Mac executables on flatiron mac. (#1255)
 - Improved the error generated when a function is re-declared, or when a function is not given a definition. (#1256)
 - `print` and `reject` will now be listed as functions in `stanc --info`s output. (#1257)
 - Added quantile functions (inverse-CDFs) `std_normal_qf` and `std_normal_log_qf`. `std_normal_qf` is a synonym for `inv_Phi`, and `std_normal_log_qf` is the same but with the input on the log-scale.(#1258)
 - Fix using `reject()` with container types. (#1261)
 - Vectorized sampling statements can now be used with the truncation syntax `T[ , ]`(#1263)
 - Functions which return integer types are considered as "data" for purposes of data-only arguments.(#1265)
 - The negation operator `-` can now accept arrays, e.g. `array[N] int foo = {...}; print(-foo);`(#1266)
 - Exposes algebraic functions with a variadic arguments, using the following four functions: `solve_powell`, `solve_powell_tol`, `solve_newton` and `solve_newton_tol`.  Relevant changes to Stan-math are already merged.(#1268)
serban-nicusor-toptal commented 1 year ago

If there are no objections, I will start soon ( ~30 minutes ) with the release

rok-cesnovar commented 1 year ago

Go for it!

serban-nicusor-toptal commented 1 year ago

I generated docs in the meanwhile so you guys can review it if it's fine. https://github.com/stan-dev/docs/pull/598 https://github.com/stan-dev/stan-dev.github.io/pull/176

serban-nicusor-toptal commented 1 year ago

The release is now mostly done.

We need to review and merge docs, after that, all links in the release notes will start working. I also created PRs to update develop with the release notes in the release branch and after this we will do develop -> master PRs. https://github.com/stan-dev/math/pull/2850 https://github.com/stan-dev/stan/pull/3155 cmdstan is not needed, only change is the stan reference which will be anyway updated by jenkins when stan develop updates. Conda binaries are still building, will add them shortly. ( done )

rok-cesnovar commented 1 year ago

Thanks! Running tests with cmdstanr now. Then the last point is making the blog post & link to it in various places. I hope to have it up today.

rok-cesnovar commented 1 year ago

The blog post is now live https://blog.mc-stan.org/2022/11/23/release-of-cmdstan-2-31/. I apologize for the delay.

With that, I am going to close this issue. Thanks to Nic and Brian for all the help, as always!

rok-cesnovar commented 1 year ago

For the record, the non-x86 tarballs were not named properly. They were still using the old release versions. Replaced them today. Need to think of a way to automatically test that.