Skip to content

Eclipse BPMN2 Development

Ralph Soika edited this page Oct 14, 2022 · 27 revisions

In this section you find information how to commit to the Eclipse BPMN2 project and how the build and release process is organized. For general information about the concepts of the Eclipse BPMN2 plugin extension mechanism see the BPMN2-Modeler/DeveloperTutorials. The Eclipse Foundation Handbook is also a useful source for information.

Mailing Lists

Concerning any questions use the following mailing lists:

Source Code

The source code of the Eclipse BPMN2 plugin is organized in several projects:

Eclipse Business Process Model and Notation (BPMN2)

The project Eclipse Business Process Model and Notation provides the metamodel implementation based on the forthcoming Business Process Model and Notation (BPMN) 2.0 OMG specification.

Source Code: https://git.eclipse.org/c/bpmn2/org.eclipse.bpmn2.git/

git clone ssh://rsoika@git.eclipse.org:29418/bpmn2/org.eclipse.bpmn2.git

This project is release in version 1.5.0.Final-v20180515-1526

CI/Jenkins Jobs

Eclipse BPMN2 Modeler Project

The Eclipse BPMN 2.0 Modeler project provides the graphical modeling tool which allows creation and editing of BPMN ( Business Process Modeling Notation ) diagrams.

Source code: https://git.eclipse.org/c/bpmn2-modeler/org.eclipse.bpmn2-modeler.git/

git clone ssh://rsoika@git.eclipse.org:29418/bpmn2-modeler/org.eclipse.bpmn2-modeler.git

This project is released in version 1.5.2

CI/Jenkins Jobs

The Eclipse BPMN2 Web Site

The project web site is hosted on gitlab.

https://gitlab.eclipse.org/eclipse/bpmn2-modeler/bpmn2-modeler-website

The new publishing tool will automatically pull from https://gitlab.eclipse.org/eclipse/bpmn2-modeler/bpmn2-modeler-website and publish to www.eclipse.org/bpmn2-modeler .

Further information about the website management can be found here

Changes can be committed directly into the master branch via gerrit. You need to review,verify and submit your changes in gerrit after a commit. See also the commit section below.

Eclipse BPEL Designer

The Eclipse BPEL Designer is not realy related to BPMN but still part of the project set.

The Eclipse BPEL Designer project adds support for the WS-BPEL 2.0 processes. WS-BPEL (Web Services Business Process Execution Language), or BPEL, is a vendor-neutral specification being developed by OASIS to specify business processes as a set of interactions between web services.

https://git.eclipse.org/c/bpel/org.eclipse.bpel.git/

git clone ssh://rsoika@git.eclipse.org:29418/bpel/org.eclipse.bpel.git

This is currently released in version 1.1.2.Final-v20180621-1835. In your master branch we have 1.1.3 (which some minor changes from your side). So we should release this version

CI/Jenkins Jobs

How to Commit

To commit an new change follow these steps:

1.) Create a new Bugreport

First create a new Bugzilla Issue describing the change.

https://bugs.eclipse.org/bugs/enter_bug.cgi?product=BPMN2Modeler

2.) Commit your Changes

Now you can commit your changes via Gerirt. For this it is important to create a valid commit message in the following format

Bug 536236 - my message....

details.....

Change-Id: I000000000000000000000000000000000000000000
Signed-off-by: Ralph Soika <ralph.soika@imixs.com>

Commit and push your changes to Gerrit.

3.) Verifiy Changes via Gerrit

Changes are not directly visible. First the commit is pushed into Gerrit. This is a kind of 'Team-Review-Platform'. After a new commit you will see a gerrit link. Copy this link and open it in your web browser. You can now do a Code-Review and submit the change. This process is simmilar to a Pull-Request auf Github.

With the following Gerrit URL you can verify open commits:

https://git.eclipse.org/r/#/q/status:open+project:bpmn2-modeler/org.eclipse.bpmn2-modeler+branch:master

For the submit in Gerrit you need to perform 3 steps (you have to be loged in!):

First post your code review comment:

Next verify the commit:

Finally submit the commit so it will be merged into the master branch

Pull your Changes

After the submit in gerrit you can pull again your changes locally from gerrit. This is an important step before you continue local bug fixing!

You will also find a description about this procedure in the BPMN2 Developer Wiki

The Git Repo

With the following URL you can check the official master branch code:

https://git.eclipse.org/c/bpmn2-modeler/org.eclipse.bpmn2-modeler.git/

Test your Local Build

For local testing you can build with using the corresponding profile:

$ mvn clean install -Pplatform-2019-06 -Dcbi.jarsigner.skip=true

Nightly Builds

