How to contribute to Bonita BPM Engine

Do you want to contribute to Bonita BPM Engine?
Just follow these steps!

Github Requirements

Bonita BPM source code is hosted on Github.

Consequently, you need to create a Github account if you don’t already have one.

Then you need to have your own Engine fork. You can follow the guidelines on Github Help Documentation or click on the following link https://github.com/bonitasoft/bonita-engine#fork-destination-box.

Set up your Development Environment

Thanks to the project Eclipse Oomph, a nice installer will set up the whole environment. You will just have to specify a few settings. Let’s review them together. Here’s what you need to do:

Download the Oomph Installer: https://wiki.eclipse.org/Eclipse_Oomph_Installer

Launch it, then on the first page, switch to “Advanced mode”:

switchToAdvancedMode

Choose “IDE for Java Developers” and go to the next page:

IDE For Java

Drag’n’Drop the BonitaBPM.setup file on to the Github tree node. Ensure that the downloaded file has the correct extension, .setup. Then double-click on Github.com< User >Bonita BPMEngine project and finally click Next.

ChooseBonitaBPMEngine

Specify the Location rules. You can specify whatever you want, but if you are not sure what the options mean, I recommend that you choose:

  • For Installation location rule, “Installed in uniquely-named folder within the root install folder” .

  • For Workspace location rule, “located in a folder named ‘ws’ within the installation folder”.

  • For Root install folder, use a short path if you are on Windows to avoid paths that can exceed 256 characters.

location rules

For Git clone location rule, I recommend to use “Located in a folder named git/ within the installation folder”.
It duplicates the git repo on your system if you install several environment on the same codebase but you will be able to work on several branches at the same time by having clear separation of the git clones

git clone location rule

Specify a JDK (not only a JRE):

jdk

Provide your Bonita BPM Community Jira credentials. If you don’t have an account yet, please go to the sign up page.

BonitaJIRA

Configure Git access:

  • Choose “HTTPS (Read-write)”
  • Fill in the user ID and user owner ID with your own Github User ID. The user owner ID can be set to bonitasoft if you have Commit/Push rights to the main github repository.

github

Click Next and then click Finish.
Wait a few minutes, while all the eclipse plugins are downloaded (I recommend to have a good internet connection).
You will have to accept Licenses. I recommend to check the “Remember accepted licenses” checkbox.
Wait few seconds and then accept unsigned content, and check “Remember choice”.

unsignedContent

After few Seconds an Eclipse IDE should start. If no git account has been already configured using Eclipse, wait until a popup appears and enter your Github credentials:

githubCredentialPswword

Notable configurations

I won’t go through all the provided configurations, just highlight some of them.

Launch Test

Go to External Tool Configuration and launch the ant tasks corresponding to the JUnit test suite you plan to launch:

ant launch

Then go to launch configuration and launch the Junit test Launch configuration:

Junit launch

Eclipse preferences

The code formatter is preconfigured to respect the Bonita BPM guidelines. It also includes the Headers for newly created files.

Useful plugins installed

Some useful plugins are integrated:

Mylyn, Jira and Github

Some tasks lists are preconfigured in Mylyn to connect to Bonita Community bugtracker Jira and submit pull requests to the Bonita BPM Engine github repository.

Provide your contribution!

You now have all the cards to contribute to Bonita BPM Engine. We are awaiting your Pull Requests :slight_smile:

PS: In order for us to accept your pull requests you must sign a Contribution License Agreement. We will contact you after your first pull request.

KNOWN ISSUES:

  • The first build might not work for one test module. Delete the target folder. It should rebuild and work subsequently.