#summary Commands to produce a new release.

This is not a script. It is intended to be performed manually to notice errors and be aware of what is happening.

Make sure you are using JDK 6.

Tag version

{{{
VERSION=0.90

cd pre-existing-plexi/
git checkout origin/master # This is the commit we are going to tag
git tag -a v$VERSION -m "Version $VERSION"
git push --tags
}}}

Build.

{{{
cd ~
git clone https://code.google.com/p/plexi/
cd plexi
git checkout v$VERSION
ant -Dadaptorlib.suffix=-$VERSION dist
}}}

Extract out for publication
{{{
cd dist
unzip adaptor-$VERSION-bin.zip adaptor-$VERSION-docs.zip
}}}

Update online documentation.
{{{
cd ~
git clone https://code.google.com/p/plexi.documentation/
cd plexi.documentation
rm -r *
mkdir javadoc && cd javadoc
unzip ~/plexi/dist/adaptor-$VERSION-docs.zip
git add -A
git commit -m "Update for version $VERSION"
git tag -a v$VERSION -m "Version $VERSION"
git push --tags origin master

# Update "External links" to point to new documentation.
# Update main page to point to new release.
}}}


To create release branches:
{{{
BRANCH=v4.0.x

# Make sure local code is up-to-date
git checkout master
git pull

# Create branch
git checkout -b $BRANCH
# Push branch for others to see
git push -u origin $BRANCH

#### In other local clones (optional) ####
# Get new branch
git fetch
# Create a local branch that pulls/pushes to origin/$BRANCH
git branch $BRANCH origin/$BRANCH
}}}

To release an adaptor:

{{{
VERSION=0.90

# Tag version.
cd pre-existing-plexi.repo/
git checkout origin/master # This is the commit we are going to tag
git tag -a v$VERSION -m "Version $VERSION"
git push --tags

# Get adaptor library for packaging.
cd plexi/dist
unzip adaptor-$VERSION-bin.zip adaptor-$VERSION-withlib.jar

# Build.
cd ~
git clone https://code.google.com/p/plexi.repo/
cd plexi.repo
git checkout v$VERSION
cp ../plexi/dist/adaptor-$VERSION-withlib.jar lib/
ant -Dadaptor.suffix=-$VERSION -Dadaptor.jar=lib/adaptor-$VERSION-withlib.jar dist
# Test and upload dist/ files. Mark new files featured, remove featured from old files.
}}}