#summary Commands to produce a new release.

= Commands to produce new releases of library and adaptors =

* Note: These command sequences are not scripts.

* Note: These command sequences are intended to be performed manually while being aware of what is happening and noticing errors and adjusting appropriately.*

* Note: Ensure you're using appropriate versions of JDK.

<wiki:toc max_depth="3" />

=== Tag version ===
{{{
VERSION=0.90

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

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

=== Extract documentation zip from full distribution zip ===
{{{
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.
}}}


=== Create release branch of library ===
{{{
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
}}}

=== Build RC of adaptor ===
{{{
VERSION=0.90

# Tag version

# Have adaptor library
# eg: cd ~/plexi/dist
# unzip adaptor-$VERSION-bin.zip adaptor-$VERSION-withlib.jar

# Build adaptor from fresh clone
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

# Give to QA
}}}


<wiki:comment>
Scratch pad
{{{
git checkout v4.0.x
git merge $sha1beginning # for fstfwd
git cherrypick master # commit to add
git cherry v4.0.x # information to cmp checkout to this one
    # '+' we have it; target doesn't
    # '-' we both have it
git push v4.0.x:4.0.x # refspec example
git checkout -b mybranchname
git merge
git branch -D mybranch
git checkout master^^^^^
</wiki:comment>