Each commit made via gerrit triggers a nighly build job in Jenkins. You can monitor these builds processes here:

https://ci.eclipse.org/bpmn2/job/bpmn2-modeler.nightly/

The Jenkins Server uses a special userID to write the build results named 'bpmn2'. This user needs sufficient write access.

Publish a Nigthly Build

To learn how a jenkins build is setup see here

Note: in the Jenkins build configuration there is a maven build command like:

cleaninstall-Pplatform-2020-09,sign

You need to update the platform release there if you switch the platform release!

When the nightly build job completes go ahead and run the publish job via jenkins:

https://ci.eclipse.org/bpmn2/job/bpmn2-modeler-publish/

Also this job should have the correct params. The results form a nightliy build can be verified here:

https://download.eclipse.org/bpmn2-modeler/updates/

Jenkins Support

In case of any problem you can open an issue in Bugzilla group 'Community' under the component 'CI-Jenkins'

Example: https://bugs.eclipse.org/bugs/show_bug.cgi?id=563584

How to update the pom version

Bumping the version number of bpmn2 modeler you can use a script.

  1. First create an issiue in bugzilla
  2. Next you can use the script changeVersion.sh

Specify the old and the new version like this:

changeVersion.sh <oldVersionString> <newVersionString>"

Example:

$ cd git/org.eclipse.bpmn2-modeler
$ ./scripts/changeVersion.sh 1.5.1-SNAPSHOT 1.5.2-SNAPSHOT

Finally commit your changes

Adding a new Platform Release

To add a new platform release the parent/pom.xml file must be extended with a new profile entry like this

       <profile>
		<id>platform-2019-06</id>
		<activation>
			<property>
				<name>platform-version-name</name>
				<value>2019-06</value>
			</property>
		</activation>
		<properties>
			<eclipse-site>http://download.eclipse.org/releases/2019-06</eclipse-site>
			<platform-version>[4.8,5.2)</platform-version>
			<platform-version-name>2019-06</platform-version-name>
			<eclipse.orbit.url>https://download.eclipse.org/tools/orbit/S-builds/S20200128200239/repository</eclipse.orbit.url>
		</properties>
		<build>
			<plugins>
				<plugin>
				    <groupId>org.eclipse.tycho</groupId>
				    <artifactId>tycho-surefire-plugin</artifactId>
				    <version>${tycho-version}</version>
					<configuration>
						<useUIThread>false</useUIThread>
					</configuration>
				</plugin>
			</plugins>
		</build>
	</profile>

In addition the graphiti repo need to updated

             <repository>
		<id>eclipse-graphiti</id>
		<url>http://download.eclipse.org/graphiti/updates/milestones/S-0.17.0M3-202005151449/</url>
		<layout>p2</layout>
		<snapshots>
			<enabled>true</enabled>
		</snapshots>
		<releases>
			<enabled>true</enabled>
		</releases>
	</repository>

The profilename must match the official platform name form Eclipse. you can find infos here

The Simultaneous Release

The official build process is called Simultaneous Release.

You will find the release plans for simrel here: https://wiki.eclipse.org/Category:SimRel-2020-09

The Goal is to test if a new Version of a Plugin works within a Simultaneous Release. For that you can checkout the simrel build project, update your product file and test if an aggregated Build is successful or not. Than you can commit your Changes in the simrel-build project.

git clone git.eclipse.org:29418/simrel/org.eclipse.simrel.build

The file 'soa-bpmn2-modeler.aggrcon' holds the Eclipse BPMN2 build configuration. Make sure that you update the version numbers and the repository url. The looks like this:

And finally you should commit your changes via Gerrit.

<?xml version="1.0" encoding="ASCII"?>
<aggregator:Contribution xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/cbi/p2repo/2011/aggregator/1.1.0" label="SOA-BPMN2 Modeler">
  <repositories location="https://download.eclipse.org/bpmn2-modeler/updates/2020-06/1.5.2">
    <features name="org.eclipse.bpmn2.modeler.feature.group" versionRange="1.5.2">
      <categories href="simrel.aggr#//@customCategories[identifier='SOA%20Development']"/>
    </features>
    <features name="org.eclipse.bpmn2.modeler.runtime.jboss.feature.group" versionRange="1.5.2">
      <categories href="simrel.aggr#//@customCategories[identifier='SOA%20Development']"/>
    </features>
    <features name="org.eclipse.bpmn2.modeler.examples.feature.group" versionRange="1.5.2">
      <categories href="simrel.aggr#//@customCategories[identifier='SOA%20Development']"/>
    </features>
  </repositories>
  <contacts href="simrel.aggr#//@contacts[email='pleacu@redhat.com']"/>
