Skip to content

Release process memo

Andrew Hankinson edited this page Nov 28, 2022 · 9 revisions

Merge develop into master

Update some files

Files to correct:

  • CHANGELOG.md - add release date
  • Verovio.podspec - update the version
  • bindings/iOS/all.h - recompile the VerovioFramework from xcode to make sure all headers are up-to-date
  • bindings/java/pom.xml - update version
  • codemeta.json - update version and date
  • emscripten/npm/package.json - update version
  • include/vrvdef.h - update version

Commit and build

Commit the master branch and push to the verovio repository.

Build Verovio from xcode in order to generate the release commit value via the git_commit.h script.

Build the JavaScript toolkit locally

From the ./emscripten directory, run (with the appropriate VERSION):

version="VERSION"
./buildToolkit -c -H -M -v $version
./buildToolkit -c -H -l -M -v $version
./buildToolkit -c -w -M -v $version
./buildToolkit -c -H -w -M -v $version
./buildNpmPackage

Copy the files to the verovio.org repository in:

  • ./javascript/VERSION/
  • ./javascript/latest

Update gh-pages

Update test-suite loaders and comparison page in:

  • _includes/test-version.html (defaultOptions and loadExample)
  • comparison.xhtml
  • add previous book pdf version to book-archive (not for patch releases)

Commit and push to verovio.org repository.

Create the release on GH

Copy the changelog and add the *.zip files

Truncate history of verovio.org (optional)

Find the previous the SHA_TO_TRUNCATE_TO of the previous release, then do

sha=SHA_TO_TRUNCATE_TO
git checkout --orphan temp $sha
git commit -m "Truncate history to version "
git rebase --onto temp $sha gh-pages
# Check with 
git status

If everything is fine, do

git push -f

Publish NPM

npm publish in ./emscripten/npm

Publish PyPi builds

The ARTIFACT number should be retrieved from https://github.com/rism-digital/verovio/actions/runs/id

artifact="ARTIFACT"
python3 get-pypi-artifacts.py $artifact
cd $artifact-wheels
twine upload *

Delete previous development versions in https://test.pypi.org/manage/project/verovio/releases/

Update Homebrew Formula

Run:

brew bump-formula-pr verovio --url="https://github.com/rism-digital/verovio/archive/refs/tags/version-{$version-number}.tar.gz"

Where {$version-number} should be replaced with the version of the release, e.g., 3.13.0. This should open a PR on the homebrew GH page.

NB: As of 28 Nov. 2022 this is untested. The instructions should be updated if necessary and this note removed on the next release.

Update verovio-doxygen:release

Merge verovio-doxygen:develop into verovio-doxygen:release

Tag LibMEI repo

Tag verovio-libmei:develop with the release version

Merge verovio-libmei:develop into verovio-libmei:master

Update book

Merge develop into master.

Change version in _config.yml.

Regenerate the content and push to the verovio-reference-book repository.

# install verovio with
python3 -m pip install verovio
# update options, methods, and mei-support with
python3 scripts/generate-methods.py release  
python3 scripts/generate-options.py
python3 scripts/generate-mei-support.py release
# uninstall verovio with
python3 -m pip uninstall verovio

Start next development

Files to correct:

  • CHANGELOG.md - add release date
  • Verovio.podspec - upcoming version
  • bindings/java/pom.xml - upcoming version
  • codemeta.json - upcoming version and date
  • include/vrvdef.h - upcoming version
  • bindings/python/.pypi-version

Update branches

develop-tab
develop-mensural
develop-pypi