Creating an OJ release version

From OpenJUMP Wiki
Jump to: navigation, search

New Build/Release Procedure

The new build and release procedure uses maven.

ATTENTION:
Always run maven from the root of your checked out svn folder. Meaning chdir into it first and make sure it is your current working dir.

Maven profiles

Command line to build and package OpenJUMP with maven is

 mvn package -P <profile>,<profile>,...

where profile is at least one of the following:

snapshot
packages a snapshot of the basic edition core and plus (plus extensions from lib/plus)
release
builds of core and plus targeted for release, which can be named via
-D version.number=X.X.X -D version.release=release 
they mainly differ from snapshots because they
- do not contain source code
- do not expose language files in language/ folder
example results:
target/OpenJUMP-20120423-r2834-CORE.zip
target/OpenJUMP-20120423-r2834-PLUS.zip

the following profiles can be added to build additional files

portable
builds portable zip files, one per edition. takes care of setting executable bits and recompresses jar files.
example results:
target/recompress/OpenJUMP-Portable-20120423-r2834-CORE.zip
target/recompress/OpenJUMP-Portable-20120423-r2834-PLUS.zip
installer (needs portable)
builds multi platform executable izpack installers (*.jar,*.exe) for both core and plus from the portable packaging
example result:
target/izpack/OpenJUMP-Installer-20120423-r2834-CORE.jar
target/izpack/OpenJUMP-Installer-20120423-r2834-CORE.exe
target/izpack/OpenJUMP-Installer-20120423-r2834-PLUS.jar
target/izpack/OpenJUMP-Installer-20120423-r2834-PLUS.exe
srczip
a zip file containing the source files of the build
example result:
target/OpenJUMP-20120425-r2834-src.zip
javadoc
build java doc html files for the current source
example result:
target/apidocs/

Build a release example

The command line to release a new version of OpenJUMP is

mvn package -P release[,portable[,installer]][,srczip][,javadoc] -D version.number=X.X.X -D version.release=release
  • for releases you might want to give a version.number (default=unknown) and a version.release (default=release)

example

cd <svn-checkout-folder>/
mvn package -P release -D version.number=1.5.1

The release step by step list

  1. Check etc/readme.txt (new components, licenses, contributors ...?)
    1. update and commit.
  2. summarize the changes to the previous version in Changes.txt, based on the Changelog file (copy/sorting out), commit to trunk
  3. add svn tag
  4. build release files with maven as outlined above
  5. test startup on all supported platform (if possible)
  6. update release notes (sf.net files readme.txt)
  7. upload the files to sourceforge's FRS
    1. release files
    2. readme.txt (sf.net files version)
  8. assign default download button per platform under file info (i)
  9. update Download links
    1. on Wiki front page
    2. on Download wiki page
    3. on http://openjump.org website
  10. announce release
    1. on sf.net wiki frontpage news
    2. on the devel/user mailing lists

Old release process

  • update the readme.txt
  • summarize the changes to the previous version, based on the change log file (copy/sorting out)
  • compile everything with the Ant script (check the java version to compile against)
  • add the license, openjump.exe, and readme files (if not already included)
  • so the platform independent zip & source release may be ready after copying the lic files into the zip (but best is to compare the zip content of an older release with the just created version)
  • create a win-installer using Nullsoft NSIS (maybe with a pointer to download java 1.6) and include before-hand the ecw and mrsid libs into this edition (see also the notes on the svn for the past releases: e.g. for OJ 1.3.1)
  • create another zip/release version that includes the sextante tools, postgis and print-plugin; based on the platform independent zip
  • write the release notes
  • upload the files to sourceforge
  • make an announcement on slashgeo & our wiki & our sourceforge new section & change our webpage/links
  • finally, updating of the documentation on the wiki on the new functions