Release SHTOOLS 4.12.0
MarkWieczorek opened this issue · comments
markwieczorek commented
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 themaster
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 fileshtools.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.
markwieczorek commented
The following are not working in this release:
- Apple silicon wheels for use with pip install. It is not clear to me if multibuild is capable of creating AMR64 wheels or not. See https://github.com/SHTOOLS/build-shtools/blob/master/.github/workflows/build_wheels.yml and https://github.com/multi-build/multibuild.
- Wheels for windows are not being build by appveyor. This appears to be a case where either pkg-config is not installed correctly, or BLAS is not installed properly. I don't know windows and don't know how to debug this. See https://github.com/SHTOOLS/build-shtools/blob/master/appveyor.yml and https://ci.appveyor.com/project/MarkWieczorek/build-shtools/builds/49428848/job/vlycastrlmlauaw4
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.
- None of the conda packages are being build for a variety of reasons that appear to be mostly related to most finding blas/lapack: see https://dev.azure.com/conda-forge/feedstock-builds/_build/results?buildId=898240&view=logs&j=e5cdccbf-4751-5a24-7406-185c9d30d021&t=0c979b57-e97b-5e0a-363d-f964823a2ab0