XebiaLabs Community Plugins

View on GitHub

Welcome to XebiaLabs Community plugins

This page describes how you can contribute to the XebiaLabs community plugins, where the continuous integration is located and what steps to follow to release your community plugin.

Join the xebialabs-community organization

Create a GitHub account, and request to join the organization by sending an email to jdewinne@xebialabs.com.

Fork a repo or generate a pull request

If you want to contribute to an existing repository, simply fork the repository, make your changes, and send a pull request. If you need help with this, you can contact for example the person who last committed to that repository.

License to be used

XebiaLabs requires each plugin to include the following license information:

Copyright <YEAR> <COPYRIGHT HOLDER>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

This can easily be done using the Gradle license plugin:

plugins {
    id "com.github.hierynomus.license" version "0.13.1"
}
...
license {
  header rootProject.file('License.md')
  strictCheck false
  ext.year = Calendar.getInstance().get(Calendar.YEAR)
  ext.name = 'XEBIALABS'
}

Dependencies

We have a public artifact repository which Gradle or Maven can use to fetch dependencies. It is located at https://dist.xebialabs.com/public/maven2. For example, to configure Gradle to use it:

repositories {
  ...
  maven {
    url 'http://dist.xebialabs.com/public/maven2'
  }
}

Continuous Integration

Travis CI

XebiaLabs uses Travis CI for continuous integration. Go to Travis CI and log in with your GitHub account. After you log in, you'll see the community plugins being built. The build configuration is located in the .travis.yml file in each repository. More information is available at the Travis CI documentation site.

Please also configure HipChat notifications as described here (TravisCI room) and GitHub releases as described here.

Circle CI

As an alternative, you can use Circle CI.

Use a Gradle wrapper

Using a Gradle wrapper ensures that the same Gradle version is used (including on Travis CI). An example usage of a Gradle wrapper can be found in the xld-openshift-plugin repository. You can copy the example wrapper or create one yourself using gradle wrapper.

Release your plugin

Make sure you follow these steps

Rules to follow - Definition of Done

Extra information