Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2.29.0 checklist #1073

Closed
26 tasks done
rok-cesnovar opened this issue Jan 14, 2022 · 39 comments
Closed
26 tasks done

Release 2.29.0 checklist #1073

rok-cesnovar opened this issue Jan 14, 2022 · 39 comments

Comments

@rok-cesnovar
Copy link
Member

rok-cesnovar commented Jan 14, 2022

Feature freeze (Februay 1st):

  • Ensure all expiring language deprecations have been removed or given new removal dates.
  • Create and merge version updating pull requests in Math/Stan/Cmdstan. These should be the last PRs accepted before the freeze.
  • Create Math/Stan RC releases.
  • Create Stanc3 RC binary.
  • Create a release candidate tarball for x86. Make sure RC tarballs include stanc3 binaries.
  • Check external links in docs (i.e. TBB docs link)
  • Create a release candidate feature/bugfix list (major features/bugfixes that need testing, link to new docs in Github)
  • Run CmdStanR tests with the RC tarball.
  • Run CmdStanPy tests with the RC tarball.
  • Make a Discourse RC post.
  • Post a tweet with a link to the Discourse RC post.

Release (February 14th - subject to change):

  • Create the Math Release notes.
  • Create the Stan Release notes.
  • Create the Cmdstan Release notes.
  • Create the Stanc3 Release notes, include new deprecations and removals.
  • Rebuild and publish docs for the new version.
  • Check that docs for the previous release links correctly to the newest docs.
  • Create the Math release.
  • Create the Stan release.
  • Create the Stanc3 release.
  • Create x86 CmdStan tarballs (check version, check that the extracted folder is in the cmdstan-version format).
  • Create non-x86 CmdStan tarballs.
  • Run CmdStanR tests with the release tarball.
  • Make a Stan blog release announcement post (thank the sponsors and all contributors, mention new devs).
  • Link to the blog post in a Discourse thread.
  • Make a Twitter announcement.
@rok-cesnovar
Copy link
Member Author

So if I am not missing anything, the only thing that we want to get into 2.29 and has not been merged yet is stan-dev/stan#3095 by @SteveBronder, which squashes an unwanted behaviour we do not want to support going forward (it was only allowed for a version or 2) or have users assume its expected behaviour.

Anything else I missed?

@rok-cesnovar
Copy link
Member Author

Ensure all expiring language deprecations have been removed or given new removal dates.

@WardBrian I guess for this release we can check this one since its the first time we are doing this?

Create and merge version updating pull requests in Math/Stan/Cmdstan. These should be the last PRs accepted before the freeze.

@serban-nicusor-toptal we can start doing this now.

@WardBrian
Copy link
Member

@rok-cesnovar yes correct. 2.32 will be the first time that’s required

@rok-cesnovar
Copy link
Member Author

rok-cesnovar commented Jan 31, 2022

Per-PR release notes are now here: https://gist.github.com/rok-cesnovar/b7c2dbec22fc7cf88e102f924133a557#file-2_29_release_notes-txt

The Math/Stan/CmdStan are pretty straightforward as there was not much action. I would appreciate someone looking at the stanc3 ones (no hurry - we dont need them for the RC, just comment on the gist with edits/fixes).

Version-updating PRs are now all approved, waiting for Math tests to pass then we can do the RC.

@serban-nicusor-toptal
Copy link
Contributor

serban-nicusor-toptal commented Jan 31, 2022

Release candidates (stanc3, math, stan, cmdstan), stanc3 binaries, the tarballs for x86 and non-x86 are now ready.
CmdStanR tests running.

@rok-cesnovar
Copy link
Member Author

Thanks @serban-nicusor-toptal.

I checked the external docs and am working on the list of features we will highlight in the RC post. @WardBrian can you run CmdStanPy tests whenever you have the chance?

@serban-nicusor-toptal
Copy link
Contributor

CmdStanR failed on windows tests in GH actions

@rok-cesnovar
Copy link
Member Author

Ah, that is a CI issue, will fix shortly.

@serban-nicusor-toptal
Copy link
Contributor

Good to know, thanks for the quick answer. Please let me know if there's anything else I can help with.

@WardBrian
Copy link
Member

I've got some test failures in cmdstanpy but I think they're because we were assuming #1054 would be merged in this version. Investigating now

@WardBrian
Copy link
Member

Uncovered some bugs in cmdstanpy, but after resolving those tests are green https://github.com/stan-dev/cmdstanpy/runs/5011314575

@rok-cesnovar
Copy link
Member Author

Thanks. RC Annoucement will be up tomorrow.

@WardBrian
Copy link
Member

Will we be pushing the release until the 14th?

@rok-cesnovar
Copy link
Member Author

Yeah, fixed the dates in the top post. Thanks.

@rok-cesnovar
Copy link
Member Author

The RC annoucement is live. Thanks @WardBrian for the help. Also posted the link on Twitter. Hopefully, we get some testers. If all goes well the release will happen on Valentine's day :)

I plan on running some performance tests in a couple of days.

@WardBrian
Copy link
Member

@rok-cesnovar re: the 'check external links' bullet point, I found this very helpful tool: https://github.com/tcort/markdown-link-check

@rok-cesnovar
Copy link
Member Author

Nice! added to the checklist.

@WardBrian
Copy link
Member