</aggregator:Contribution>

Milestone Releases

To avoid build conflicts it makes sens to produce milestone releases (M1, M2, M3, RC1...) first and only if all is fine to GA update a last '-final' release. You need to tweek then soa-bpmn2-modeler.aggrcon file for every milestone.

How to commit your simrel changes

The simrel process has the following steps:

  1. Build a new nightly release
  2. Checkout the simrel Build Project form :git.eclipse.org:29418/simrel/org.eclipse.simrel.build
  3. Update your project aggregation file (soa-bpmn2-modeler.aggrcon) with the latest Version Numbers and the new Repository URL from your nightly build.
  4. Install and start a new blank Eclipse IDE
  5. Install the 'Aggregation Editor' Plugin from this Update site: http://download.eclipse.org/cbi/updates/aggregator/ide/4.13
  6. Open the simrel.aggr file from the build directory
  7. Select from the context menu "Aggregator Editor > Build Aggregation" - this will build a new IDE
  8. Select from the context menu "Aggregator Editor > Validate Aggregation" after you build the aggregation. 9. Commit your changes in the soa-bpmn2-modeler.aggrcon to the org.eclipse.simrel.build project

Note: For step 5 I was unable to get to work with the latest Eclipse. I used eclipse photon and version 4.8 of Aggregation Editor. That should work.

Detail Description of the simrel aggregation Processs

You should install a new empty eclipse ide for the test. It is recommended to use a Photon. Newer IDEs did not work currently with the Aggregator Editor Plugin.

You can find special releases and pre releases for eclipse here:

https://download.eclipse.org/eclipse/downloads/index.html

Install the Aggregator Editor Plguin.

Next you need to intstall the Aggregator Editor plugin. Updatesite:

http://download.eclipse.org/cbi/updates/aggregator/ide/4.13

Now you can open directyl (not in a project) the file 'simrel.aggr' out of your local git repo

From the context menu you can run the verify and build

If the build and validation was successful you will see the following log message in the eclipse log file:

...
....
Adding child meta-data repository https://download.eclipse.org/bpmn2-modeler/updates/2020-06/1.5.2
...
....
Starting generation of verification feature for validationSet: main
Done. Took 3 seconds
Starting planner verification for validationSet: main
Verifying config linux,gtk,ppc64le...
Verifying config linux,gtk,x86_64...
Verifying config macosx,cocoa,x86_64...
Verifying config win32,win32,x86_64...
Verification successful
Done. Took 8 minutes 21 seconds
Starting generation of composite repository
Adding child meta-data repository http://download.eclipse.org/modeling/emf/emf/builds/milestone/S202005191146
Adding child meta-data repository https://download.eclipse.org/rt/rap/3.13/M3-20200527-0818
Done. Took 1 second
Starting generation of verification feature for validationSet: runtime
Done. Took 0 seconds
Starting planner verification for validationSet: runtime
Verifying config linux,gtk,ppc64le...
Verifying config linux,gtk,x86_64...
Verifying config macosx,cocoa,x86_64...
Verifying config win32,win32,x86_64...
Verification successful
Done. Took 0 seconds

Commit your simrel changes

Now if everything went fine, you can commit your simrel changes via Gerrit.

First, read the section about Contributing to the Simrel Aggregation Build

Than you can commit your changes via gerrit. A commit message should look like this:

Micro-version Update BPMN2 Modeler tooling (1.5.2) for 2020-06.

Change-Id: I000000000000000000000000000000000000
Signed-off-by: Ralph Soika <ralph.soika@imixs.com>

The commit will give you a gerrit ulr where you can observe the verification process. To see all open Eclipse SIMREL Gerrit change requests (PRs) open: https://git.eclipse.org/r/#/q/status:open+project:simrel/org.eclipse.simrel.build+branch:master

Your commit should be verified +1 by a CI Jenkins job automatically.

The last step is to +2 but which should be done by a simrel committer.

You can monitor the jenkins job for the Simrel: https://ci.eclipse.org/simrel/job/simrel.runaggregator.VALIDATE.gerrit/

Verify the new Dropin Build

If everything works, a nightly build process will be issued build a new Eclipse ID. You can download the new build from here: https://download.eclipse.org/eclipse/downloads/index.html

You should test if the Eclipse ID with your BPMN2 Plugin is fine.

The IP Log

An IP Log is a record of intellectual property for an entire project. The purpose of the IP Log review is to confirm that the project team understands the Eclipse IP Policy and is implementing the supporting processes. An IP Log is not intended to reflect the intellectual property included with any particular release. Find details here.

A new IP Log can be generated be the PMI tools. See here.

Find additional refs here: