Before the Release

Send mail to jeuclid-devel, asking for potential release, count votes


Release day:

<!-- currently none
1. manually edit all pom.xml and remove snapshot dependencies.
You may have to commit these changes
mvn -Dmessage="Disabled snapshots in preparation for release" scm:checkin
-->

2. Test with maven:

mvn -DdryRun=true release:prepare
(check if that works, and resolve any issues before going ahead)
mvn release:clean

mvn install

3. Actually prepare release:

mvn release:prepare

fails half-way through due to missing dependencies, fix with
mvn install
mvn release:prepare -Dresume

if you get a mercurial commit error:
- edit release.properties, set completedPhase to scm-commit-release
- resume
mvn release:prepare -Dresume

Then the same again, this time to scm-commit-development

4. Perform the release

Ensure that you have a shell at sourceforge:
/usr/bin/ssh -T maxberger,jeuclid@shell.sourceforge.net create
(use your user name)

mvn release:perform -DgenerateReleasePoms=true
(checks out the project into target/checkout)

WILL FAIL after uploading jeuclid-parent, but that's ok!

clean up after release:

mvn release:clean

5. Manually build, install locally

cd target/checkout
mvn install

6. Deploy to m2-release (which is automatically synced to ibiblio)

disable all modules except -mathviewer, -core, -core16 -cli -swt (use only comments, do not delete lines!) currently: fop, jeuclid, minimal, testsuite

(edit pom.xml in target / checkout)

mvn deploy

7. Re-enable distribution plugins (that where disabled in 1: none)
Also, re-enable all modules ( still in target / checkout )

hg revert pom.xml

build the real release packages:

mvn package

build source packages:
mvn assembly:assembly -Ddescriptor=src/assemble/source.xml 
(TODO: Maybe also in support/ )

upload to sf:

VERSION=3.1.2  #replace with version
USER=maxberger   #replace with your sf id
cd jeuclid/target
rsync -avP -e ssh jeuclid-$VERSION-distribution.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
cd ../../jeuclid-mathviewer/target
rsync -avP -e ssh jeuclid-mathviewer-$VERSION-osx.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
rsync -avP -e ssh jeuclid-mathviewer-$VERSION-win32.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
cd ../../jeuclid-minimal/target
rsync -avP -e ssh  jeuclid-minimal-$VERSION-distribution.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
cd ../../jeuclid-fop/target
rsync -avP -e ssh jeuclid-fop-$VERSION-distribution.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
cd ../../target/
rsync -avP -e ssh jeuclid-parent-$VERSION-src.zip ${USER},jeuclid@frs.sourceforge.net:/home/frs/project/j/je/jeuclid/3.1.x/${VERSION}/
cd ..

Log into SF website and use files. ( release )

Write News on SF site

8. Update website

go back to main SVN, 
cd ../..
cd src/site

edit docbook/index.xml

cd ../..

9. update src/changes/changes.xml
<!--
10. Undo changed in pom.xmls (re-enable plugins from step 1)
-->

<!--
11. Deploy website
mvn install && mvn site && mvn site-deploy
(is done automatically at night)
-->

12. commit changes
mvn -Dmessage="Updated file after release" scm:checkin

13. Send email to jeuclid-users and jeuclid-devel, and optionally to www-math@w3.org




