Skip to content

Latest commit

 

History

History
90 lines (66 loc) · 5.06 KB

CONTRIBUTING.md

File metadata and controls

90 lines (66 loc) · 5.06 KB

Contributing to the Static Analysis Suite

This page provides information about contributing code to Jenkins' Warnings plug-in.

❗ There's a lot more to the Jenkins project than just code. For information on contributing to the Jenkins' project overall, check out Jenkins' contributing landing page.

Parser Implementations

If you are planning to provide your own parser, please also have a look at the project Static Analysis Model and Parsers. Here, all parsers need to be added first. The Jenkins Warnings Plug-in does not include the parsers anymore, it links the parsers using the analysis-model library. You still need to add a reference to the new parser afterwards in order to get the parser represented in the UI.

Getting started

  1. Fork the repository on GitHub.
  2. Clone the forked repository to your machine.
  3. Install the development tools. In order to contribute to Jenkins' Static Analysis Suite, you need the following tools:
    • Java Development Kit (JDK) 8.
    • Maven 3.3.9 or above. You can download it here.
    • Any IDE which supports importing Maven projects.
  4. Setup your development environment as described in Preparing for Plugin Development.

Coding Guidelines

Start reading the code and you'll get the hang of it. A complete description of the coding guidelines is part of a separate GitHub repository, which is only available in German.

For IntelliJ IDEA users: the coding style is stored in configuration files below the .idea folder. If you import this project into IntelliJ this style will used automatically.

Moreover (since this project is about static code analysis 😉) a configuration for the following static code analysis tools is defined in the POM and the etc and .idea folders:

This configuration will be picked up automatically if you build the project using maven. If you install the CheckStyle plugin of IntelliJ then the correct set of CheckStyle rules will used automatically. Moreover, the code formatter and the inspection rules will be automatically picked up bey IntelliJ.

Proposing Changes

The Jenkins project source code repositories are hosted on GitHub. All proposed changes are submitted and code reviewed using the GitHub Pull Request process.

To submit a pull request:

  1. Commit changes and push them to your fork on GitHub. It is a good practice is to create branches instead of pushing to master.
  2. In GitHub Web UI click the New Pull Request button.
  3. Select warnings-plugin as base fork and master as base, then click Create Pull Request.
  4. Fill in the Pull Request description. It should reflect the changes, the reason behind the changes, and if available a reference to the Jenkins ticket in our issue tracker.
  5. Click Create Pull Request.
  6. Wait for CI results, reviews.
  7. Process the feedback (see previous step). If there are changes required, commit them in your local branch and push them again to GitHub. Your pull request will be updated automatically. Review comments for changed lines will become outdated.

Once your Pull Request is ready to be merged, the repository maintainer will integrate it. There is no additional action required from pull request authors at this point.

Copyright

Static Analysis Suite is licensed under MIT license. We consider all contributions as MIT unless it's explicitly stated otherwise. MIT-incompatible code contributions will be rejected. Contributions under MIT-compatible licenses may be also rejected if they are not ultimately necessary.

We Do NOT require pull request submitters to sign the contributor agreement as long as the code is licensed under MIT and merged by one of the contributors with the signed agreement.

Continuous Integration

The Jenkins project has a Continuous Integration server... powered by Jenkins, of course. The CI job for this project is located at ci.jenkins.io.

Links