Skip to content
This repository has been archived by the owner on Jan 25, 2022. It is now read-only.

raatiniemi/sonar-objective-c

Repository files navigation

SonarQube Plugin for Objective-C

pipeline status quality gate code test coverage technical dept

This repository is a fork of the open source SonarQube Plugin for Objective-C. It provides modifications and extra features needed for our internal use.

Releases available from this repository are compatible with SonarQube 7.1, and above.

Features

Feature Supported Details
Complexity YES Uses Lizard
Design NO
Documentation YES
Duplications NO
Issues YES Uses OCLint
Size YES
Tests YES
Code coverage YES Uses slather

Installation

It's recommended to install all of the dependencies without root access for security reasons. Also, install necessary gems for each project, via bundler, to reduce version conflicts, etc.

Prerequisites

Both OCLint and Lizard are optional, however, if the dependency is not installed data will be missing from the generated analysis.

Configure Bundler

The default behaviour for Bundler is to install gems in a system-wide directory, i.e. root access is required.

In order to get Bundler to install dependencies without root access, it have to be configured with a new path, bundle config --global path ~/.bundle/gems.

Install plugin on server

  • Download the release from bintray
  • Copy the jar into the $SONARQUBE_HOME/extensions/plugins directory
  • Restart the SonarQube server

Project configuration

Release history

0.7.7

0.7.6

0.7.5

  • Categorize OCLint rules to code smell, bug, and vulnerability
  • Move Cobertura, Lizard, OCLint, and surefire into separate modules
  • Support SonarQube 7.3
  • Move module code into new packages to ensure consistency

0.7.4

0.7.3

  • Include resources when building plugin, was not included since converting to Gradle
  • Use SonarCloud to analyse project

0.7.2

  • Include dependencies when building plugin, was not included since converting to Gradle
  • Reduce technical dept in Squid sensor
  • Automate update of version when building release
  • Improve language filter to reduce warnings

0.7.1

  • Migrate project to Gradle
  • Ensure OCLint rule exist before creating issue
  • Improve documentation for installation

0.7.0

  • Remove support for FauxPas
  • Drop support for SonarQube versions prior to 7.1
  • Improve configuration key and default report path for Lizard
  • Improve configuration key and default report path for Cobertura
  • Improve configuration key and default report path for OCLint
  • Use distinct configuration key for Surefire reports
  • Allow Surefire default report path to be specified from web interface
  • Improve default reports path for Surefire

0.6.4

  • Replace run-sonar.sh with preferred fastlane configuration with dependencies via Gemfile
  • Only include Objective-C language files from Lizard, Cobertura, Surefire, and OCLint
  • Include test coverage for project to SonarQube analysis

0.6.3 (detached from backelite project)

  • Detached from backelite project (no active maintainers)
  • Ensure compatibility with SonarQube 7.0
  • Update Lizard complexity report parsing to use new API
  • Remove use of deprecated metrics from Lizard complexity reports
  • Warn instead of throwing uncatched exception if Lizard complexity report XML file is not available
  • Ensure OCLint violation reports are properly parsed and sent to SonarQube
  • Update available rules for OCLint
  • Include description from OCLint rules
  • Update Surefire report parsing to use new API
  • Update Cobertura report parsing to use new API
  • Remove support for legacy code coverage

Contributing

Feel free to contribute to this plugin by issuing pull requests to this repository or to the original one.

License

SonarQube Plugin for Objective-C is released under the GNU LGPL 3 license.