All Projects → yopeso → Taylor

yopeso / Taylor

Licence: mit
Measure Swift code metrics and get reports in Xcode, Jenkins and other CI platforms.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Taylor

Pmx
(DEPRECATED) use @pm2/io instead (drop-in replacement) https://github.com/keymetrics/pm2-io-apm
Stars: ✭ 263 (-12.33%)
Mutual labels:  metrics
Torch Toolbox
[Active development]ToolBox to make using Pytorch much easier.Give it a star if you feel helpful.
Stars: ✭ 268 (-10.67%)
Mutual labels:  metrics
Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: ✭ 292 (-2.67%)
Mutual labels:  metrics
Micrometer
An application metrics facade for the most popular monitoring tools. Think SLF4J, but for metrics.
Stars: ✭ 3,173 (+957.67%)
Mutual labels:  metrics
Opentelemetry Rust
OpenTelemetry API and SDK for Rust
Stars: ✭ 280 (-6.67%)
Mutual labels:  metrics
Statsd
Daemon for easy but powerful stats aggregation
Stars: ✭ 16,179 (+5293%)
Mutual labels:  metrics
Haystack
Top level repository for Haystack, containing documentation and deployment scripts
Stars: ✭ 261 (-13%)
Mutual labels:  metrics
Nightingale
💡 A Distributed and High-Performance Monitoring System. Prometheus enterprise edition
Stars: ✭ 4,003 (+1234.33%)
Mutual labels:  metrics
Wallace Cli
Pretty CSS analytics on the CLI
Stars: ✭ 281 (-6.33%)
Mutual labels:  metrics
Sonar Php
🐘 SonarPHP: PHP static analyzer for SonarQube & SonarLint
Stars: ✭ 288 (-4%)
Mutual labels:  code-quality
Wotan
Pluggable TypeScript and JavaScript linter
Stars: ✭ 271 (-9.67%)
Mutual labels:  code-quality
Prometheus.erl
Prometheus.io client in Erlang
Stars: ✭ 276 (-8%)
Mutual labels:  metrics
Kibana
Your window into the Elastic Stack
Stars: ✭ 16,820 (+5506.67%)
Mutual labels:  metrics
Ansible Node Exporter
Provision basic metrics exporter for prometheus monitoring tool
Stars: ✭ 263 (-12.33%)
Mutual labels:  metrics
Length.js
📏 JavaScript library for length units conversion.
Stars: ✭ 292 (-2.67%)
Mutual labels:  metrics
Questdb
An open source SQL database designed to process time series data, faster
Stars: ✭ 7,544 (+2414.67%)
Mutual labels:  metrics
Gradle Code Quality Tools Plugin
Gradle plugin that generates ErrorProne, Findbugs, Checkstyle, PMD, CPD, Lint, Detekt & Ktlint Tasks for every subproject.
Stars: ✭ 282 (-6%)
Mutual labels:  code-quality
Pandora
A Manageable, Measurable and Traceable Node.js Application Manager represented by Alibaba powered by TypeScript
Stars: ✭ 3,084 (+928%)
Mutual labels:  metrics
Sharplearning
Machine learning for C# .Net
Stars: ✭ 294 (-2%)
Mutual labels:  metrics
Skywalking
APM, Application Performance Monitoring System
Stars: ✭ 18,341 (+6013.67%)
Mutual labels:  metrics

Taylor

⚠️ Taylor is DEPRECATED. Use SwiftLint instead.

A tool aimed to increase Swift code quality, by checking for conformance to code metrics.

Build Status codecov.io Release version Swift Code Platform License

Taylor uses SourceKitten to a more accurate AST representation and generates the final report in either Xcode, JSON, PMD or plain text formats.

Installation

Homebrew (recommended)

You need to have Homebrew installed.

brew update
brew install taylor

Source

Rebuild dependencies by running carthage bootstrap --platform Mac (Carthage required)
Clone the project and run make install (latest version of Xcode required).

Package

Download the latest release and run:

Taylor.app/Contents/Resources/install

Usage

Xcode

To get warnings displayed in the IDE add a new Run Script Phase with:

if which taylor >/dev/null; then
  taylor -p ${PROJECT_DIR} -r xcode
else
  echo "Taylor not installed"
fi

Command line

To use Taylor from command line run it as follows:

taylor [option1 [option1_argument]] [option2 option2_argument] […]

Available options
taylor Description
-h/--help Print help.
-v/--version Print Taylor version.
-p/--path path Path to the folder to be analysed (current folder by default).
-e/--exclude file Path to either directory or file to be excluded from analysis.
-ef/--excludeFile file Path to exclude file in .yml format.
-f/--file file File to be included in analysis (may be from an external source).
-t/--type type Type of files to be analysed.
-vl/--verbosityLevel level Verbosity level for output messages (info, warning and error).
-r/--reporter type:name Type of final report (json, xcode, pmd or plain text) and filename.
-rc/--ruleCustomization rule=value Customize rules by giving custom values. See help for more details.

taylor alone with no arguments analyses .swift files inside current folder.

Excludes

If you want to exclude some files or folders from checking create a new .yml file and call Taylor with -ef /path/to/file argument.
Default filename is excludes.yml and its default location is the folder specified by --path flag.
The following excluding name formats can be specified:

- "/path/to/file"
- "file"
- "Folder"
- "Folder/*"
- ".*Tests.*"

Rules

These are the code quality rules currently existing:

Excessive Class Length

Number of lines in a class must not exceed given limit. Default limit = 400 lines.
Example: taylor -rc ExcessiveClassLength=100.

Excessive Method Length

Number of lines in a method must not exceed given limit. Default limit = 20 lines.
Example: taylor -rc ExcessiveMethodLength=10.

Too Many Methods

Number of methods in a class must not exceed given limit. Default limit = 10 methods.
Example: taylor -rc TooManyMethods=7.

Cyclomatic Complexity

Cyclomatic Complexity number of a method must not exceed maximal admitted value. Default = 5.
Example: taylor -rc CyclomaticComplexity=10.

Nested Block Depth

Block Depth of a method must not exceed maximal admitted value. Default = 3.
Example: taylor -rc NestedBlockDepth=7.

N-Path Complexity

N-Path Complexity of a method must not exceed maximal admitted value. Default = 100.
Example: taylor -rc NPathComplexity=50.

Excessive Parameter List

Number of parameters given to a method must not exceed maximal admitted value. Default = 3.
Example: taylor -rc ExcessiveParameterList=5.

Credits

Thanks to JP Simard for developing SourceKitten.

License

MIT Licensed.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].