Monthly Math development meeting: 10/17/2019, 10 am EDT

Hey all,

The next Math meeting is Thursday, Oct 17, 2019, 10 am Eastern time. This will last no more than one hour; if we need more time, we will schedule additional time.

This meeting will be open to all those that currently contribute to the Math library or that would like to contribute to the Math library. If you’d like an invite to the Google Calendar event, please DM me with your Google handle. If you’d like to just have a copy of the event on your calendar, please use this link:

Direct Google Meet link:


  • this is a chance to collaborate and coordinate efforts. We’re expecting everyone to be kind and courteous. And patient. We have a team with diverse backgrounds.
  • impactful decisions will not be made at these meetings. That will continue to be done online on these forums. The meetings are a good time to discuss and get on the same page, but the decision making will be done online where we can include the opinions of others that can’t make the meeting.
  • important discussions that happen at the meeting will be communicated back online on these forums. If they don’t make it back here, it wasn’t important. No one will be penalized for not being present at a meeting.

If there’s anything you know you want to talk about, please post here. This is a good time to request help from others if there’s expertise that you need.

Meeting notes

@bbbales2, @syclik, @wds15, @csetraynor, @seantalts


  1. Next release on Friday, Oct 18; v3.0.0.
    • We discussed what was remaining to do for the release on Friday.
    • Code is frozen and we don’t foresee any code changes.
    • We came to an understanding about the versioning. We will go with v3.0.0 to follow with the rules of semantic versioning. Some of the reasoning:
      • The versioning is for the Math library, the users are for the C++ API.
      • With TBB, this releases a backwards incompatible change. All Math users must build and link TBB starting with this upcoming release; Math is no longer header-only.
      • The dependency also introduces a backwards incompatible change. If a Math user was to have licensed their package as GPLv2 and they build and distribute an executable, using v2.20 this would have been fine, but with this version this is not ok. The Math user must change their licensing.
      • Given that this is now backwards incompatible with v2.20, we’re going to follow semantic versioning rules and release v3.0.
  2. Remaining items to do for release:
    • Write up release notes. @stevebronder, I believe you are leading this effort. Can you make sure to highlight the two backwards incompatible changes?
    • Send release notes to @serban-nicusor on Friday. Nic, you won’t have to write release notes for Math because we would have already provided them for you.
    • @serban-nicusor will package it and release it.
    • We must update the Stan interface READMEs with warnings that the licensing requirements have changed with this version of Math. @wds15, can you lead this effort? We need to write something up for CmdStan, RStan, and PyStan at the very least.
  3. Parallel Design.
    @wds15 asked how to get this moving. We felt the best option is to close the existing PR on the design docs repo and reopen it. Now that TBB is in, we can focus on the design and we don’t need to start with a long thread.

Agenda items (please add more):

  • Next release (Friday, 10/18/2019).
    Status, stuff left to do before we release, who needs to do it.

forgot to cc people. Recent contributors, if you’re interested, please dial in:
@rok_cesnovar, @andrjohns, @stevebronder, @tadej, @wds15, @yizhang, @nhuurre

(@stevebronder: your script for pulling stuff out is awesome!)


Clarification on whether introduction of TBB was backwards incompatible. See “TBB and 2.21” thread.

Are either of these backwards incompatible?

  1. the requirement that a user must link something in. (We have been a header-only library with the exception of Sundials, which is optional. Now, anyone trying to use Math as a header-only library will not have that option.)
  2. the licensing dependencies that we have introduced are backwards incompatible with GPLv2 under the condition when it is distributed as a binary.
1 Like

No longer being a header-only library seems like a solid justification
for a major version bump.

If, say, boost made such a switch, I can certainly imagine a major
version increase.

1 Like

Sorry I missed this. Just curious, was there any conclusion on this topic?

Yes, this is a non backwards-compatible change for Math users. This leads us to move our version to 3. (If we were versioning across all the packages, we might argue that it doesn’t change the interfaces, but we’re not.)

I’ll type up my notes and post them here later. And please feel free to keep the questions / discussion going.

I updated the original post with the meeting notes. See: Monthly Math development meeting: 10/17/2019, 10 am EDT

Edit: never mind, there was some more discussion on the major verison number down near the end of this thread: TBB and 2.21

1 Like