imported>Tommy |
imported>Fabian |
Line 1: |
Line 1: |
− | This page documents the procedure followed for building the binary packages of the Rodin platform that are distributed on SourceForge. The build is done in two steps
| + | The first version of the Text Editor will be released in a few weeks, that means in second half of June and not before the Rodin release 1.0 has been published. |
− | # Fetch the sources from the repository and make a source archive with them.
| |
− | # Build the platform headless from this set of sources using Apache Ant.
| |
| | | |
− | ==Requirements==
| + | Until then we are going to release a few testing releases (beta) for interested users. You will find instructions how to install and use these beta-releases on this page. |
− | * Apache Maven 3 should be installed on the platform that will run the build.
| |
| | | |
− | ==Pre Build Verifications==
| |
| | | |
− | Before building, several checks have to be made in the sources:
| + | <div style="background-color:#FFFF00;"> |
− | * clean build all RodinCore plug-ins, so that generated files are regenerated using repository sources
| + | '''Warning''': |
− | * JUnit tests are OK
| |
− | * versions of plug-ins, features and product obey [http://wiki.eclipse.org/Version_Numbering Eclipse versioning policy]
| |
− | * API Tooling build against previous Rodin release produces no errors on any plug-in
| |
− | * Rodin build process is managed using Apache maven and Tycho. One should verify that maven artifact versions match the plug-in versions (defined in plug-in MANIFEST.MF files)
| |
− | * the correct Eclipse version is referenced in the p2 configuration (org.rodinp.platform/p2.inf) and matches the one defined whithin the parent pom file (<tt>org.eventb.parent/pom.xml</tt>) :
| |
| | | |
− | <repository>
| + | Don't use the TextEditor yet with your production models! |
− | <id>indigo</id>
| + | * The TextEditor is still in heavy development |
− | <layout>p2</layout>
| + | * It is based on a new Rodin version which uses a changed database model and therefore is not compatible with older versions. |
− | <url>http://download.eclipse.org/releases/indigo</url>
| + | </div> |
− | </repository>
| |
− |
| |
− | * the correct link for the Rodin Handbook is provided in the parent pom file (<tt>org.eventb.parent/pom.xml</tt>) : | |
− | <repository>
| |
− | <id>handbook</id>
| |
− | <layout>p2</layout>
| |
− | <url>http://handbook.event-b.org/updatesite</url>
| |
− | </repository>
| |
| | | |
− | * branding plug-ins display the correct Eclipse version (text information found in several about.properties/plugin.properties files)
| |
− | * documentation is up to date for /org.rodinp.platform/html/root.html
| |
− | * generated documentation matches latest wiki sources for <tt>org.eventb.keyboard/doc</tt>
| |
− | * make sure a valid destination folder is specified in <tt>org.eventb.parent/pom.xml</tt>. This destination folder will host the built platforms, the update-site and the development target platform.
| |
− | Example :
| |
− | <www-basedir>/tmp/rodin-build/rodin-3.0</www-basedir>
| |
| | | |
− | The variable used in Maven scripts is then <tt>${www-basedir}</tt> | + | ==Installing == |
| + | The TextEditor relies on features of the Rodin release 1.0 which is not yet released. Therefore you will have to create a new Rodin installation. The following steps will guide you through this process: |
| | | |
− | When everything works, any changes to the sources made during this verification process are pushed to the Source Forge repository.
| + | # Download a build of Rodin from our CruiseControl server: |
| + | ## Point your browser to [http://cruise.cs.uni-duesseldorf.de:8080/dashboard/tab/build/detail/org.rodinp.platform] |
| + | ## Download a zip file with a name starting with ''rodin-product'' and matching your platform. For example ''rodin-product-linux.gtk.x86.zip'' if you are working on a Linux system. |
| + | # Extract the downloaded zip file. |
| + | # Start Rodin from the folder where you extracted the zip file in the previous step. |
| + | # Install the TextEditor: |
| + | ## In the menu choose ''Help'' -> ''Software Updates...'' |
| + | ## Select the tab ''Available Software'' |
| + | ## Click ''Add Site...'' |
| + | ## Use the location URL: <tt>http://www.stups.uni-duesseldorf.de/update-beta/</tt> |
| + | ## Back in ''Available Software'' open the update site you just added |
| + | ## Select ''Event-B EMF Framework'' and ''Event-B TextEditor'' and click ''Install...'' |
| + | # Restart Rodin as suggested. |
| | | |
− | '''N.B.''' Several information are defined and manipulated for each build. Here below is a memo to help understand them :
| + | Now you are ready to use the TextEditor. |
− | # the platform version which defines a milestone identifier for the Rodin platform. Example of platform versions are <tt>1.0</tt> and <tt>2.3RC1</tt>.
| |
− | # the Git commit number which permits to know very precisely which source versions are used for the build.
| |
− | # the Git branch from which the commit can be checked out
| |
− | # the full platform version used for provisioning, and which is the user-visible version which is displayed in ''About Rodin Platform''. This version is made of the platform version and the commit number, separated by a dot. Example of full versions are <tt>2.8RC1.bh1420</tt> and <tt>2.8.1.hgf52f65</tt>.
| |
| | | |
− | ==Fetching Sources==
| |
| | | |
− | Create a directory that will contain the sources and be used to build the platform.<br />
| + | ==Usage == |
− | Example :
| |
− | mkdir Rodin3.0BuildDirectory
| |
− | | |
− | and go to this directory :
| |
− | cd Rodin3.0BuildDirectory
| |
− | | |
− | Fetch sources from Git in the current directory :
| |
− | <nowiki>git clone git://git.code.sf.net/p/rodin-b-sharp/rodincore .</nowiki>
| |
− | | |
− | ==Building the Platform== | |
− | | |
− | To build the platform, you just need to run the script below (available from org.rodinp.releng/scripts/run-maven.sh) :
| |
− | | |
− | <nowiki> #!/bin/sh
| |
− | ###############################################################################
| |
− | # Copyright (c) 2013 Systerel and others.
| |
− | # All rights reserved. This program and the accompanying materials
| |
− | # are made available under the terms of the Eclipse Public License v1.0
| |
− | # which accompanies this distribution, and is available at
| |
− | # http://www.eclipse.org/legal/epl-v10.html
| |
− | #
| |
− | # Contributors:
| |
− | # Systerel - initial API and implementation
| |
− | ###############################################################################
| |
− | SCRIPT=`readlink -m -n $0`
| |
− | SCRIPTS_DIR=`dirname $SCRIPT`
| |
− | MAIN_DIR=`readlink -m -n $SCRIPTS_DIR/../..`
| |
− |
| |
− | cd $MAIN_DIR
| |
− | | |
− | GIT_COMMIT=`git log -1 --format='%h'`
| |
− | echo "Building Rodin with Maven for git commit: $GIT_COMMIT"
| |
− | mvn clean install -Dgit-commit=$GIT_COMMIT $@ # -DskipTests -fae </nowiki>
| |
− | | |
− | ==Post Build Verifications==
| |
− | | |
− | When the build worked, the destination directory (defined by variable <tt>${www-basedir}</tt>) contains zipped archives for all platforms, the update site, and the target platform for plug-in development.
| |
− | For each of them, check that:
| |
− | * "rodin" binary is an executable file (for Linux and Mac)
| |
− | * the version appearing in ''About Rodin platform'' is correctly defined
| |
− | * a directory "dropins" exists at the root (under "rodin", among "features", plugins", ...)
| |
− | * in "configuration/org.eclipse.equinox.simpleconfigurator/bundles.info", plug-in "org.eclipse.equinox.p2.reconciler.dropins" is configured with auto start mode ("true" at the end of the line)
| |
− | | |
− | ==Last operations to perform==
| |
− | *Ensure that the download of the uploaded version of Rodin is here by default
| |
− | *Update the main wiki page:
| |
− | **http://wiki.event-b.org/index.php/Main_Page
| |
− | **The image "out now" is to be changed
| |
− | **The link "learn more" should point to the release notes
| |
− | **The link "download now" should point to the SF repository
| |
− | *The Platform releases page should be updated:
| |
− | **http://wiki.event-b.org/index.php/Rodin_Platform_Releases
| |
− | *The 64 bits page should be updated:
| |
− | **http://wiki.event-b.org/index.php/Rodin_64_bit
| |
− | * A group for the new release is available on Bug and Feature Request trackers.
| |
− | *A mail is sent on the user + announce rodin SF lists.
| |
− | | |
− | [[Category:Developer documentation]]
| |
− | [[Category:Rodin Platform]]
| |