-
Notifications
You must be signed in to change notification settings - Fork 388
Release
- tests libraries using the
make checktarget at root level. - be sure to merge the latest version of the Faust libraries. Check this page to possibly update libraries in several additional projects
- in the faustdoc project, update and regenerate the
faust-quick-reference.pdffile, then copy it Faustdocumentationfolder and in FaustLive - regenerate the Faust Compiler Options page using the
make optionstarget in this makefile of the faustdoc project (remove theoptions.mdfile to force regeneration) - regenerate the faust2[...] Tools page using the
make toolstarget in this makefile of the faustdoc project (remove themkdocs/docs/manual/tools.mdfile to force regeneration) - regenerate the examples pages using the
make examplestarget in this makefile of the faustdoc project
- be sure to have compiled and installed the tools with
make benchmark && sudo make devinstall - be sure to run Box/Signal API tests
- be sure to test tests/llvm-tests and tests/interp-tests
- test all DSP samples in tests/compile-tests with
make allandmake release
- we try to release Faust and FaustLive together at the same time, to keep version coherency in the compilation chain
- all install and changelog file (for FaustLive and faustgen~) have to be checked for version number coherency before creating the binary packages
- check the faustgen~ How to compile section, in particular the version numbering section.
- WARNING: be sure to use a fresh clone of the release to create the macOS packages!
- on macOS, use packaging targets in
faust/build, likemake packageand/ormake release. Check withotool -Lthat binaries (likefaust,dynamic-faust,faustgen~...) do not have local dependencies. - on Windows (using Parallels VM) in
faust/build, runMakeRelease.bat win64(creating thewin64folder if not already existing). Be sure to synchronise the submodules (using "Submodule update" when synchronising with Tortoise Git).
A release is prepared from the master-dev branch. A release candidate branch is started:
git checkout master-devgit checkout -b release-2.27.1git push --set-upstream origin release-2.27.1
Do some release fix commits... (that is commits that need to be part of the final published version). Create a tag (like 2.27.1-rc1) each time needed, and use the 2.27.1 tag for the final version. At some point the release can be done by merging the release candidate branch back in the master branch:
git checkout mastergit merge --no-ff release-2.27.1
And pushed on the public repository:
git push
And also on master-dev:
git checkout master-devgit merge --no-ff release-2.27.1
Then the release candidate branch can be deleted locally:
git branch -d release-2.27.1
And on the public repository:
git push origin --delete release-2.27.1
-
the FAUSTGEN_VERSION variable has to be changed in libfaust.yml file.
-
the release is built using the libfaust GitHub action. It uses precompiled LLVM and libsndfile binaries, compiles everything, creates the packages, and creates a draft release.
-
associating a tag with the draft release activates it (as a prerelease). Be sure to do this association at the right time!
- the release changelog has three new/deprecated/fix sections filled using the GIT commit history
- the release changelog should have a special section describing the libraries