Mod4j Release Guide
The Release Guide gives instructions to developers of Mod4j for releasing a new version of Mod4j.
It tells what
steps to
take for releasing and publishing the developed Eclipse features and plug-ins
to the Mod4j update site
and releasing Mod4j
artifacts to the central Maven repository.
Prerequisites
This section describes which prerequisites to full fill before you can start releasing.
-
To be able to deploy artifacts to our Maven repository at Codehaus and to be able to deploy the Mod4j
project site,
you'll need to add the following
servers to your local settings.xml:
For deployment of the project-site you'll need the ftp -username an -password for the Mod4j ftp-server.
Ftp-server name:
ftp.mod4j.org
Username:
mod4j.org
You should be familiar with the password that comes with the username.
- Svn command-client version 1.4.6 installed. Version 1.5.0 might work also, but higher versions lead
to
errors icw
maven-scm-provider. To check the version: open a command shell and type "svn --version".
-
If you already have a checkout of the Mod4j sources that was done with a Subversion 1.4.x client you can
pass this
step and
move on to next. Otherwise, perform a checkout of all the sources with the svn
command-client. Open a
command shell
and type:
svn checkout https://svn.codehaus.org/mod4j/trunk/modules mod4j
- Go to the Mod4j Developer Guide and perform all import steps, to begin with step 2, from the section
"Checking
out, import into Eclipse, generating the DSL-editors"
-
Now also import as Existing Project into Eclipse:
../modules/BusinessDomainDsl/org.mod4j.dsl.businessdomain.feature
../modules/BusinessDomainDsl/org.mod4j.dsl.datacontract.feature
../modules/BusinessDomainDsl/org.mod4j.dsl.service.feature
and
../modules/org.mod4j.updatesite
- At this point your local checkout should be free of outstanding local modifications.
Release steps
-
Choose the release version number for the Mod4j Eclipse plug-ins. For example:
1.3.0.qualifier
. Check and adjust
all version numbers in all Mod4j plug-ins (manifests, site.xml and feature.xml's).
And
commit.
-
Choose the release version number. for the Mod4j Maven modules. For example:
1.1.0
(TODO: In future versions this must be equal to the version of the Mod4j Eclipse plug-ins. See Jira
issue:
http://jira.codehaus.org/browse/MODFORJ-53)
-
Adjust the mod4j.version property in ParentPom.xpt with the Mod4j release version number. For example:
<mod4j.version>1.1.0</mod4j.version>
And commit.
-
Create new documentation folders for the new release and next development version on the Mod4j website.
Use a ftp client to create the new folders:
ftp.mod4j.org/mod4j.org/wwwroot/documentation
You should be familiar with the username and password for this site.
Under the
../wwwroot/documentation
folder create the following folder structure, where [release version]
is fi.
1.1.0
and [next development version] is fi.
1.3.0-SNAPSHOT
:
[release version]/user-guide
[release version]/application-architecture
[next development version]/user-guide
[next development version]/application-architecture
- Open de site.xml in the updatesite project.
- Click on "Build All". Now the features and plugins folder in the updatesite project contains
the
files we
need
to deploy to our updatesite (see next section).
-
With the previous step a timebased releasenr is generated. For example:
1.1.0.200812170807
-
Release all Maven modules (including hybrid's). Open a commandbox and navigate to the Mod4j
parent-pom.
Enter the
following commands:
mvn release:prepare -Pci
(and enter the correct version numbers and tag when asked)
mvn release:perform -Pci
- With previous step all the Mod4j modules are deployed as Maven artifacts to Maven repository at
Codehaus
and the project site is deployed to mod4j.org. Within 4 hours the deployed Maven artifacts at
Codehaus
are automatically synchronized with the central Maven repository (see:
http://repo1.maven.org/maven2/org/mod4j).
Publishing the Mod4j DSL Eclipse plug-ins to the Mod4j updatesite
New versions of the Mod4j DSL Eclipse plug-in can be published on the Mod4j updatesite. We will publish
each
Mod4j DSL as a feature based on several plug-ins.
-
Use a ftp client copy the
features
folder,
plugins
folder and
site.xml
to:
ftp.mod4j.org/mod4j.org/wwwroot/updatesite/x.x
You should be familiar with the username and password for this site.
- Make an announcement on the mailinglist.
Post release steps
After the formal release you'll need to perform the following updates.
Project site updates
- Open the Mod4j parent pom and adjust the property "release.version.latest"
- Fill the releasenotes.xml for the released version with a copy of the releansnotes in html from Jira
- Add a new row to the table in ../modules/src/site/xdoc/releases/index.html for this release.
- If it doesn exist already, create a new folder under ../modules/src/site/xdoc/releases with the name of
the next version to release. And add a empty releasenotes.xml and upgradenotes.xml to it.
- Save and commit your changes.
-
Update the site by performing a
mvn clean site site:deploy -N
Prepare for next development phase
- Adjust the version number of all Mod4j Eclipse plug-ins (x.x.x.qaulifier)
-
Adjust the mod4j.version property in ParentPom.xpt to the next development version number. For example:
<mod4j.version>1.3.0-SNAPSHOT</mod4j.version>
-
Open ../Examples/RecordShop-ExampleProject/pom.xml and adjust the property
mod4j.version
to the next development version. For example:
1.3.0-SNAPSHOT.
- Save and commit your changes.
Create a new branch for bugfixing
If the released involves a major or upgrade release a new branch must created based on the tag of the
release.
- Checkout the tag of the release.
- Open a commandshell and navigate to the root folder of the checkout above.
-
Create the branch using the following command
mvn release:branch -DbranchName=mod4j-branch-1.1 -DupdateBranchVersions=true
-DupdateWorkingCopyVersions=false -Pci
Sit back, put a big smile on your face and relax.