Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Static Analysis & Code Quality
  3. scapegoat

scapegoat

Apache-2.0Scalav3.3.4

A Scala compiler plugin for static code analysis that detects bugs, non-idiomatic code, and style violations.

GitHubGitHub
555 stars96 forks0 contributors

What is scapegoat?

Scapegoat is a Scala compiler plugin that performs static code analysis to identify bugs, non-idiomatic usage, and style violations in Scala code. It integrates into the build process and provides detailed reports to help developers improve code quality and catch issues early.

Target Audience

Scala developers and teams who want to enforce code quality standards, catch potential bugs, and maintain consistent coding practices across their projects.

Value Proposition

Developers choose Scapegoat for its extensive set of inspections, seamless integration with build tools, and ability to complement other linters by focusing on a wide range of issues beyond just style, making it a comprehensive static analysis tool for Scala.

Overview

Scala compiler plugin for static code analysis

Use Cases

Best For

  • Enforcing coding standards and style guidelines in Scala projects
  • Catching common bugs and anti-patterns during compilation
  • Improving code quality in large Scala codebases
  • Integrating static analysis into CI/CD pipelines for Scala
  • Educating developers on Scala best practices and idiomatic code
  • Complementing other linters like Scalastyle with additional inspections

Not Ideal For

  • Teams using Scala 3 as their primary language, given the drastic reduction to only 5 inspections compared to 120 for Scala 2
  • Projects that prioritize fast compilation times and want to avoid the overhead of a compiler plugin
  • Environments where build tool configuration is minimal or managed externally, making compiler plugin setup cumbersome
  • Codebases relying heavily on Scala's advanced features like macros or dynamic programming, which static analyzers often miss

Pros & Cons

Pros

Extensive Bug Detection

With over 120 built-in inspections for Scala 2, it catches a wide range of issues from potential bugs like unsafe type conversions to performance anti-patterns such as List.size on non-indexed sequences.

Flexible Build Integration

Works seamlessly with SBT, Maven, and Gradle via plugins or manual configuration, as shown in the README with detailed examples for each build tool.

Customizable Reporting

Generates reports in multiple formats including HTML, XML, Markdown, and GitLab Code Quality, allowing teams to integrate findings into their preferred workflows.

Granular Inspection Control

Allows enabling or disabling specific inspections, overriding warning levels, and suppressing warnings via annotations or flags, providing fine-tuned analysis for different project needs.

Cons

Limited Scala 3 Support

The README clearly states only 5 inspections are available for Scala 3, making it ineffective for projects transitioning to or heavily using Scala 3's newer features.

Complex Initial Setup

Requires non-trivial compiler plugin configuration with specific flags and dependencies, especially for manual setups in Maven or Gradle, which can lead to errors and increased onboarding time.

Incomplete Documentation

The inspection list includes a 'todo: finish rest of detailed descriptions,' indicating gaps in documentation that hinder understanding and proper use of the tool.

Potential False Positives

Like many linters, it can flag intentional code or style choices as warnings, requiring manual suppression and potentially adding noise to the development process.

Frequently Asked Questions

Quick Stats

Stars555
Forks96
Contributors0
Open Issues46
Last commit3 days ago
CreatedSince 2013

Tags

#hacktoberfest#gradle#compiler-plugin#code-linter#bug-detection#code-quality#scala#sbt#maven#static-analysis

Built With

S
Scala

Included in

Static Analysis & Code Quality14.5k
Auto-fetched 10 hours ago

Related Projects

PHP ParserPHP Parser

A PHP parser written in PHP

Stars17,430
Forks1,122
Last commit2 months ago
TypeScript ESLintTypeScript ESLint

:sparkles: Monorepo for all the tooling which enables ESLint to support TypeScript

Stars16,245
Forks2,905
Last commit13 hours ago
pyrightpyright

Static Type Checker for Python

Stars15,436
Forks1,784
Last commit4 days ago
ReviewdogReviewdog

🐶 Automated code review tool integrated with any code analysis tools regardless of programming language

Stars9,302
Forks488
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub