Geomajas Community Documentation

Chapter 7. How to release Geomajas

The Geomajas project consists of many pieces which each have their own release cycle. The most important parts are the back-end, faces and plug-ins. The example programs, documentation and and build tools also have individual release cycles.

This chapter tries to explain how to release any of these modules. The procedure is similar for all modules, but there are some specific checks to be done which only apply for certain parts.

As the releases are done to the Sonatype's nexus repository for open source projects (which is synced to Maven Central), the following references are a required read:

The basic procedure is very easy, for the part you want to release, execute the following two commands (using the next version as parameter, this will make you type less). These steps should be done in a clean location, it is best to do a fresh checkout.

Before doing the release, you should update the version which is mentioned in the master.xml file (this version is displayed on the front page of the manual and is not automatically updated). After the release, this should be updated to the new development version.

At the end of the build, the src/main/resources/api.txt needs to be updated with the file which is put in target during the build (though the header at the top should remain, with the version updated.

The geomajas-dep pom and aggregate.sh need to be updated for the released and new snapshot versions respectively.

Remember to comment the snapshot repository in all poms.

The documentation uses the example applications for extracting code which is included in the manual. This is a circular dependency when it includes the part to be released. It may be useful to do a local build using the next release version locally, to allow the release the work for the documentation part. You can do the actual release of the example application at the end.

When releasing the backend core, there may be a problem building the javadocs. The solution can be to do a local build of the backend using the next release version before doing the actual release.

When releasing the GWT face, make sure the dependency versions are correct in geomajas-gwt-archetype/src/main/resources/archetype-resources/pom.xml.

Close the staging repository (which makes the artifacts available for testing). When staging several parts, it is recommended to close each separately. This allows more fine-grained promotion and/or dropping of artifacts.

When staging is done and the repository closed, start a vote to allow users to test the new artifact.

When the vote failed, drop the repository. Development just continue and the version number is skipped. The release date in JIRA is actually the staging date.

When the vote was successful, promote the staged artifacts and announce the release, for the back-end, this requires the following steps:

  1. Upload zip files to sourceforge download area

  2. JIRA: Assure the next version exists, mark the current version as released agreeing to move open issue to the next version.

  3. For unstable release: install gwt-example for online trial

  4. For stable release: install all demo application for online trial

  5. Announce:

    • Build announcement message using the following template:

      title: Geomajas 1.5.0 technology preview/release candidate/stable released

      The Geomajas project is proud to release Geomajas 1.5.0, a technology preview showcasing the progress we are making towards our next stable build.

      The major advances in this version include (indicate major contributors when appropriate)

      • modularization of the system

      • introduction of a GWT face

      For the full list of changes, see http://jira.geomajas.org/jira/secure/ReleaseNote.jspa?version=10131&styleName=Html&projectId=10000&Create=Create

      Documentation for this release can be found at http://files.geomajas.org/maven/1.5.0/geomajas/userguide.html .

      Download links can be found at http://geomajas.org/release_1.5.0 .

      For the next release we plan to include the following features

      • absorb CO2 from the air to reduce global warming

      • remove need for system to be powered

      Please note that this is an unstable release, all the new features since the previous stable release may still change and we some new bugs may have been introduced.

      If you want to help us, join the discussions on the developer list, list bugs in jira and make feature requests in our fora. See http://www.geomajas.org/gis-development .

      Geomajas is the extensible open source web mapping framework, enabling integrated GIS solutions for businesses and government.

      Feel free to change wording and add useful content.

    • Create download image for this version (278x61 pixels).

    • Add release on download page (remember to name the page "release_1.5.0" with correct version number).

    • For a stable release, update the documentation page.

    • For a stable release, update Geomajas wikipedia page.

    • Send announcement to majas-dev (plain text).

    • Publish on general forum.

    • Create news item (without the "Geomajas is..." footer.

    • Send mail to jan.pote@geosparc.com to assure Geosparc is informed of the release.