It produces some false alarms but did catch a few broken links I'm going to fix right now

@rok-cesnovar
Copy link
Member Author

rok-cesnovar commented Feb 2, 2022

@serban-nicusor-toptal when you have the chance, please make an RC2 release for stanc3 and cmdstan. Thanks!

@serban-nicusor-toptal
Copy link
Contributor

stanc3 v2.29.0-rc2 and cmdstan v2.29.0-rc2 are now up!

@WardBrian
Copy link
Member

#1076 seems both simple enough and important enough that we should get it in before release, right?

@WardBrian
Copy link
Member

There are a few docs issues I think would be great to address before the release (not necessarily blocking, though):

stan-dev/docs#487

stan-dev/docs#482

stan-dev/docs#466

@rok-cesnovar
Copy link
Member Author

I am working on stan-dev/docs#466 Should have something ready over the weekend and for review on Monday.

@rok-cesnovar
Copy link
Member Author

I fell into a different rabbit hole so I am not going to be able to close stan-dev/docs#466 before the release but will work on finishing that this week. Its not something we need to reference in release notes so not critical ATM.

@serban-nicusor-toptal There were no additional reports for the release candidate so we can go ahead and start the release process. For the release notes use the notes we used for the RC: https://gist.github.com/rok-cesnovar/b7c2dbec22fc7cf88e102f924133a557

@WardBrian Do we wait for stan-dev/docs#455 before we rebuild the docs? Or should we just go ahead and do it?

@WardBrian
Copy link
Member

No need to wait imo, will just be in the next release

@serban-nicusor-toptal
Copy link
Contributor

I'm starting now with the release, will post updates here.

@rok-cesnovar
Copy link
Member Author

Hold off for stanc3 for a few minutes.

@serban-nicusor-toptal
Copy link
Contributor

We've released stanc3 again after a quick patch before the release and we're now waiting for the stanc3 binaries build so I can add them to cmdstan and release it too. ETA ~1h
Thank @rok-cesnovar for building the docs, PRs for docs and stan-dev.github.io are ready for review and merge.

@serban-nicusor-toptal
Copy link
Contributor

The release is now officially out!

@rok-cesnovar
Copy link
Member Author

Great!

Running the tests once again: https://github.com/stan-dev/cmdstanr/actions/runs/1817789523

So only the annoucements are left. Will post those tomorrow.

@WardBrian
Copy link
Member

@serban-nicusor-toptal If I go ahead and build collab-cmdstan-2.29 can I upload that tarball directly to the release?

@serban-nicusor-toptal
Copy link
Contributor

Yes @WardBrian
If we need it every release I can add building collab to the release process so we can do it every time just need an example on how you're generating it.

@WardBrian
Copy link
Member

The process is unfortunately very manual - see this forum post https://discourse.mc-stan.org/t/planning-the-2-29-release/25711/26

The collab version is essentially just the linux targz but pre-compiled to run on the collab instances. The last time we had one was 2.23, so I'm not sure how in-demand they are

@serban-nicusor-toptal
Copy link
Contributor

Just checked manuals and docs, they're looking great and links are working fine.
Thanks a lot, @rok-cesnovar and @WardBrian for helping out!


I took a look at the collab instructions Mitzi wrote, it's something I don't mind doing every release if there's anyone there using cmdstanpy on collab. Will try it now to see how it goes and I'll start doing it from next release if that's okay with you @WardBrian

@WardBrian
Copy link
Member

@serban-nicusor-toptal I think it might be worth doing. I've done it for this release.

I'm not sure how many collab users we have, or if conda would be a viable alternative for them. @mitzimorris - do you know if Collab can install conda packages?

@WardBrian
Copy link
Member

colab-cmdstan-2.23.0.tar.gz was downloaded 2253 times over the past 2 years. So as a percentage it's quite small, but it is certainly getting used

@WardBrian
Copy link
Member

Running cmdstanpy tests again for good measure: https://github.com/stan-dev/cmdstanpy/runs/5190682001

Thanks @rok-cesnovar @serban-nicusor-toptal

@serban-nicusor-toptal
Copy link
Contributor

That's more than enough to make it worth it!

I gave the script a try and made a small, quick version for myself to use from now on, it's using transfer.sh to upload the archive so we can skip the GCloud step.

#!/bin/bash

CURRENT_VERSION=2.29.0

# cleanup existing cmdstan installs, as needed
!if [ -e $HOME/.cmdstan ] ; then echo "cleanup"; rm -rf $HOME/.cmdstan; fi

# install cmdstanpy
!pip install --upgrade cmdstanpy
from cmdstanpy import install_cmdstan
install_cmdstan()

# Create tgz
!ls -a $HOME/.cmdstan        # expecting default cmdstan install here
!cd $HOME/.cmdstan; tar -cf - cmdstan-$CURRENT_VERSION | gzip > $HOME/cmdstan-$CURRENT_VERSION.tgz
!tar -tzf $HOME/cmdstan-$CURRENT_VERSION.tgz | head

# Use transfer.sh to upload our achive for easy retrieval
!curl --upload-file /root/cmdstan-$CURRENT_VERSION.tgz https://transfer.sh/cmdstan-$CURRENT_VERSION.tgz

@rok-cesnovar
Copy link
Member Author

Announcements posted.

Thanks to everyone that helped out, especially Brian and Nic! On to the next one :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants