#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.

{{{
VERSION=0.90

# Tag version.
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
# Upload dist/ files. Mark new files featured, remove featured from old files.
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.
}}}