Difference between revisions of "Creating an OJ release version"

From OpenJUMP Wiki
Jump to navigation Jump to search
Line 3: Line 3:
 
The new build and release procedure uses maven.
 
The new build and release procedure uses maven.
  
=== Build and package procedure ===
+
=== Maven profiles ===
 
Command line to build and package OpenJUMP with maven is
 
Command line to build and package OpenJUMP with maven is
<pre>mvn package -P [release,]installer</pre>
+
: <pre> mvn package </pre>
* be aware that this will fail if no -P release is run beforehand, either at the same run or earlier
+
: which is equivalent to
 +
: <pre> mvn package -P core </pre>
 +
: as core is the default profile, activated if no other was selected.
  
=== Release procedure ===
 
Command line to release a new version of OpenJUMP is
 
<pre>mvn package [-P <core,plus,[release> -D version.number=X.X.X [-D version.release=]]]</pre>
 
  
* you can select one or more profiles core, plus (both are the snapshots) or release (builds releases for CORE and PLUS)
+
The available maven profiles are
* without a given profile CORE snapshot will be built by default
+
:; core
 +
:: a ''snapshot'' of the basic edition
 +
:: example result:
 +
::: target/OpenJUMP-20120423-r2834-CORE.zip
 +
:; plus
 +
:: a ''snapshot'' of the extended edition (core plus extensions from lib/plus)
 +
:: example result:
 +
::: target/OpenJUMP-20120423-r2834-PLUS.zip
 +
:; release
 +
:: ''stable'' builds of ''core'' and ''plus'' which can be named via e.g.
 +
::: <pre>-D version.number=X.X.X -D version.release=stable </pre>
 +
:: example result:
 +
::: target/OpenJUMP-1.5.1-r2721-CORE.zip
 +
::: target/OpenJUMP-1.5.1-r2721-PLUS.zip
 +
 
 +
the following profiles can be added to build additional files
 +
 
 +
:; installer
 +
:: builds multi platform executable izpack installers (*.jar,*.exe) for ''core'' and ''plus'' or ''release''
 +
:: example result:
 +
::: target/izpack/Install_OpenJUMP-20120423-r2834-CORE.jar
 +
::: target/izpack/Install_OpenJUMP-20120423-r2834-CORE.exe
 +
::: target/izpack/Install_OpenJUMP-20120423-r2834-PLUS.jar
 +
::: target/izpack/Install_OpenJUMP-20120423-r2834-PLUS.exe
 +
:; src-zip
 +
:: 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/
 +
 
 +
=== Release ===
 +
The command line to release a new version of OpenJUMP is
 +
mvn package -P release[,installer][,srczip][,javadoc] -D version.number=X.X.X -D version.release=stable
 +
 
 +
* you can select either ''core'' and ''plus'' (both are the snapshots) or ''release'' (builds releases for CORE and PLUS)
 
* for releases you might want to give a version.number (default=unknown) and a version.release (default=stable)
 
* for releases you might want to give a version.number (default=unknown) and a version.release (default=stable)
  
exemple
+
example
<pre>mvn package -P release -D version.number=1.5.1 -D version.release=stable</pre>
+
mvn package -P release -D version.number=1.5.1
 +
 
  
 
== Old Release Process ==
 
== Old Release Process ==

Revision as of 22:32, 25 April 2012

New Build/Release Procedure

The new build and release procedure uses maven.

Maven profiles

Command line to build and package OpenJUMP with maven is

 mvn package 
which is equivalent to
 mvn package -P core 
as core is the default profile, activated if no other was selected.


The available maven profiles are

core
a snapshot of the basic edition
example result:
target/OpenJUMP-20120423-r2834-CORE.zip
plus
a snapshot of the extended edition (core plus extensions from lib/plus)
example result:
target/OpenJUMP-20120423-r2834-PLUS.zip
release
stable builds of core and plus which can be named via e.g.
-D version.number=X.X.X -D version.release=stable 
example result:
target/OpenJUMP-1.5.1-r2721-CORE.zip
target/OpenJUMP-1.5.1-r2721-PLUS.zip

the following profiles can be added to build additional files

installer
builds multi platform executable izpack installers (*.jar,*.exe) for core and plus or release
example result:
target/izpack/Install_OpenJUMP-20120423-r2834-CORE.jar
target/izpack/Install_OpenJUMP-20120423-r2834-CORE.exe
target/izpack/Install_OpenJUMP-20120423-r2834-PLUS.jar
target/izpack/Install_OpenJUMP-20120423-r2834-PLUS.exe
src-zip
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/

Release

The command line to release a new version of OpenJUMP is

mvn package -P release[,installer][,srczip][,javadoc] -D version.number=X.X.X -D version.release=stable
  • you can select either core and plus (both are the snapshots) or release (builds releases for CORE and PLUS)
  • for releases you might want to give a version.number (default=unknown) and a version.release (default=stable)

example

mvn package -P release -D version.number=1.5.1


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