-
Notifications
You must be signed in to change notification settings - Fork 81
Preparing A Release
These notes are primarily intended for reference by the PRISM development team when building and distributing public releases. But, if you are developing your own extension of PRISM and want to package up releases of it, then the sections Building a source distribution and Building a binary distribution may be helpful.
1. Final checks/changes to code
- Get latest version:
git pull - Make sure all commits are documented in
CHANGELOG.txt - Add version number and release date to
CHANGELOG.txt - Make sure
prism -helpis up-to-date with all commits - Set new version number in
prism/Version.java - Commit/push
2. Update manual
- Document changes or new features (on local copy)
- Set version number on Main/Welcome and Main/AllOnOnePage
- Download local copy (
make doc) and commit/push (git add ../manual/ && git commit -m 'Update manual.' && git push). NB: ChangePRISM_MANUAL_WEBSITEin theMakefileto download from the local copy, but doing it from the live one seems to work slightly better, even if the new manual goes live slightly too early.
A source distribution is built from a local git checkout.
From the prism directory, where PRISM is usually compiled, run:
make release_source
This assembles all the files needed into, for example, release/prism-4.8-src.tar.gz. This is done by taking an archive of the local master branch on git. You can change the branch if you wish, e.g.:
make release_source BRANCH=HEAD
make release_source BRANCH=newfeature
By default, the version number (4.5 above) is automatically extracted from prism/Version.java, but can be overridden if required:
make release_source VERSION=4.8.1
make release_source BRANCH=newfeature VERSION=newfeature
A binary distribution is built from a local copy of the source,
either an unzipped source release or a local git checkout.
From the prism directory, where PRISM is usually, compiled, run:
make clean_all & make
make release
This makes sure that PRISM is compiled afresh, builds prism.jar containing all the Java class files, and assembles all the files needed into, for example, release/prism-4.8-mac64-arm.tar.gz.
If building the release on a clean VM, the prism-install-* scripts install everything that is needed and compile the master branch.
So, for PRISM:
# On (Unbuntu) Linux:
wget https://raw.githubusercontent.com/prismmodelchecker/prism/master/prism/etc/scripts/prism-install-ubuntu
bash prism-install-ubuntu
# On Windows:
# In a Command Prompt:
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -Command "wget -Uri https://raw.githubusercontent.com/prismmodelchecker/prism/master/prism/etc/scripts/prism-install-windows.bat -Outfile prism-install-windows.bat"
cmd /K prism-install-windows.bat
# Then in Cygwin:
wget https://raw.githubusercontent.com/prismmodelchecker/prism/master/prism/etc/scripts/prism-install-cygwin
bash prism-install-cygwin
and then:
cd prism/prism && make release
Or for PRISM-games:
# On (Unbuntu) Linux:
wget https://raw.githubusercontent.com/prismmodelchecker/prism-games/master/prism/etc/scripts/prism-install-ubuntu
bash prism-install-ubuntu
and then:
cd prism-games/prism && make PPL_DIR=/usr/local/lib release
By default, the version number (4.5 above) is automatically extracted from prism/Version.java, but can be overridden if required:
make release VERSION=4.4.1
The platform name (osx64 above) is derived automatically from the current build. If you were building, for example, a 32-bit release from a 64-bit OS, you might use:
make release ARCH=
The build process works in the same way under Windows (compiling from within Cygwin), but this also requires NSIS to be installed (and makensis to be in your path).
- Push source/binary release files to the web site
- Update download page
- Upload new version of online manual (unison)
- Create a new GitHub release ("Tag version" is e.g.
v4.4; no need for "Release title" or description) - Set version number suffix in
prism/Version.javaback todev