Skip to content

Release Preparation

ariya edited this page Jan 6, 2013 · 2 revisions

Get the repository ready

Make sure the ChangeLog file is up to date.

Update the release number in src/consts.h and test/phantom-spec.js, e.g. "1.9.0" instead of "1.9.0 (development)".

Create a new release branch. Send an email to the mailing list for the heads up.

Make sure all examples run without problem and run all tests.

When it's a green light (there is no last-minute problem), tag the repo with the release number, e.g.

git tag -a 1.9.0 -m 'Version 1.9.0'

Web site

The site is hosted using GitHub pages. The contents are in the gh-pages branch.

Prepare the release notes, e.g. release-1.9.html.

Update the information on the download page (download.html) and build instructions (build.html).

Update the version number on the main index.html.

Packaging

Source

Create a source tarball/zip of the latest stable VERSION and place it in the download location.

To generate ZIP:

git archive --format=zip --prefix=phantomjs-VERSION/ origin/VERSION > phantomjs-VERSION-source.zip

To generate TAR.GZ

git archive --format=tar upstream/VERSION --prefix=phantomjs-VERSION/ | gzip --stdout > phantomjs-VERSION-source.tar.gz

Mac OS X

Make sure UPX is installed. It is used to compress the executable.

Run the script:

deploy/build-and-package.sh

Upload both the package (-macosx.zip) and the symbols file (-macosx-symbols.tar.bz2) from the deploy directory.

Linux

Linux package needs to be created using a virtualized CentoS 5.8 (glibc 2.5, lowest common denominator).

Install Vagrant and make sure it is running properly.

Note: Vagrant will automatically download and install CentOS base box. This may take a lot of bandwidth.

For the 32-bit package, run:

vagrant up i686
vagrant halt i686

For the 64-bit package, run:

vagrant up x86_64
vagrant halt x86_64

Upload both the package and the symbols file from the deploy directory.

Windows

Build it based on the usual instructions.

Bundle it for deployment (copy paste following code into the command line window):

@rem Create deployment directoy and copy files into it
if exist %PHANTOMJSDEPLOYDIR% rd /s /q %PHANTOMJSDEPLOYDIR%
md %PHANTOMJSDEPLOYDIR%
xcopy %PHANTOMJSDIR%\bin\phantomjs.exe %PHANTOMJSDEPLOYDIR%
xcopy %PHANTOMJSDIR%\examples %PHANTOMJSDEPLOYDIR%\examples\
xcopy %PHANTOMJSDIR%\ChangeLog %PHANTOMJSDEPLOYDIR%
xcopy %PHANTOMJSDIR%\LICENSE.BSD %PHANTOMJSDEPLOYDIR%
xcopy %PHANTOMJSDIR%\third-party.txt %PHANTOMJSDEPLOYDIR%
xcopy %PHANTOMJSDIR%\README.md %PHANTOMJSDEPLOYDIR%

Pack phantomjs.exe with UPX:

upx %PHANTOMJSDEPLOYDIR%\phantomjs.exe

Zip the contents of %PHANTOMJSDEPLOYDIR%.