Skip to content

Project Setup

If you are interested in developing and building the project please read the following the instructions carefully.

Version control#

To get sources of the project, please execute:

git clone https://github.com/holunda-io/camunda-bpm-correlate.git
cd camunda-bpm-correlate

We are using gitflow in our git SCM for naming branches. That means that you should start from develop branch, create a feature/<name> out of it and once it is completed create a pull request containing it. Please squash your commits before submitting and use semantic commit messages, if possible.

Project Build#

Perform the following steps to get a development setup up and running.

./mvnw clean install

Integration Tests#

By default, the build command will ignore the run of failsafe Maven plugin executing the integration tests (usual JUnit tests with class names ending with ITest). In order to run integration tests, please call from your command line:

./mvnw -Pitest

Project build modes and profiles#

Documentation#

We are using MkDocs for generation of a static site documentation and rely on markdown as much as possible.

Note

If you want to develop your docs in 'live' mode, run mkdocs serve and access the http://localhost:8000/ from your browser.

For creation of documentation, please run:

Generation of JavaDoc and Sources#

By default, the sources and javadoc API documentation are not generated from the source code. To enable this:

./mvnw clean install -Prelease -Dgpg.skip=true

Continuous Integration#

GitHub Actions are building all branches on commit hook (for codecov). In addition, a GitHub Actions are used to build PRs and all branches.

Publish a new release#

We use gitflow plugin to handle versioning and branch manipulations between develop and master. Technically, every push to the master branch triggers the execution of the GH actions job producing a release and publishing it into Maven Central. To do it correctly (with correct versions) please run:

./mvnw gitflow:release-start

Acknowledge the proposed version (or change if needed) and then run:

./mvnw gitflow:release-finish

Milestone / Release Management#

After the publication of the new release, it is time to tell the users that you produced a new version. The GitHub release is produced by using the GitHub feature Close Milestone. A special GitHub action is preparing the release notes as a draft. Then click on Publish Release to make it public. This will trigger some GitHub internal notifications and people subscribed to notification about the library will get notified.

What modules get deployed to repository#

Every Maven module is enabled by default. If you want to change this, please provide the property

<maven.deploy.skip>true</maven.deploy.skip>

inside the corresponding pom.xml. Currently, all examples are EXCLUDED from publication into Maven Central.


Last update: November 10, 2023