SHTOOLS / SHTOOLS

SHTOOLS - Spherical Harmonic Tools

Home Page:https://shtools.github.io/SHTOOLS/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Release SHTOOLS 4.12.0

MarkWieczorek opened this issue · comments

Scheduled Date: 2024/03/18

Before release

Make all changes on the branch develop. Verify that the version numbers and other metadata are up to date in the following files:

  • Makefile : update shtools version number (for use with fortran man page documentation only; not required for maintenance releases x.x.>0)
  • docs/_data/sidebars/mydoc_sidebar.yml : update pyshtools version number for web documentation
  • docs/_data/sidebars/fortran_sidebar.yml : update shtools version number for web documentation
  • docs/pages/mydoc/release-notes-v4.md : update release notes
  • docs/pages/fortran/fortran-release-notes-v4.md : update release notes
  • requirements.txt : update version numbers of the python dependencies, if necessary
  • environment.yml : update version numbers of the conda environment, if necesseary
  • binder/environment.yml : update version number of pyshtools and other dependencies
  • fpm.toml : update shtools version number
  • AUTHORS.md, docs/pages/mydoc/contributors.md, docs/pages/fortran/fortran-contributors.md : Add new contributors, if necessary

Update the documentation files and man pages

  • cd docs; bundle update; cd .. : update the Gemfile for the jekyll web documentation
  • make remove-doc : this ensures that the correct version number will be written to the fortran man pages
  • make doc : make the fortran man pages, create markdown files from the python docstrings, and create web documentation.

Release

  • Commit all changes to the develop branch and then merge all changes to the master branch.
  • Go to GitHub Release, create a tag of the form vX.X, and draft a new release.
  • Update the master branch on your personal repo, along with the newly created tag, using git pull shtools master --tags, where shtools is the name of the remote repo on github.

Verify workflow execution

  • Creation and upload of a zipped archive to Zenodo
  • Creation and upload of static web site.
  • Upload of a source tarball as a release asset.
  • Upload of the source distribution to pypi.
  • Creation and upload of macOS and Linux binary wheels to pypi. If the workflow doesn't trigger, choose to run the github action on build-shtools.
  • Manually trigger Appveyor on the build-shtools repo to create and upload a windows wheel.

Update Homebrew

  • Verify that the homebrew bot updated the file shtools.rb in a pull request, and that this was merged. If this doesn't occur automatically, edit the file shtools.rb in the homebrew-core repo and make the following changes:
  • Change "url" to point to the new version (the link to the tar.gz archive can be found on the release page).
  • Update the sha256 hash of the tar.gz pypi upload by using shasum -a 256 filename.
  • Commit and push changes.

Update MacPorts

  • Update the MacPorts installation. If this doesn't happen automatically, editing the file science/shtools/Portfile in the macports-ports repo and change the following:
  • Change the version number in github.setup.
  • Update the sha256, rmd160 and file size of the release asset.
  • Commit and push changes.

Update conda-forge

  • Go to pyshtools-feedstock and check that the recipe/meta.yaml file has been updated and that an automatic pull request has been generated by the conda-forge bot.

Post release

  • Build a new Binder image by running one of the tutorials.
  • Advertise on Mastodon and Matrix.

The following are not working in this release:

  Did not find pkg-config by name 'pkg-config'
  Found pkg-config: NO
  Found CMake: C:\Program Files (x86)\CMake\bin\cmake.EXE (3.16.2)
  DEPRECATION: CMake support for versions <3.17 is deprecated since Meson 0.62.0.
  |
  |   However, Meson was only able to find CMake 3.16.2.
  |
  |   Support for all CMake versions below 3.17.0 will be removed once
  |   newer CMake versions are more widely adopted. If you encounter
  |   any errors please try upgrading CMake to a newer version first.
  WARNING: CMake Toolchain: Failed to determine CMake compilers state
  Run-time dependency openblas found: NO (tried pkgconfig)
  WARNING: CMake Toolchain: Failed to determine CMake compilers state
  Run-time dependency openblas found: NO (tried pkgconfig)
  WARNING: CMake Toolchain: Failed to determine CMake compilers state
  Run-time dependency blas found: NO
  ..\meson.build:15:9: ERROR: Dependency lookup for BLAS with method 'pkgconfig' failed: Pkg-config for machine host machine not found. Giving up.